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