Пример #1
0
 /**
  * 세션에 저장된 정보를 이용해서 사용자 객체를 생성한다 세션에 저장된 정보가 없다면 anonymous 객체가 리턴된다
  *
  * @return 세션 정보 기준 조회된 사용자 객체
  */
 public static User currentUser() {
   String userId = session().get(SESSION_USERID);
   if (StringUtils.isEmpty(userId) || !StringUtils.isNumeric(userId)) {
     return User.anonymous;
   }
   User foundUser = User.find.byId(Long.valueOf(userId));
   if (foundUser == null) {
     processLogout();
     return User.anonymous;
   }
   return foundUser;
 }
Пример #2
0
 /**
  * 세션 정보를 이용해서 사용자 객체를 가져온다. 세션 정보가 없거나 잘못된 정보라면 anonymous 객체를 반환한다. 잘못된 정보의 경우 세션 정보를 삭제한다.
  *
  * @return
  */
 private static User getUserFromSession() {
   String userId = session().get(SESSION_USERID);
   if (userId == null) {
     return User.anonymous;
   }
   if (!StringUtils.isNumeric(userId)) {
     return invalidSession();
   }
   User user = User.find.byId(Long.valueOf(userId));
   if (user == null) {
     return invalidSession();
   }
   return user;
 }
Пример #3
0
  /**
   * 사용자 정보 수정
   *
   * @return
   */
  @With(AnonymousCheckAction.class)
  @Transactional
  public static Result editUserInfo() {
    Form<User> userForm = new Form<>(User.class).bindFromRequest("name", "email");
    String newEmail = userForm.data().get("email");
    String newName = userForm.data().get("name");
    User user = UserApp.currentUser();

    if (StringUtils.isEmpty(newEmail)) {
      userForm.reject("email", "user.wrongEmail.alert");
    } else {
      if (!StringUtils.equals(user.email, newEmail) && User.isEmailExist(newEmail)) {
        userForm.reject("email", "user.email.duplicate");
      }
    }

    if (userForm.error("email") != null) {
      flash(Constants.WARNING, userForm.error("email").message());
      return badRequest(edit.render(userForm, user));
    }
    user.email = newEmail;
    user.name = newName;

    try {
      Long avatarId = Long.valueOf(userForm.data().get("avatarId"));
      if (avatarId != null) {
        Attachment attachment = Attachment.find.byId(avatarId);
        String primary = attachment.mimeType.split("/")[0].toLowerCase();

        if (attachment.size > AVATAR_FILE_LIMIT_SIZE) {
          userForm.reject("avatarId", "user.avatar.fileSizeAlert");
        }

        if (primary.equals("image")) {
          Attachment.deleteAll(currentUser().avatarAsResource());
          attachment.moveTo(currentUser().avatarAsResource());
        }
      }
    } catch (NumberFormatException ignored) {
    }

    Email.deleteOtherInvalidEmails(user.email);
    user.update();
    return redirect(
        routes.UserApp.userInfo(user.loginId, DEFAULT_GROUP, DAYS_AGO, DEFAULT_SELECTED_TAB));
  }