@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)); } }
/** добавить пользователя в группу. Подается параметр - логин пользователя */ @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); } }
/** добавить пользователя в группу. Подается параметр - ИД пользователя */ public void saveByUserId() { setReq("partner_id", getReq("user_id")); setReq("user_id", getAuthorizedUserId()); super.saveModel(); }