2010-11-18 15 views
0

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.

cevap

0

Bahsettiğiniz son şey iyi geliyor.

Ayrıca bir validateEventBadge yöntemine processEventBadge de bir çağrı koyardım.

Kullanıcı nesnesinin geçişi kolay bir şeydir.