KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > tigris > scarab > actions > admin > ManagePermissions


1 package org.tigris.scarab.actions.admin;
2
3 /* ================================================================
4  * Copyright (c) 2000-2002 CollabNet. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution.
16  *
17  * 3. The end-user documentation included with the redistribution, if
18  * any, must include the following acknowlegement: "This product includes
19  * software developed by Collab.Net <http://www.Collab.Net/>."
20  * Alternately, this acknowlegement may appear in the software itself, if
21  * and wherever such third-party acknowlegements normally appear.
22  *
23  * 4. The hosted project names must not be used to endorse or promote
24  * products derived from this software without prior written
25  * permission. For written permission, please contact info@collab.net.
26  *
27  * 5. Products derived from this software may not use the "Tigris" or
28  * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
29  * prior written permission of Collab.Net.
30  *
31  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
32  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
33  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
34  * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
35  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
37  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
39  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
40  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
41  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42  *
43  * ====================================================================
44  *
45  * This software consists of voluntary contributions made by many
46  * individuals on behalf of Collab.Net.
47  */

48
49
50 // JDK classes
51

52 // Turbine Stuff
53
import org.apache.turbine.TemplateContext;
54 import org.apache.turbine.RunData;
55 import org.apache.turbine.tool.IntakeTool;
56 import org.apache.fulcrum.intake.model.Group;
57 import org.apache.fulcrum.security.TurbineSecurity;
58 import org.apache.fulcrum.security.entity.Permission;
59 import org.apache.fulcrum.security.util.EntityExistsException;
60
61
62 // Scarab Stuff
63
import org.tigris.scarab.om.ScarabUser;
64 import org.tigris.scarab.tools.ScarabLocalizationTool;
65 import org.tigris.scarab.util.ScarabConstants;
66 import org.tigris.scarab.actions.base.RequireLoginFirstAction;
67
68 /**
69  * This class is responsible for dealing with the permission management
70  * Action(s).
71  *
72  * @author <a HREF="mailto:dr@bitonic.com">Douglas B. Robertson</a>
73  * @version $Id: ManagePermissions.java 9017 2004-02-19 22:20:31Z pledbrook $
74  */

75 public class ManagePermissions extends RequireLoginFirstAction
76 {
77     
78     /**
79      *
80      */

81     public void doGotoaddpermission(RunData data, TemplateContext context)
82         throws Exception JavaDoc
83     {
84         setTarget(data, "admin,AddPermission.vm");
85     }
86     
87     /**
88      *
89      */

90     public void doGotodeletepermission(RunData data, TemplateContext context)
91         throws Exception JavaDoc
92     {
93         setTarget(data, "admin,DeletePermission.vm");
94     }
95     
96     /**
97      * Manages the adding of a new role when the 'Add Role' button is pressed.
98      */

99     public void doAddpermission(RunData data, TemplateContext context)
100         throws Exception JavaDoc
101     {
102         IntakeTool intake = getIntakeTool(context);
103         ScarabLocalizationTool l10n = getLocalizationTool(context);
104         
105         if (intake.isAllValid())
106         {
107             Object JavaDoc user = data.getUser().getTemp(ScarabConstants.SESSION_REGISTER);
108             
109             Group editPermission = null;
110             if (user != null && user instanceof ScarabUser)
111             {
112                 editPermission = intake.get("EditPermission", ((ScarabUser)user).getQueryKey(), false);
113             }
114             else
115             {
116                 editPermission = intake.get("EditPermission", IntakeTool.DEFAULT_KEY, false);
117             }
118             String JavaDoc name = editPermission.get("PermissionName").toString();
119             
120             try
121             {
122                 Permission permission = TurbineSecurity.getNewPermission(null);
123                 permission.setName(name);
124                 
125                 TurbineSecurity.addPermission(permission);
126                 data.getParameters().setString("lastAction", "addedpermission");
127                 String JavaDoc msg = l10n.format("PermissionCreated", name);
128                 getScarabRequestTool(context).setConfirmMessage(msg);
129             }
130             catch (EntityExistsException eee)
131             {
132                 String JavaDoc msg = l10n.format("PermissionExists", name);
133                 getScarabRequestTool(context).setConfirmMessage(msg);
134                 data.getParameters().setString("lastAction","");
135             }
136         }
137     }
138     
139     /**
140      * This manages the clicking of the 'Confirm Delete' button and actually
141      * deletes the Permission.
142      */

143     public void doDeletepermission(RunData data, TemplateContext context)
144         throws Exception JavaDoc
145     {
146         String JavaDoc name = data.getParameters().getString("name");
147         Permission permission = TurbineSecurity.getPermission(name);
148         TurbineSecurity.removePermission(permission);
149         
150         ScarabLocalizationTool l10n = getLocalizationTool(context);
151         String JavaDoc msg = l10n.format("PermissionDeleted", name);
152         getScarabRequestTool(context).setConfirmMessage(msg);
153         setTarget(data, data.getParameters().getString(ScarabConstants.NEXT_TEMPLATE, "admin,ManagePermissions.vm"));
154         
155     }
156     
157     
158     /**
159      * This manages clicking the Cancel button
160      */

161     public void doCancel(RunData data, TemplateContext context) throws Exception JavaDoc
162     {
163         setTarget(data, data.getParameters()
164                       .getString(ScarabConstants.CANCEL_TEMPLATE, "admin,AdminIndex.vm"));
165     }
166     
167     /**
168      * calls doCancel()
169      */

170     public void doPerform(RunData data, TemplateContext context)
171         throws Exception JavaDoc
172     {
173         doCancel(data,context);
174     }
175 }
176
Popular Tags