Реализация проверки формы веб-приложения Java - PullRequest
0 голосов
/ 18 ноября 2010

Мне нужно добавить дополнительное правило проверки в поле формы в веб-приложении Java. У меня есть правило, подтверждающее, что введенное значение поля формы соответствует действительному идентификатору сотрудника.

Но теперь я хотел бы убедиться, что это значение является либо идентификатором сотрудника формы / веб-пользователя, либо сотрудника формы / веб-пользователя. Другими словами, сотрудник может ввести событие против своего идентификатора сотрудника, а руководитель может ввести событие против своего идентификатора сотрудника, а также идентификатора сотрудника, которого он контролирует. Вот что у меня есть.

public Object insert(HttpServletRequest request) {
    OopEvent event = new OopEvent();
    STKUser authenticatedUser = (STKUser) request.getSession().getAttribute("STKUserSession");

    try {
        // populate bean with setters
        processEventBadge (request, event);
        processEventEventTypeID(request, event);
        processEventStartDate (request, event);
        processEventEndDate (request, event);
        processEventHours (request, event);
        if (isSucces()) {
            EventDAO.insert(event, authenticatedUser);
        }
        else {
            setError(FORM_RESULTS, "Error - There are error(s) in your input. See below.");
            LOGGERI.log(Level.INFO, "Form input errors inserting OopEvent", authenticatedUser);
        }
    } catch (DAOException e) {
        setError(FORM_RESULTS, e.getMessage());
    }
    return event;
}


// Field processors
// ---------------------------------------------------------------------------

public void processEventBadge(HttpServletRequest request, OopEvent event) throws DAOException {
    String _badge = FormUtil.getFieldValue(request, FIELD_BADGE);
    if (!"".equals(_badge) && _badge != null) {
        try {
            event.setBadge(_badge);
            event.setEventUser(STKUserDAO.getValidEmployeeByBadge(_badge)); //Returns user bean
//should make a call to validate event employee ID HERE?????????? If so I need the send eventUser and authenticatedUser but authenticatedUser is not available here only the eventUser (only if the badge number is of a valid employee)
        }
        catch (ValidatorException e) {
            setError(FIELD_BADGE, e.getMessage());
        }
        catch (DAOException e) {
            setError(FIELD_BADGE, e.getMessage());
            throw new DAOException(e.getMessage());
        }
    }
    else {
         setError(FIELD_BADGE, "OopEvent Owner badge is required");
    }
}

Должен ли я реализовать эту логику в методе insert, processEventBadge или validateEventBadge? Или где-то еще ?? Я думаю, что я должен поместить вызов в processEventBadge в validateEventBadge метод, но это потребовало бы, чтобы я передал объект authenticatedUser обоим методам. Пользовательский объект содержит идентификатор сотрудника и идентификатор сотрудника руководителя. Поэтому я мог убедиться, что зарегистрированный пользователь наблюдает за событием, сравнивая два объекта.

1 Ответ

0 голосов
/ 19 ноября 2010

Последнее, что вы упомянули, звучит хорошо.

Я бы также поместил вызов в processEventBadge в метод validateEventBadge.

Передача пользовательского объекта - легкая вещь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...