示例#1
0
  /**
   * 사용자를 삭제한다.
   *
   * <p>when 관리자 페이지 사용자 삭제시
   *
   * @param userId the user id
   * @return the result
   * @see {@link Project#isOnlyManager(Long)}
   */
  @Transactional
  public static Result deleteUser(Long userId) {
    if (User.findByLoginId(session().get("loginId")).isSiteManager()) {
      if (Project.isOnlyManager(userId)) {
        flash(Constants.WARNING, "site.userList.deleteAlert");
      } else {
        User user = User.find.byId(userId);
        for (ProjectUser projectUser : user.projectUser) {
          projectUser.delete();
        }
        user.changeState(UserState.DELETED);
      }
    } else {
      flash(Constants.WARNING, "error.auth.unauthorized.waringMessage");
    }

    return redirect(routes.SiteApp.userList(1, null));
  }
示例#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());
  }