public String update(Request req, Response res) { User user = userService.findUserByName(currentUserLoginName().toString()); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); Map map = readRequestBodyAsJSON(req); String checkinAliases = null; if (map.containsKey("checkin_aliases")) { Object newAliases = map.get("checkin_aliases"); if (newAliases instanceof Collection) { checkinAliases = StringUtils.join((Collection) newAliases, ", "); } else if (newAliases instanceof String) { checkinAliases = (String) newAliases; } } TriState emailMe = TriState.from(String.valueOf(map.get("email_me"))); String email = (String) map.get("email"); User serializedUser = userService.save(user, TriState.from(null), emailMe, email, checkinAliases, result); String json = jsonizeAsTopLevelObject(req, writer -> UserRepresenter.toJSON(writer, serializedUser)); String etag = etagFor(json); setEtagHeader(res, etag); return json; } }
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 String create(Request req, Response res) throws Exception { HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); User user = buildUserEntityFromRequestBody(req, false); if (!userService.findUserByName(user.getName()).equals(new NullUser())) { throw haltBecauseEntityAlreadyExists(jsonWriter(user, new HashMap<>()), "User", user.getName()); } return saveUserAndRenderResult(req, res, result, user, user, user.getName()); }
public String show(Request req, Response res) { User user = userService.findUserByName(currentUserLoginName().toString()); String json = jsonizeAsTopLevelObject(req, writer -> UserRepresenter.toJSON(writer, user)); String etag = etagFor(json); if (fresh(req, etag)) { return notModified(res); } setEtagHeader(res, etag); return json; }
public String patchUser(Request req, Response res) throws Exception { String username = req.params("login_name"); HttpLocalizedOperationResult result = new HttpLocalizedOperationResult(); User userFromRequest = buildUserEntityFromRequestBody(req, true); User existingUser = userService.findUserByName(username); if (existingUser.equals(new NullUser())) { throw haltBecauseNotFound(); } if (isRenameAttempted(req, userFromRequest)) { throw haltBecauseRenameOfEntityIsNotSupported("User"); } return saveUserAndRenderResult(req, res, result, existingUser, userFromRequest, username); }
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); } }
private User getUser(HttpServletRequest request) { Long userId = SessionUtils.getUserId(request); if (userId == null) { final GoUserPrinciple currentUser = SessionUtils.getCurrentUser(); Username userName = new Username(currentUser.getUsername()); if (userName.isAnonymous() || userName.isGoAgentUser()) { return new NullUser(); } return userService.findUserByName(CaseInsensitiveString.str(userName.getUsername())); } else { return userService.load(userId); } } }