mirror of
https://github.com/sismics/docs.git
synced 2025-12-13 17:56:20 +00:00
#18: Handle new audit log for groups, filter users by group
This commit is contained in:
@@ -42,6 +42,7 @@ import com.sismics.docs.core.model.context.AppContext;
|
||||
import com.sismics.docs.core.model.jpa.AuthenticationToken;
|
||||
import com.sismics.docs.core.model.jpa.Document;
|
||||
import com.sismics.docs.core.model.jpa.File;
|
||||
import com.sismics.docs.core.model.jpa.Group;
|
||||
import com.sismics.docs.core.model.jpa.User;
|
||||
import com.sismics.docs.core.util.EncryptionUtil;
|
||||
import com.sismics.docs.core.util.jpa.SortCriteria;
|
||||
@@ -534,13 +535,15 @@ public class UserResource extends BaseResource {
|
||||
*
|
||||
* @param sortColumn Sort index
|
||||
* @param asc If true, ascending sorting, else descending
|
||||
* @param groupName Only return users from this group
|
||||
* @return Response
|
||||
*/
|
||||
@GET
|
||||
@Path("list")
|
||||
public Response list(
|
||||
@QueryParam("sort_column") Integer sortColumn,
|
||||
@QueryParam("asc") Boolean asc) {
|
||||
@QueryParam("asc") Boolean asc,
|
||||
@QueryParam("group") String groupName) {
|
||||
if (!authenticate()) {
|
||||
throw new ForbiddenClientException();
|
||||
}
|
||||
@@ -548,8 +551,18 @@ public class UserResource extends BaseResource {
|
||||
JsonArrayBuilder users = Json.createArrayBuilder();
|
||||
SortCriteria sortCriteria = new SortCriteria(sortColumn, asc);
|
||||
|
||||
// Validate the group
|
||||
String groupId = null;
|
||||
if (!Strings.isNullOrEmpty(groupName)) {
|
||||
GroupDao groupDao = new GroupDao();
|
||||
Group group = groupDao.getActiveByName(groupName);
|
||||
if (group != null) {
|
||||
groupId = group.getId();
|
||||
}
|
||||
}
|
||||
|
||||
UserDao userDao = new UserDao();
|
||||
List<UserDto> userDtoList = userDao.findByCriteria(new UserCriteria(), sortCriteria);
|
||||
List<UserDto> userDtoList = userDao.findByCriteria(new UserCriteria().setGroupId(groupId), sortCriteria);
|
||||
for (UserDto userDto : userDtoList) {
|
||||
users.add(Json.createObjectBuilder()
|
||||
.add("id", userDto.getId())
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
<span ng-switch-when="User">
|
||||
<a href="#/user/{{ log.message }}">{{ log.message }}</a>
|
||||
</span>
|
||||
<span ng-switch-when="Group">
|
||||
<a href="#/group/{{ log.message }}">{{ log.message }}</a>
|
||||
</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -86,6 +86,15 @@ public class TestGroupResource extends BaseJerseyTest {
|
||||
Assert.assertEquals("g112", groups.getString(0));
|
||||
Assert.assertEquals("g12", groups.getString(1));
|
||||
|
||||
// List all users in group1
|
||||
json = target().path("/user/list")
|
||||
.queryParam("group", "g112")
|
||||
.request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
|
||||
.get(JsonObject.class);
|
||||
JsonArray users = json.getJsonArray("users");
|
||||
Assert.assertEquals(1, users.size());
|
||||
|
||||
// Add group1 to g112 (again)
|
||||
json = target().path("/group/g112").request()
|
||||
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
|
||||
|
||||
Reference in New Issue
Block a user