Example #1
0
 /**
  * 전체 사용자 목록을 보여준다.
  *
  * <p>when 관리자 페이지의 사용자 관리
  *
  * <p>사이트에 가입된 사용자 목록을 {@code loginId} 로 조회하여 목록을 {@link Page} 형태로 보여준다. 페이징 사이즈는 {@link
  * User#USER_COUNT_PER_PAGE}를 참조한다.
  *
  * @param pageNum pager number
  * @param loginId loginId
  * @return the result
  * @see {@link User#findUsers(int, String)}
  */
 public static Result userList(int pageNum, String query) {
   String state =
       StringUtils.defaultIfBlank(request().getQueryString("state"), UserState.ACTIVE.name());
   UserState userState = UserState.valueOf(state);
   Page<User> users = User.findUsers(pageNum - 1, query, userState);
   return ok(userList.render("title.siteSetting", users, userState, query));
 }
Example #2
0
  /**
   * 계정을 장금 / 해제한다.
   *
   * <p>when 사용자 관리 페이지의 계정 장금/해제
   *
   * <p>세션 {@code loginId} 가 사이트 관리자이고 삭제할 {@code loginId}가 {@code anonymous}가 아니면 계정 장금 또는 해제한후 사용자
   * 관리페이지로 리다이렉트한다. 세션 {@code loginId} 가 사이트 관리자이고 삭제할 {@code loginId}가 익명사용자이면 경고메세지와 함께사용자 관리페이지로
   * 리다이렉트한다. 세션 {@code loginId} 가 사이트 관리자가 아니면 경고메세지와 함께 Yobi 첫페이지로 리다이렉트한다.
   *
   * @param loginId the login id
   * @return the result
   */
  public static Result toggleAccountLock(String loginId, String state, String query) {
    String stateParam = StringUtils.defaultIfBlank(state, UserState.ACTIVE.name());
    UserState userState = UserState.valueOf(stateParam);

    if (User.findByLoginId(session().get("loginId")).isSiteManager()) {
      User targetUser = User.findByLoginId(loginId);
      if (targetUser.isAnonymous()) {
        flash(Constants.WARNING, "user.notExists.name");
        return redirect(routes.SiteApp.userList(0, null));
      }
      if (targetUser.state == UserState.ACTIVE) {
        targetUser.changeState(UserState.LOCKED);
      } else {
        targetUser.changeState(UserState.ACTIVE);
      }
      return ok(
          userList.render(
              "title.siteSetting", User.findUsers(0, query, userState), userState, query));
    }
    flash(Constants.WARNING, "error.auth.unauthorized.waringMessage");
    return redirect(routes.Application.index());
  }