// регистрация пользователя 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; }
/** сбросить пароль на случайное значение */ public void resetPassword() { try { if (MyString.NotNull(getReq("user_id"))) { Model users = getModel(); users.set("user_id", getReq("user_id")); set("user_profile_id", getReq("user_profile_id")); if (users.findByPrimary()) { String password = "******"; users.set("password", Security.getPasswordHash(password)); users.save(); set("password", password); model(users); } else { addError(users.getError()); } } else { addError("не определен пользователь"); } } catch (Exception e) { registerException(e); } }