1 6 7 package org.contineo.actions.admin.rules; 8 9 import java.util.Collection ; 10 import java.util.Iterator ; 11 12 import javax.servlet.http.HttpServletRequest ; 13 import javax.servlet.http.HttpServletResponse ; 14 import javax.servlet.http.HttpSession ; 15 16 import org.apache.log4j.Level; 17 import org.apache.log4j.Logger; 18 import org.apache.struts.action.Action; 19 import org.apache.struts.action.ActionError; 20 import org.apache.struts.action.ActionErrors; 21 import org.apache.struts.action.ActionForm; 22 import org.apache.struts.action.ActionForward; 23 import org.apache.struts.action.ActionMapping; 24 import org.apache.struts.action.ActionMessage; 25 import org.apache.struts.action.ActionMessages; 26 import org.contineo.admin.Group; 27 import org.contineo.admin.MenuGroup; 28 import org.contineo.admin.dao.GroupDAO; 29 import org.contineo.admin.dao.MenuDAO; 30 import org.contineo.admin.dao.MenuGroupDAO; 31 import org.contineo.core.LoggingManager; 32 import org.contineo.core.SessionManagement; 33 37 public class SaveRulesAction extends Action { 38 39 43 private Logger logger; 44 45 46 47 public SaveRulesAction() { 48 logger = LoggingManager.getLogger(this.getClass()); 49 } 50 51 public ActionForward execute(ActionMapping mapping, 52 ActionForm form, HttpServletRequest request, 53 HttpServletResponse response) { 54 ActionForward actionForward = new ActionForward(); 55 ActionErrors errors = new ActionErrors(); 56 ActionMessages messages = new ActionMessages(); 57 HttpSession session = request.getSession(); 58 if (SessionManagement.isValid(session)) { 59 String menuid = request.getParameter("menuid"); 60 61 String userName = (String )session.getAttribute("authuser"); 63 int id = Integer.parseInt(menuid); 64 MenuDAO mdao = new MenuDAO(); 65 if (! mdao.isWriteEnable(id, userName)) 66 { 67 actionForward = mapping.findForward("noaccess"); 68 return actionForward; 69 } 70 MenuGroupDAO mgdao = new MenuGroupDAO(); 71 GroupDAO gdao = new GroupDAO(); 72 try { 73 Collection coll = gdao.findAll(); 74 Iterator iter = coll.iterator(); 75 boolean sqlops = true; 76 while (iter.hasNext()) { 77 Group g = (Group)iter.next(); 78 String read = request.getParameter("r" + g.getGroupName()); 79 String write = request.getParameter("w" + g.getGroupName()); 80 81 if (g.getGroupName().equals("admin")) { 83 read = "on"; 84 write = "on"; 85 } 86 87 MenuGroup mg = mgdao.findByMenuIdGroupName(id, g.getGroupName()); 88 if (read != null && read.equals("on")) { 89 if (mg == null || !mg.getGroupName().equals(g.getGroupName())) { 90 mg = new MenuGroup(); 91 mg.setGroupName(g.getGroupName()); 92 mg.setMenuId(id); 93 } 94 if (write != null && write.equals("on") && read.equals("on")) 95 mg.setWriteEnable(1); 96 else 97 mg.setWriteEnable(0); 98 boolean stored = mgdao.store(mg); 99 if (!stored) 100 sqlops = false; 101 } else { 102 if (mg != null && mg.getGroupName().equals(g.getGroupName())) { 103 boolean deleted = mgdao.delete(id, g.getGroupName()); 104 if (!deleted) 105 sqlops = false; 106 } 107 } 108 } 109 if (!sqlops) 110 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("erros.action.saverules")); 111 else 112 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.saverules")); 113 actionForward.setPath("/ShowRules.do?menuid=" + menuid); 114 } catch (Exception e) { 115 if (logger.isEnabledFor(Level.ERROR)) 116 logger.error(e.getMessage()); 117 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("erros.action.saverules")); 118 actionForward = mapping.findForward("error"); 119 } 120 saveErrors(request, errors); 121 saveMessages(request, messages); 122 } else 123 actionForward = mapping.findForward("invalid"); 124 return actionForward; 125 } 126 } 127 | Popular Tags |