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 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 groupId = evt.getParameter( PARAMETER, "GROUP_ID"); 34 String 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 e) { 45 throw WebmanExceptionHandler.getException(e); 46 } 47 } 48 49 52 public boolean isHandler(TKEvent evt) 53 { 54 return evt.getName().equalsIgnoreCase( "AC_GROUP_DELETE_CHILD" ); 55 } 56 57 58 61 private void doGroup(TKEvent evt) throws Throwable 62 { 63 String 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 (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 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 (groupId)); 80 WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, ACCESS_CONTROL); 81 evt.finishTemplate( t ); 82 } 83 84 87 private void removeLogin(Profile profile, TKParams params, String parameter) throws Exception 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 lId = (String )vecEnum.nextElement(); 102 Login login = LoginFactory.getInstance().getLogin(new Integer (lId)); 103 if (login != null) { 104 profile.removeChild(login); 105 ProfileFactory.getInstance().modifyProfile(profile); 106 } 107 } 108 } 109 110 113 private void doUser(TKEvent evt) throws Throwable 114 { 115 String 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 (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 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 (userId)); 130 WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, ACCESS_CONTROL); 131 evt.finishTemplate( t ); 132 } 133 134 137 private void removeLoginFromGroups(Login login, TKParams params, String parameter) throws Exception 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 lId = (String )vecEnum.nextElement(); 152 Profile profile = ProfileFactory.getInstance().getProfile(new Integer (lId)); 153 if (profile != null) { 154 profile.removeChild(login); 155 ProfileFactory.getInstance().modifyProfile(profile); 156 } 157 } 158 } 159 } 160 | Popular Tags |