use of org.craftercms.studio.api.v2.dal.Group in project studio by craftercms.
the class SecurityServiceImpl method getUserRoles.
@Override
@ValidateParams
public Set<String> getUserRoles(@ValidateStringParam(name = "site") final String site, @ValidateStringParam(name = "user") String user, boolean includeGlobal) {
try {
// TODO: We should replace this with userService.getUserSiteRoles, but that one is protected by permissions.
// TODO: When the UserService is refactored to use UserServiceInternal, we could use that method and
// TODO: remove this one
List<Group> groups = userServiceInternal.getUserGroups(-1, user);
if (groups != null && groups.size() > 0) {
logger.debug("Groups for " + user + " in " + site + ": " + groups);
PermissionsConfigTO rolesConfig = loadConfiguration(site, getRoleMappingsFileName());
Set<String> userRoles = new HashSet<String>();
if (rolesConfig != null) {
Map<String, List<String>> rolesMap = rolesConfig.getRoles();
for (Group group : groups) {
String groupName = group.getGroupName();
if (StringUtils.equals(groupName, SYSTEM_ADMIN_GROUP)) {
Collection<List<String>> mapValues = rolesMap.values();
mapValues.forEach(valueList -> {
userRoles.addAll(valueList);
});
break;
} else {
List<String> roles = rolesMap.get(groupName);
if (roles != null) {
userRoles.addAll(roles);
}
}
}
}
if (includeGlobal) {
PermissionsConfigTO globalRolesConfig = loadGlobalRolesConfiguration();
addGlobalUserRoles(user, userRoles, globalRolesConfig);
List<String> groupNames = groups.stream().map(x -> x.getGroupName()).collect(Collectors.toList());
addGlobalGroupRoles(userRoles, groupNames, globalRolesConfig);
}
return userRoles;
} else {
logger.debug("No groups found for " + user + " in " + site);
}
} catch (ServiceLayerException | UserNotFoundException e) {
logger.error("Error while getting groups for user {0}", e);
}
return new HashSet<>(0);
}
use of org.craftercms.studio.api.v2.dal.Group in project studio by craftercms.
the class GroupsController method getAllGroups.
/**
* Get groups API
*
* @param offset offset parameter
* @param limit limit parameter
* @param sort sort parameter
* @return Response containing list of groups
*/
@GetMapping("/api/2/groups")
public ResponseBody getAllGroups(@RequestParam(value = REQUEST_PARAM_OFFSET, required = false, defaultValue = "0") int offset, @RequestParam(value = REQUEST_PARAM_LIMIT, required = false, defaultValue = "10") int limit, @RequestParam(value = REQUEST_PARAM_SORT, required = false, defaultValue = StringUtils.EMPTY) String sort) throws ServiceLayerException, OrganizationNotFoundException {
int total = 0;
total = groupService.getAllGroupsTotal(DEFAULT_ORGANIZATION_ID);
List<Group> groups = groupService.getAllGroups(DEFAULT_ORGANIZATION_ID, offset, limit, sort);
ResponseBody responseBody = new ResponseBody();
PaginatedResultList<Group> result = new PaginatedResultList<>();
result.setTotal(total);
result.setOffset(offset);
result.setLimit(CollectionUtils.isEmpty(groups) ? 0 : groups.size());
result.setResponse(OK);
result.setEntities(RESULT_KEY_GROUPS, groups);
responseBody.setResult(result);
return responseBody;
}
use of org.craftercms.studio.api.v2.dal.Group in project studio by craftercms.
the class GroupsController method getGroup.
/**
* Get group API
*
* @param groupId Group identifier
* @return Response containing requested group
*/
@GetMapping("/api/2/groups/{id}")
public ResponseBody getGroup(@PathVariable(REQUEST_PARAM_ID) int groupId) throws ServiceLayerException, GroupNotFoundException {
Group group = groupService.getGroup(groupId);
ResponseBody responseBody = new ResponseBody();
ResultOne<Group> result = new ResultOne<>();
result.setResponse(OK);
result.setEntity(RESULT_KEY_GROUP, group);
responseBody.setResult(result);
return responseBody;
}
use of org.craftercms.studio.api.v2.dal.Group in project studio by craftercms.
the class GroupsController method updateGroup.
/**
* Update group API
*
* @param group Group to update
* @return Response object
*/
@PatchMapping(value = "/api/2/groups", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseBody updateGroup(@RequestBody Group group) throws ServiceLayerException, GroupNotFoundException, AuthenticationException {
ResponseBody responseBody = new ResponseBody();
Group updatedGroup = groupService.updateGroup(DEFAULT_ORGANIZATION_ID, group);
ResultOne<Group> result = new ResultOne<>();
result.setResponse(OK);
result.setEntity(RESULT_KEY_GROUP, updatedGroup);
responseBody.setResult(result);
return responseBody;
}
use of org.craftercms.studio.api.v2.dal.Group in project studio by craftercms.
the class PublishServiceImpl method createDeploymentHistoryGroup.
private DeploymentHistoryGroup createDeploymentHistoryGroup(String deployedLabel, ContentItemTO item) {
// otherwise just add as the last task
DeploymentHistoryGroup group = new DeploymentHistoryGroup();
group.setInternalName(deployedLabel);
List<ContentItemTO> taskItems = group.getChildren();
if (taskItems == null) {
taskItems = new ArrayList<ContentItemTO>();
group.setChildren(taskItems);
}
taskItems.add(item);
group.setNumOfChildren(taskItems.size());
return group;
}
Aggregations