public RolesConfig listAll() { return getRoles(); }
public void update(Username currentUser, String md5, Role newRole, LocalizedOperationResult result) { validatePluginRoleMetadata(newRole); update(currentUser, newRole, result, new RoleConfigUpdateCommand(goConfigService, newRole, authorizationExtension, currentUser, result, hashingService, md5)); }
@Override public Role doFetchEntityFromConfig(String name) { return roleConfigService.findRole(name); }
public void delete(Username currentUser, Role role, LocalizedOperationResult result) { update(currentUser, role, result, new RoleConfigDeleteCommand(goConfigService, role, authorizationExtension, currentUser, result)); if (result.isSuccessful()) { result.setMessage(LocalizedMessage.resourceDeleteSuccessful(getTagName(role.getClass()).toLowerCase(), role.getName())); } }
public String update(Request req, Response res) { Role roleFromServer = roleConfigService.findRole(req.params(":role_name")); Role roleFromRequest = buildEntityFromRequestBody(req); if (isRenameAttempt(roleFromServer, roleFromRequest)) { throw haltBecauseRenameOfEntityIsNotSupported("roles"); } if (isPutRequestStale(req, roleFromServer)) { throw haltBecauseEtagDoesNotMatch("role", roleFromServer.getName()); } HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.update(SessionUtils.currentUsername(), etagFor(roleFromServer), roleFromRequest, result); return handleCreateOrUpdateResponse(req, res, roleFromRequest, result); }
public String bulkUpdate(Request req, Response res) throws IOException { JsonReader jsonReader = GsonTransformer.getInstance().jsonReaderFrom(req.body()); GoCDRolesBulkUpdateRequest bulkUpdateRequest = GoCDRolesBulkUpdateRequestRepresenter.fromJSON(jsonReader); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.bulkUpdate(bulkUpdateRequest, SessionUtils.currentUsername(), result); if (result.isSuccessful()) { RolesConfig goCDRoles = roleConfigService.getRoles().ofType("gocd"); return writerForTopLevelObject(req, res, writer -> RolesRepresenter.toJSON(writer, goCDRoles)); } else { return renderHTTPOperationResult(result, req, res); } }
public String destroy(Request req, Response res) throws IOException { Role role = fetchEntityFromConfig(req.params("role_name")); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.delete(SessionUtils.currentUsername(), role, result); return renderHTTPOperationResult(result, req, res); }
public String create(Request req, Response res) { Role role = buildEntityFromRequestBody(req); haltIfEntityBySameNameInRequestExists(req, role); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.create(SessionUtils.currentUsername(), role, result); return handleCreateOrUpdateResponse(req, res, role, result); }
public String index(Request req, Response res) throws Exception { Collection<User> allUsers = userService.allUsers(); HashMap<Username, RolesConfig> usersToRolesMap = roleConfigService.getRolesForUser(allUsers.stream().map(User::getUsername).collect(Collectors.toCollection(ArrayList::new))); List<UserToRepresent> users = allUsers.stream().map((User user) -> getUserToRepresent(user, usersToRolesMap)).collect(Collectors.toList()); return writerForTopLevelObject(req, res, writer -> UsersRepresenter.toJSON(writer, users)); }
protected void update(Username currentUser, Role role, LocalizedOperationResult result, EntityConfigUpdateCommand<Role> command) { try { goConfigService.updateConfig(command, currentUser); } catch (Exception e) { if (e instanceof GoConfigInvalidException) { result.unprocessableEntity(entityConfigValidationFailed(getTagName(role.getClass()), role.getName(), ((GoConfigInvalidException) e).getAllErrorMessages())); } else { if (!result.hasMessage()) { LOGGER.error(e.getMessage(), e); result.internalServerError(saveFailedWithReason("An error occurred while saving the role config. Please check the logs for more information.")); } } } }
private void validatePluginRoleMetadata(Role newRole) { if (newRole instanceof PluginRoleConfig) { PluginRoleConfig role = (PluginRoleConfig) newRole; String pluginId = pluginIdForRole(role); if (pluginId == null) { return; } roleConfigurationValidator.validate(role, pluginId); } }
public String update(Request req, Response res) { Role roleFromServer = roleConfigService.findRole(req.params(":role_name")); Role roleFromRequest = buildEntityFromRequestBody(req); if (isRenameAttempt(roleFromServer, roleFromRequest)) { throw haltBecauseRenameOfEntityIsNotSupported("roles"); } if (isPutRequestStale(req, roleFromServer)) { throw haltBecauseEtagDoesNotMatch("role", roleFromServer.getName()); } HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.update(SessionUtils.currentUsername(), etagFor(roleFromServer), roleFromRequest, result); return handleCreateOrUpdateResponse(req, res, roleFromRequest, result); }
public String destroy(Request req, Response res) throws IOException { Role role = fetchEntityFromConfig(req.params("role_name")); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.delete(SessionUtils.currentUsername(), role, result); return renderHTTPOperationResult(result, req, res); }
public String create(Request req, Response res) { Role role = buildEntityFromRequestBody(req); haltIfEntityBySameNameInRequestExists(req, role); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); roleConfigService.create(SessionUtils.currentUsername(), role, result); return handleCreateOrUpdateResponse(req, res, role, result); }
public String show(Request req, Response res) throws Exception { User user = userService.findUserByName(req.params("login_name")); if (user.equals(new NullUser())) { throw new RecordNotFoundException(); } UserToRepresent toRepresent = getUserToRepresent(user, roleConfigService.getRolesForUser(Collections.singletonList(user.getUsername()))); return writerForTopLevelObject(req, res, writer -> UserRepresenter.toJSON(writer, toRepresent)); }
public void bulkUpdate(GoCDRolesBulkUpdateRequest bulkUpdateRequest, Username currentUser, HttpLocalizedOperationResult result) { RolesConfigBulkUpdateCommand command = new RolesConfigBulkUpdateCommand(bulkUpdateRequest, currentUser, goConfigService, result); try { goConfigService.updateConfig(command, currentUser); } catch (Exception e) { if (e instanceof GoConfigInvalidException) { result.unprocessableEntity(entityConfigValidationFailed(getTagName(RolesConfig.class), bulkUpdateRequest.getRolesToUpdateAsString(), ((GoConfigInvalidException) e).getAllErrorMessages())); } else { if (!result.hasMessage()) { LOGGER.error(e.getMessage(), e); result.internalServerError(saveFailedWithReason("An error occurred while saving the role config. Please check the logs for more information.")); } } } }
public HashMap<Username, RolesConfig> getRolesForUser(List<Username> users) { HashMap<Username, RolesConfig> userToRolesMap = new HashMap<>(); getRoles().stream().<Consumer<? super Username>>map(role -> user -> { if (role.hasMember(user.getUsername())) { if (!userToRolesMap.containsKey(user)) { userToRolesMap.put(user, new RolesConfig()); } userToRolesMap.get(user).add(role); } }).forEach(users::forEach); return userToRolesMap; }
public void create(Username currentUser, Role newRole, LocalizedOperationResult result) { validatePluginRoleMetadata(newRole); update(currentUser, newRole, result, new RoleConfigCreateCommand(goConfigService, newRole, currentUser, result)); }
@Override public Role doFetchEntityFromConfig(String name) { return roleConfigService.findRole(name); }
private String saveUserAndRenderResult(Request req, Response res, HttpLocalizedOperationResult result, User userToOperate, User userFromRequest, String username) throws IOException { userService.save(userToOperate, TriState.from(userFromRequest.isEnabled()), TriState.from(userFromRequest.isEmailMe()), userFromRequest.getEmail(), userFromRequest.getMatcher(), result); boolean isSaved = result.isSuccessful(); if (isSaved) { return writerForTopLevelObject(req, res, writer -> UserRepresenter.toJSON(writer, getUserToRepresent(userService.findUserByName(username), roleConfigService.getRolesForUser(Collections.singletonList(new Username(username)))))); } else { return renderHTTPOperationResult(result, req, res); } }