/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * * Copyright 2003-2008 Akaza Research */ package org.akaza.openclinica.control.submit; import org.akaza.openclinica.bean.core.Role; import org.akaza.openclinica.bean.login.UserAccountBean; import org.akaza.openclinica.control.SpringServletAccess; import org.akaza.openclinica.control.core.SecureController; import org.akaza.openclinica.dao.hibernate.RuleSetAuditDao; import org.akaza.openclinica.dao.hibernate.RuleSetRuleAuditDao; import org.akaza.openclinica.dao.login.UserAccountDAO; import org.akaza.openclinica.domain.rule.RuleSetAuditBean; import org.akaza.openclinica.domain.rule.RuleSetBean; import org.akaza.openclinica.domain.rule.RuleSetRuleAuditBean; import org.akaza.openclinica.service.rule.RuleSetServiceInterface; import org.akaza.openclinica.view.Page; import org.akaza.openclinica.web.InsufficientPermissionException; import java.util.List; /** * @author Krikor Krumlian */ public class ViewRuleSetAuditServlet extends SecureController { private static String RULESET_ID = "ruleSetId"; private static String RULESET = "ruleSet"; private static String RULESETAUDITS = "ruleSetAudits"; private static String RULESETRULEAUDITS = "ruleSetRuleAudits"; private RuleSetServiceInterface ruleSetService; private RuleSetAuditDao ruleSetAuditDao; private RuleSetRuleAuditDao ruleSetRuleAuditDao; private UserAccountDAO userAccountDAO; /** * */ @Override public void mayProceed() throws InsufficientPermissionException { if (ub.isSysAdmin()) { return; } if (currentRole.getRole().equals(Role.STUDYDIRECTOR) || currentRole.getRole().equals(Role.COORDINATOR)) { return; } addPageMessage(respage.getString("no_have_correct_privilege_current_study") + respage.getString("change_study_contact_sysadmin")); throw new InsufficientPermissionException(Page.MENU_SERVLET, resexception.getString("not_study_director"), "1"); } @Override public void processRequest() throws Exception { String ruleSetId = request.getParameter(RULESET_ID); if (ruleSetId == null) { addPageMessage(respage.getString("please_choose_a_CRF_to_view")); forwardPage(Page.CRF_LIST); } else { RuleSetBean ruleSetBean = getRuleSetService().getRuleSetById(currentStudy, ruleSetId); List<RuleSetAuditBean> ruleSetAudits = getRuleSetAuditDao().findAllByRuleSet(ruleSetBean); List<RuleSetRuleAuditBean> ruleSetRuleAudits = getRuleSetRuleAuditDao().findAllByRuleSet(ruleSetBean); for (RuleSetRuleAuditBean ruleSetRuleAuditBean : ruleSetRuleAudits) { ruleSetRuleAuditBean.setUpdater((UserAccountBean) getUserAccountDAO().findByPK(ruleSetRuleAuditBean.getUpdaterId())); } for (RuleSetAuditBean ruleSetAudit : ruleSetAudits) { ruleSetAudit.setUpdater((UserAccountBean) getUserAccountDAO().findByPK(ruleSetAudit.getUpdaterId())); } request.setAttribute(RULESET, ruleSetBean); request.setAttribute(RULESETAUDITS, ruleSetAudits); request.setAttribute(RULESETRULEAUDITS, ruleSetRuleAudits); forwardPage(Page.VIEW_RULESET_AUDITS); } } @Override protected String getAdminServlet() { if (ub.isSysAdmin()) { return SecureController.ADMIN_SERVLET_CODE; } else { return ""; } } private RuleSetServiceInterface getRuleSetService() { ruleSetService = this.ruleSetService != null ? ruleSetService : (RuleSetServiceInterface) SpringServletAccess.getApplicationContext(context).getBean( "ruleSetService"); return ruleSetService; } private RuleSetAuditDao getRuleSetAuditDao() { ruleSetAuditDao = this.ruleSetAuditDao != null ? ruleSetAuditDao : (RuleSetAuditDao) SpringServletAccess.getApplicationContext(context).getBean("ruleSetAuditDao"); return ruleSetAuditDao; } private RuleSetRuleAuditDao getRuleSetRuleAuditDao() { ruleSetRuleAuditDao = this.ruleSetRuleAuditDao != null ? ruleSetRuleAuditDao : (RuleSetRuleAuditDao) SpringServletAccess.getApplicationContext(context).getBean( "ruleSetRuleAuditDao"); return ruleSetRuleAuditDao; } private UserAccountDAO getUserAccountDAO() { return userAccountDAO = this.userAccountDAO != null ? userAccountDAO : new UserAccountDAO(sm.getDataSource()); } }