Ejemplo n.º 1
0
  // регистрация пользователя
  public boolean registrationWithPassword() throws Exception {
    boolean status = false;
    // проверить наличие такого логина
    ArrayList<String> errors = new ArrayList<String>();
    if (MyString.NotNull(getReq("login"))) {
      if (MyString.NotNull(getReq("password")) && MyString.NotNull(getReq("password2"))) {
        if (getReq("password").equals(getReq("password2"))) {
          String password = getReq("password").toString();
          String login = (String) getReq("login");
          Table users = getTable("users");
          Select se = getSelect();
          se.select(users);
          se.from(users);
          se.and(users.get("login").eq(login));
          se.and(users.get("active_to").isNull());
          se.executeSelect(getConnection());
          if (se.getDinamicList().size() > 0) {
            errors.add("Пользователь с таким адресом электронной почты уже существует");
          } else {
            String hash = Security.getPasswordHash(password);
            Model userModel = getModel(getModelName());
            userModel.set("password", hash);
            userModel.set("login", login);
            userModel.set("active_from", FormatDate.getCurrentDateInMysql());
            status = userModel.save();
            if (status) {
              set("user_id", userModel.get("user_id"));
            } else {
              errors.addAll(userModel.getError());
            }
          }
        } else {
          addError("Ошибка: пароль не совпадает с подтверждением");
        }
      } else {
        setStatus(false);
        addError("не передан пароль");
      }
    } else {
      setStatus(false);
      addError("не передан адрес электронной почты");
    }

    addError(errors);
    setStatus(status);
    return status;
  }
Ejemplo n.º 2
0
 /** обновить данные модели */
 @Override
 public void closeModel() {
   try {
     Model model = getModel(getModelName());
     boolean status = false;
     model.set(getRequestClone());
     if (model.findByPrimary() == false) {
       status = false;
       addError("Не обнаружен первичный ключ " + model.getPrimaryAlias());
     } else {
       model.set("active_to", FormatDate.getCurrentDateInMysql());
       status = model.save();
       getActionResult().model(model);
       for (String name : model.getParams().keySet()) {
         set(name, model.getParams().get(name));
       }
     }
   } catch (Exception ex) {
     addError(MyString.getStackExeption(ex));
   }
 }
Ejemplo n.º 3
0
 /**
  * изменить роль
  *
  * @return
  * @throws Exception
  */
 public boolean changeRole() throws Exception {
   boolean status = false;
   if (getReq("user_id") != null) {
     String query =
         "delete from user_roles where user_id = "
             + getSelect().validateParameter(getReq("user_id"), true)
             + "";
     QueryExecutor exec = ExecutorFabric.getExecutor(getConnection(), query);
     status = exec.update();
     if (!getReq("role_id").equals("0")) {
       Model role = getModel("user_roles");
       role.set("user_id", getReq("user_id"));
       role.set("role_id", getReq("role_id"));
       role.set("active_from", FormatDate.getCurrentDateInMysql());
       status = role.save();
       addError(role.getError());
     } else {
       status = false;
       addError("Роль не передана");
     }
   }
   setStatus(status);
   return status;
 }
Ejemplo n.º 4
0
 /**
  * сохранить связь между пользователями по инвайту. Применяется, когда регистрируется новый
  * пользователь, и этот пользователь был приглашен другим пользователем. Тогда мы регистрируем
  * связи между этими двумя пользователями - приглашенным и тем, кто пригласил.
  */
 public void saveFromInvite() {
   try {
     if (MyString.NotNull(getReq("user_id")) && MyString.NotNull(getReq("login"))) {
       // получить ИД добавленного пользователя
       // получить логин
       Object login = getReq("login");
       Object guestId = getReq("user_id");
       // найти в таблице все записи с таким логином
       Table inviteTable = getTable("invite");
       Select sel = getSelect();
       sel.select(inviteTable);
       sel.from(inviteTable);
       sel.and(inviteTable.get("delete_date").isNull());
       sel.and(inviteTable.get("login").eq(login));
       boolean ok = sel.executeSelect(getConnection());
       if (!ok) {
         setStatus(false);
         addError(sel.getError());
       }
       // для каждой записи
       for (DinamicModel model : sel.getDinamicList()) {
         Object hostId = model.get("user_id");
         if (hostId != null) {
           // сохранить две связи
           Model link1 = getModel();
           link1.set("user_id", hostId);
           link1.set("partner_id", guestId);
           setStandartFields(link1, true);
           ok = link1.save();
           if (!ok) {
             setStatus(false);
             addError("3");
             addError(link1.getError());
           }
           // сохранить две связи
           Model link2 = getModel();
           link2.set("user_id", guestId);
           link2.set("partner_id", hostId);
           setStandartFields(link2, true);
           ok = link2.save();
           if (!ok) {
             setStatus(false);
             addError("2");
             addError(link2.getError());
           }
           // закрыть саму запись
           Model invite = getModel("invite");
           invite.set("invite_id", model.get("invite_id"));
           setStandartFields(invite, false);
           invite.set("delete_date", FormatDate.getCurrentDateInMysql());
           ok = invite.save();
           if (!ok) {
             setStatus(false);
             addError("1");
             addError(invite.getError());
           }
         }
       }
     } else {
       setStatus(false);
       addError("не переданы ИД пользователя или логин");
     }
   } catch (Exception e) {
     registerException(e);
   }
 }