01: /* Copyright 2001 The JA-SIG Collaborative. All rights reserved.
02: * See license distributed with this file and
03: * available online at http://www.uportal.org/license.html
04: */
05:
06: package org.jasig.portal.channels.groupsmanager.commands;
07:
08: import java.util.Enumeration;
09:
10: import org.jasig.portal.ChannelRuntimeData;
11: import org.jasig.portal.channels.groupsmanager.CGroupsManagerSessionData;
12: import org.jasig.portal.channels.groupsmanager.GroupsManagerConstants;
13: import org.jasig.portal.channels.groupsmanager.GroupsManagerXML;
14: import org.jasig.portal.channels.permissionsmanager.CPermissionsManagerServantFactory;
15: import org.jasig.portal.groups.IEntityGroup;
16:
17: /**
18: * A Groups Manager command to instantiate a permissions manager servant
19: *
20: * @author Alex Vigdor
21: * @version $Revision: 34756 $
22: */
23: public class AssignPermissions extends GroupsManagerCommand implements
24: GroupsManagerConstants {
25:
26: public AssignPermissions() {
27: }
28:
29: /**
30: * put your documentation comment here
31: * @param sessionData
32: * @throws Exception
33: */
34: public void execute(CGroupsManagerSessionData sessionData)
35: throws Exception {
36: ChannelRuntimeData slaveRD = sessionData.runtimeData;
37: String[] tgts = new String[1];
38: String[] acts = null;
39: IEntityGroup g = (IEntityGroup) GroupsManagerXML
40: .retrieveGroupMemberForElementId(this
41: .getXmlDoc(sessionData), this
42: .getCommandArg(sessionData.runtimeData));
43: tgts[0] = g.getKey();
44: if (g.isEditable()) {
45: acts = sessionData.permissible.getActivityTokens();
46: } else {
47: acts = new String[] { VIEW_PERMISSION, SELECT_PERMISSION,
48: ASSIGN_PERMISSION };
49: }
50: sessionData.servantChannel = CPermissionsManagerServantFactory
51: .getPermissionsServant(sessionData.permissible,
52: sessionData.staticData, null, acts, tgts);
53: slaveRD = (ChannelRuntimeData) sessionData.runtimeData.clone();
54: Enumeration srd = slaveRD.keys();
55: while (srd.hasMoreElements()) {
56: slaveRD.remove(srd.nextElement());
57: }
58: sessionData.runtimeData = slaveRD;
59: }
60: }
|