2010-11-18 4 views
0

Мне нужно добавить дополнительное правило проверки в поле формы в веб-приложении Java. У меня есть правило, подтверждающее, что введенное значение поля формы соответствует действительному идентификатору сотрудника.Проверка правильности формы веб-приложения 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 для обоих методов. Пользовательский объект содержит идентификатор сотрудника и идентификатор сотрудника супервизора. Поэтому я мог убедиться, что зарегистрированный пользователь будет контролировать это событие, сравнив два объекта.

ответ

0

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

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

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

Смежные вопросы