KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > admin > group > SaveGroupAction


1 /*
2  * SaveGroupAction.java
3  *
4  * Created on 26. August 2003, 14:56
5  */

6
7 package org.contineo.actions.admin.group;
8
9 import java.util.Collection JavaDoc;
10 import java.util.Iterator JavaDoc;
11
12 import javax.servlet.http.HttpServletRequest JavaDoc;
13 import javax.servlet.http.HttpServletResponse JavaDoc;
14 import javax.servlet.http.HttpSession JavaDoc;
15 import org.apache.log4j.Level;
16 import org.apache.log4j.Logger;
17 import org.apache.struts.action.Action;
18 import org.apache.struts.action.ActionError;
19 import org.apache.struts.action.ActionErrors;
20 import org.apache.struts.action.ActionForm;
21 import org.apache.struts.action.ActionForward;
22 import org.apache.struts.action.ActionMapping;
23 import org.apache.struts.action.ActionMessage;
24 import org.apache.struts.action.ActionMessages;
25 import org.contineo.admin.Group;
26 import org.contineo.admin.dao.GroupDAO;
27 import org.contineo.core.LoggingManager;
28 import org.contineo.core.SessionManagement;
29 /**
30  *
31  * @author Michael Scholz
32  */

33 public class SaveGroupAction extends Action {
34
35     /**
36      * @uml.property name="logger"
37      * @uml.associationEnd
38      */

39     private Logger logger;
40
41     
42     /** Creates a new instance of SaveGroupAction */
43     public SaveGroupAction() {
44         logger = LoggingManager.getLogger(this.getClass());
45     }
46
47     public ActionForward execute(ActionMapping mapping,
48                     ActionForm form, HttpServletRequest JavaDoc request,
49                     HttpServletResponse JavaDoc response) {
50         ActionForward actionForward = new ActionForward();
51         ActionErrors errors = new ActionErrors();
52         ActionMessages messages = new ActionMessages();
53         HttpSession JavaDoc session = request.getSession();
54         if (SessionManagement.isValid(session)) {
55             try {
56                 Group group = (Group)form;
57                 GroupDAO dao = new GroupDAO();
58                 if (dao.existsGroup(group.getGroupName())) {
59                     errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.groupexists"));
60                 } else {
61                     boolean stored = dao.insert(group);
62                     if (!stored)
63                         errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savegroup.notstored"));
64                     else
65                         messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.savegroup"));
66                 }
67                 group.reset(mapping, request);
68                 Collection JavaDoc coll = dao.findAll();
69                 // we do not allow another group to inherit rights of admin group
70
Iterator JavaDoc iter = coll.iterator();
71                 while (iter.hasNext()) {
72                     Group gr = (Group) iter.next();
73                     if (gr.getGroupName().equals("admin")) {
74                         iter.remove();
75                         break;
76                     }
77                 }
78                 request.setAttribute("groups", coll);
79             } catch (Exception JavaDoc e) {
80                 if (logger.isEnabledFor(Level.ERROR))
81                     logger.error(e.getMessage());
82                 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savegroup.notstored"));
83             }
84             saveErrors(request, errors);
85             saveMessages(request, messages);
86             actionForward = mapping.findForward("addgroup");
87         } else
88             actionForward = mapping.findForward("invalid");
89         return actionForward;
90     }
91 }
92
Popular Tags