Java web uygulamasında bir form alanına ek bir doğrulama kuralı eklemem gerekiyor. Girilen form alanı değerinin geçerli bir çalışan kimliğiyle doğrulandığını doğrulayan bir kuralım var.Java web başvuru formu doğrulama onaylaması
Fakat şimdi bu değerin form/web kullanıcısı veya form/web kullanıcısı çalışanının Çalışan Kimliği olduğunu doğrulamak istiyorum. Diğer bir deyişle, bir çalışan kendi çalışan kimliğine karşı bir etkinlik düzenleyebilir ve bir denetçi kendi çalışan kimliğine karşı bir olaya girebilir ve ayrıca rozeti denetledikleri bir çalışanın kimliğini girebilir. İşte sahip olduğum şey.
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");
}
}
ben insert
yönteminde bu mantığı, processEventBadge
veya validateEventBadge
yönteminde uygulamak mıdır ?? Veya başka bir yerde?? Sanırım processEventBadge
numaralı telefona bir validateEventBadge
yöntemine çağrı yapmalıyım, ancak bu, authenticatedUser nesnesini her iki yönteme de aktarmamı gerektirirdi. Bir Kullanıcı Nesnesi bir çalışan kimliği ve denetçiler çalışan kimliği içerir. Bu yüzden oturum açmış kullanıcı denetleyicilerinin olayı iki nesneyi karşılaştırarak emin olabilirdim.