KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > acl > eventhandler > ACGroupDeleteUserEventHandler


1 package de.webman.acl.eventhandler;
2
3 import java.util.*;
4
5 import com.teamkonzept.web.*;
6 import com.teamkonzept.lib.*;
7 import com.teamkonzept.webman.*;
8 import com.teamkonzept.webman.mainint.*;
9 import com.teamkonzept.webman.mainint.events.*;
10 import de.webman.acl.*;
11
12 /**
13 Updates a group definiton in the database
14  * @author $Author: alex $
15  * @version $Revision: 1.3 $
16  */

17 public class ACGroupDeleteUserEventHandler extends DefaultEventHandler implements ParameterTypes, DatabaseDefaults, FrameConstants
18 {
19     private ACGroupDeleteUserEventHandler() {}
20
21     private static ACGroupDeleteUserEventHandler instance = new ACGroupDeleteUserEventHandler();
22
23     public static ACGroupDeleteUserEventHandler getInstance()
24     {
25     return instance;
26     }
27
28     public void handleEvent(TKEvent evt) throws TKException
29     {
30         try {
31             WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.ACCESS_CONTROL);
32
33             String JavaDoc groupId = evt.getParameter( PARAMETER, "GROUP_ID");
34             String JavaDoc userId = evt.getParameter( PARAMETER, "USER_ID");
35
36             if (groupId != null && groupId.length() > 0)
37             {
38                 doGroup(evt);
39             }
40             else if (userId != null && userId.length() > 0)
41             {
42                 doUser(evt);
43             }
44         } catch (Throwable JavaDoc e) {
45             throw WebmanExceptionHandler.getException(e);
46         }
47     }
48
49     /**
50        returns true if this class handles the event
51     */

52     public boolean isHandler(TKEvent evt)
53     {
54     return evt.getName().equalsIgnoreCase( "AC_GROUP_DELETE_CHILD" );
55     }
56
57
58     /**
59         entfernt logins aus einer Gruppe
60      */

61     private void doGroup(TKEvent evt) throws Throwable JavaDoc
62     {
63             String JavaDoc groupId = evt.getParameter( PARAMETER, "GROUP_ID");
64
65             TKParams params = evt.getParams();
66             if (groupId != null) {
67                 Profile theGroup = null;
68                 theGroup = ProfileFactory.getInstance().getProfile(new Integer JavaDoc(groupId));
69                 if (theGroup != null) {
70                     removeLogin(theGroup, params, "DEL_USER_ID");
71                     removeLogin(theGroup, params, "DEL_GROUP_ID");
72
73                 }
74             }
75             TKHTMLTemplate t = evt.getPrepHTMLTemplate( "f_ac_group.tmpl" );
76             String JavaDoc editPage = evt.getParameter(PARAMETER, "EDIT_PAGE");
77             t.set("EDIT_PAGE", (editPage == null ? "1" : editPage));
78             HTMLUtils.fillFrameSet( t, LEFT_FRAME_WIDTH, "AC_GROUP_LIST", "AC_GROUP_EDIT" );
79             t.set("GROUP_ID", new Integer JavaDoc(groupId));
80             WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, ACCESS_CONTROL);
81             evt.finishTemplate( t );
82     }
83
84     /**
85         entfernt logins aus einer Gruppe
86     */

87     private void removeLogin(Profile profile, TKParams params, String JavaDoc parameter) throws Exception JavaDoc
88     {
89         TKVector vec = new TKVector();
90         if ( params.hasMultiple( PARAMETER, parameter ))
91         {
92             vec = params.getVector( PARAMETER, parameter );
93         }
94         else if ( params.get( PARAMETER, parameter ) != null )
95         {
96             vec.addElement( params.get( PARAMETER, parameter ));
97         }
98         Enumeration vecEnum = vec.elements();
99         while (vecEnum.hasMoreElements())
100         {
101             String JavaDoc lId = (String JavaDoc)vecEnum.nextElement();
102             Login login = LoginFactory.getInstance().getLogin(new Integer JavaDoc(lId));
103             if (login != null) {
104                 profile.removeChild(login);
105                 ProfileFactory.getInstance().modifyProfile(profile);
106             }
107         }
108     }
109
110     /**
111         entfernt einen Benutzer aus mehreren Gruppen
112     */

113     private void doUser(TKEvent evt) throws Throwable JavaDoc
114     {
115             String JavaDoc userId = evt.getParameter( PARAMETER, "USER_ID");
116
117             TKParams params = evt.getParams();
118             if (userId != null && userId.length() > 0) {
119                 Login theUser = null;
120                 theUser = LoginFactory.getInstance().getLogin(new Integer JavaDoc(userId));
121                 if (theUser != null) {
122                     removeLoginFromGroups(theUser, params, "DEL_GROUP_ID");
123                 }
124             }
125             TKHTMLTemplate t = evt.getPrepHTMLTemplate( "f_ac_user.tmpl" );
126             String JavaDoc editPage = evt.getParameter(PARAMETER, "EDIT_PAGE");
127             t.set("EDIT_PAGE", (editPage == null ? "1" : editPage));
128             HTMLUtils.fillFrameSet( t, LEFT_FRAME_WIDTH, "AC_USER_LIST", "AC_USER_EDIT" );
129             t.set("USER_ID", new Integer JavaDoc(userId));
130             WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, ACCESS_CONTROL);
131             evt.finishTemplate( t );
132     }
133
134     /**
135         entfernt den Benutzer aus verschiedene Gruppen
136     */

137     private void removeLoginFromGroups(Login login, TKParams params, String JavaDoc parameter) throws Exception JavaDoc
138     {
139         TKVector vec = new TKVector();
140         if ( params.hasMultiple( PARAMETER, parameter ))
141         {
142             vec = params.getVector( PARAMETER, parameter );
143         }
144         else if ( params.get( PARAMETER, parameter ) != null )
145         {
146             vec.addElement( params.get( PARAMETER, parameter ));
147         }
148         Enumeration vecEnum = vec.elements();
149         while (vecEnum.hasMoreElements())
150         {
151             String JavaDoc lId = (String JavaDoc)vecEnum.nextElement();
152             Profile profile = ProfileFactory.getInstance().getProfile(new Integer JavaDoc(lId));
153             if (profile != null) {
154                 profile.removeChild(login);
155                 ProfileFactory.getInstance().modifyProfile(profile);
156             }
157         }
158     }
159 }
160
Popular Tags