8000 Merge pull request #129 from giastfader/master · githubcs/baasbox@deceba8 · GitHub
[go: up one dir, main page]

Skip to content

Commit deceba8

Browse files
committed
Merge pull request baasbox#129 from giastfader/master
fixed baasbox#7
2 parents 0a1ae8e + 7e762d7 commit deceba8

File tree

4 files changed

+65
-8
lines changed

4 files changed

+65
-8
lines changed

app/com/baasbox/controllers/Admin.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
import com.baasbox.util.ConfigurationFileContainer;
8888
import com.baasbox.util.IQueryParametersKeys;
8989
import com.baasbox.util.JSONFormats;
90+
import com.baasbox.util.JSONFormats.Formats;
9091
import com.baasbox.util.QueryParams;
9192
import com.baasbox.util.Util;
9293
import com.google.common.base.Objects;
@@ -401,10 +402,11 @@ public static Result updateUser(String username){
401402
if (!Util.validateEmail((String) (String) privateAttributes.findValuesAsText("email").get(0)) )
402403
return badRequest("The email address must be valid.");
403404
}
404-
405+
406+
ODocument user=null;
405407
//try to update new user
406408
try {
407-
UserService.updateProfile(username,role,nonAppUserAttributes, privateAttributes, friendsAttributes, appUsersAttributes);
409+
user=UserService.updateProfile(username,role,nonAppUserAttributes, privateAttributes, friendsAttributes, appUsersAttributes);
408410
}catch(InvalidParameterException e){
409411
return badRequest(e.getMessage());
410412
}catch (OSerializationException e){
@@ -420,7 +422,7 @@ public static Result updateUser(String username){
420422
else return internalServerError(e.getMessage());
421423
}
422424
Logger.trace("Method End");
423-
return ok();
425+
return ok(user.toJSON(Formats.USER.toString()));
424426
}//updateUser
425427

426428

app/com/baasbox/service/user/UserService.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -373,11 +373,12 @@ public static ODocument updateProfile(String username,String role,JsonNode nonAp
373373
break;
374374
}
375375
}
376+
ORole oldORole=RoleDao.getRole(oldRole);
376377
//TODO: update role
377-
// OUser ouser=DbHelper.getConnection().getMetadata().getSecurity().getUser(username);
378-
// ouser.removeRole(oldRole);
379-
//ouser.addRole(newORole);
380-
//ouser.save();
378+
OUser ouser=DbHelper.getConnection().getMetadata().getSecurity().getUser(username);
379+
ouser.getRoles().remove(oldORole);
380+
ouser.addRole(newORole);
381+
ouser.save();
381382
profile.save();
382383
profile.reload();
383384

test/UserCreateTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
// @author: Marco Tibuzzi
1919

20+
import static org.junit.Assert.fail;
2021
import static play.mvc.Http.Status.BAD_REQUEST;
2122
import static play.mvc.Http.Status.UNAUTHORIZED;
2223
import static play.test.Helpers.HTMLUNIT;
@@ -35,6 +36,7 @@
3536
import javax.ws.rs.core.MediaType;
3637

3738
import org.codehaus.jackson.JsonNode;
39+
import org.codehaus.jackson.map.ObjectMapper;
3840
import org.junit.Assert;
3941
import org.junit.Test;
4042

@@ -240,6 +242,7 @@ public void run()
240242
);
241243
}
242244

245+
243246
@Test
244247
public void testUserAutoSuspend(){
245248
running

test/UserUpdateTest.java

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,29 @@
1717

1818
// @author: Marco Tibuzzi
1919

20+
import static org.junit.Assert.fail;
2021
import static play.test.Helpers.HTMLUNIT;
22+
import static play.test.Helpers.POST;
2123
import static play.test.Helpers.PUT;
24+
import static play.test.Helpers.DELETE;
2225
import static play.test.Helpers.fakeApplication;
26+
import static play.test.Helpers.route;
2327
import static play.test.Helpers.routeAndCall;
2428
import static play.test.Helpers.running;
2529
import static play.test.Helpers.testServer;
2630

31+
import java.util.UUID;
32+
2733
import javax.ws.rs.core.HttpHeaders;
2834
import javax.ws.rs.core.MediaType;
2935

36+
import org.codehaus.jackson.JsonNode;
37+
import org.codehaus.jackson.map.ObjectMapper;
3038
import org.junit.Test;
3139

3240
import play.libs.F.Callback;
33-
import play.mvc.Result;
3441
import play.mvc.Http.Status;
42+
import play.mvc.Result;
3543
import play.test.FakeRequest;
3644
import play.test.TestBrowser;
3745
import core.AbstractUserTest;
@@ -133,6 +141,49 @@ public void invoke(TestBrowser browser)
133141
);
134142
}
135143

144+
@Test
145+
public void testUserChangeRole(){
146+
running
147+
(
148+
fakeApplication(), new Runnable() {
149+
public void run() {
150+
try {
151+
//create a user
152+
String userName = "fake"+UUID.randomUUID().toString();
153+
String sFakeAdminUserRoute = "/admin/user";
154+
FakeRequest request = new FakeRequest(POST, sFakeAdminUserRoute);
155+
request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE);
156+
request = request.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC);
157+
ObjectMapper mapper = new ObjectMapper();
158+
JsonNode actualObj = mapper.readTree("{\"username\":\""+userName+"\","
159+
+ "\"password\":\"test\","
160+
+ "\"role\":\"registered\"}");
161+
request = request.withJsonBody(actualObj);
162+
request = request.withHeader("Content-Type", "application/json");
163+
Result result = route(request);
164+
assertRoute(result, "testUserChangeRole.createUser", Status.CREATED, null, true);
165+
166+
//change its role
167+
FakeRequest request1 = new FakeRequest(PUT, "/admin/user/"+userName);
168+
request1 = request1.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE);
169+
request1 = request1.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC);
170+
mapper = new ObjectMapper();
171+
actualObj = mapper.readTree("{\"role\":\"backoffice\",\"visibleByAnonymousUsers\":{},\"visibleByTheUser\":{},\"visibleByFriend\":{},"+
172+
"\"visibleByRegisteredUsers\":{} }");
173+
request1 = request1.withJsonBody(actualObj,PUT);
174+
request1 = request1.withHeader("Content-Type", "application/json");
175+
result = route(request1);
176+
assertRoute(result, "testUserChangeRole.changeRole", Status.OK, "\"roles\":[{\"name\":\"backoffice\"", true);
177+
178+
}catch (Exception e) {
179+
e.printStackTrace();
180+
fail();
181+
}
182+
}
183+
});
184+
}
185+
186+
136187
//@After
137188
public void afterTest()
138189
{

0 commit comments

Comments
 (0)
0