Example #1
0
  @Override
  public void updateModel() {
    try {
      if (MyString.NotNull(getReq("login"), getReq("user_id"))) {
        // проверить, есть ли уже такой логин
        Table usersTable = getTable("users");
        Select sel = getSelect();
        sel.select(usersTable.get("user_id"), "count", AgrTypes.COUNT);
        sel.from(usersTable);
        sel.and(usersTable.get("login").isLikeLower(getReq("login")));
        sel.and(usersTable.get("login").eq((getReq("login"))));
        sel.and(usersTable.get("user_id").notEq(getReq("user_id")));
        sel.and(usersTable.get("active_to").isNull());
        boolean ok = sel.executeSelect(getConnection());

        if (ok) {
          int count = 0;
          if (!sel.getDinamicList().isEmpty()) {
            DinamicModel model = sel.getDinamicList().get(0);
            try {
              count = Integer.parseInt(model.get("count").toString());
            } catch (Exception e) {
            }
          }
          if (count == 0) {
            super.updateModel();
          } else {
            setStatus(false);
            addError("логин " + getReq("login") + " уже существует у другого пользователя");
          }
        } else {
          setStatus(false);
          addError(sel.getError());
        }
      } else {
        setStatus(false);
        addError("не все параметры переданы");
      }
    } catch (Exception e) {
      setStatus(false);
      addError(MyString.getStackExeption(e));
    }
  }
Example #2
0
  /** добавить пользователя в группу. Подается параметр - логин пользователя */
  @Override
  public void saveModel() {
    try {
      if (MyString.NotNull(getReq("byUser"))) {
        saveByUserId();
      } else {

        if (MyString.NotNull(getReq("login"))) {
          String login = getReq("login").toString().trim();
          Table userLink = getTable("user_link");
          Table users = getTable("users");
          // найти пользователя с таким логином
          Select userSelect = getSelect();
          userSelect.select(users);
          userSelect.from(users);
          userSelect.and(users.get("active_to").isNull());
          userSelect.and(users.get("login").eq(login));
          boolean ok = userSelect.executeSelect(getConnection());
          if (!ok) {
            setStatus(false);
            addError(userSelect.getError());
            return;
          }
          // если есть такой пользователь
          if (!userSelect.getDinamicList().isEmpty()) {
            DinamicModel model = userSelect.getDinamicList().get(0);
            Object userId = model.get("user_id");
            // проверить, нет ли попытки добавить самого себя
            int userIdInt = Integer.parseInt(userId.toString());
            if (userIdInt != getAuthorizedUserId()) {
              // найти этого пользователя в группе у авторизованного
              Select linkSelect = getSelect();
              linkSelect.select(userLink);
              linkSelect.from(userLink);
              linkSelect.and(userLink.get("delete_date").isNull());
              linkSelect.and(userLink.get("user_id").eq(getAuthorizedUserId()));
              linkSelect.and(userLink.get("partner_id").eq(userId));
              ok = linkSelect.executeSelect(getConnection());
              if (!ok) {
                setStatus(false);
                addError(linkSelect.getError());
                return;
              }
              // если его там нет
              if (linkSelect.getDinamicList().isEmpty()) {
                // сохранить
                setReq("user_id", getAuthorizedUserId());
                setReq("partner_id", userId);
                super.saveModel();
                return;
              } else {
                // вывести ошибку
                setStatus(false);
                addError("Этот пользователь уже есть в вашей группе");
              }
            } else {
              setStatus(false);
              addError("Нельзя добавить в группу самого себя");
            }
          } else {
            // проверить правильность электронного адреса
            // если адрес правильный
            if (checkEmail(login)) {
              //  проверка - высылался ли уже инвайт этому пользователю
              if (checkInvite(login) && getStatus() == true) {
                // отправить инвайт
                sendInvite(login);
                if (getStatus() == true) {
                  // сохранить инвайт
                  saveInvite(login);
                  if (getStatus()) {
                    addMessage(
                        "Этому пользователю было выслано приглашение на электронную почту. Когда пользователь зарегистрируется в системе, он будет добален в Вашу группу!");
                  }
                }
              }
            } else {
              setStatus(false);
              addError("ошибка: введен некорректный адрес электронной почты!");
            }
          }
        } else {
          setStatus(false);
          addError("Введите логин");
        }
      }
    } catch (Exception e) {
      registerException(e);
    }
  }
Example #3
0
 /** добавить пользователя в группу. Подается параметр - ИД пользователя */
 public void saveByUserId() {
   setReq("partner_id", getReq("user_id"));
   setReq("user_id", getAuthorizedUserId());
   super.saveModel();
 }