1 package com.teamkonzept.webman.mainint.events; 2 3 import java.util.*; 4 5 import com.teamkonzept.lib.*; 6 import com.teamkonzept.web.*; 7 import de.webman.acl.*; 8 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 9 import org.apache.log4j.Category; 10 11 17 public class StartEventHandler 18 extends DefaultEventHandler 19 { 20 21 private static Category cat = Category.getInstance(StartEventHandler.class); 22 23 private static String AUTO_USER = "AUTO_USER"; 25 private static String ACCEPT_UNKNOWN_LOGIN = "ACCEPT_UNKNOWN_LOGIN"; 26 private static String AUTO_DEFAULT_GROUP = "AUTO_DEFAULT_GROUP"; 27 28 private StartEventHandler() {} 29 30 private static StartEventHandler instance = new StartEventHandler(); 31 32 public static StartEventHandler getInstance() 33 { 34 return instance; 35 } 36 37 public void handleEvent (TKEvent evt) 38 throws TKException 39 { 40 Login login= null; 41 String userLogin = evt.getRemoteUser(); 42 cat.debug(userLogin+" has entered ...."); 43 44 try 45 { 46 try 47 { 48 login = LoginFactory.getInstance().getLogin(userLogin); 49 } 50 catch (TKUserException userException) 51 { 52 cat.debug(userLogin+" not existing ...."); 53 boolean acceptUser = false; 55 Integer defaultGroup = new Integer (1); 56 57 try 58 { 59 PropertyManager pman = PropertyManager.getPropertyManager(AUTO_USER); 60 acceptUser = pman.getValue(ACCEPT_UNKNOWN_LOGIN).toUpperCase().equals("Y") 61 || pman.getValue(ACCEPT_UNKNOWN_LOGIN).toUpperCase().equals("J"); 62 defaultGroup = new Integer (pman.getValue(AUTO_DEFAULT_GROUP)); 63 } 64 catch (Throwable e) 65 { 66 cat.debug("Failed loading properties: "+e); 69 } 70 71 if (acceptUser) 72 { 73 cat.debug("creating new User: "+userLogin+" ...."); 75 login = UserFactory.getInstance().createUser(userLogin, userLogin); 76 77 Profile profile = ProfileFactory.getInstance().getProfile(defaultGroup); 79 80 cat.debug("adding "+userLogin+"to default group "+profile.getName()+" ...."); 81 profile.addChild((User)login); 82 ProfileFactory.getInstance().modifyProfile(profile); 83 } 84 else 85 { 86 throw userException; 87 } 88 } 89 90 TKHTMLTemplate t = evt.getPrepHTMLTemplate("startmenu.tmpl"); 91 TKVector ids = ContextFactory.getInstance().getObjectIDs(); 92 Integer id = null; 93 TKVector events = null; 94 95 for (int i = 0; i < ids.size(); i++) 97 { 98 id = (Integer ) ids.elementAt(i); 99 events = login.getAllowedEvents(id); 100 101 if (events != null) 102 { 103 for (int e = 0; e < events.size(); e++) 104 { 105 t.set(((Event) events.elementAt(e)).getName(), "1"); 106 } 107 } 108 } 109 110 events = login.getAllowedEvents(CONTENT_EDIT, Policy.CONTENT_TREE_ID, new Integer (1)); 112 113 if (events != null) 114 { 115 for (int e = 0; e < events.size(); e++) 116 { 117 t.set(((Event) events.elementAt(e)).getName(), "1"); 118 } 119 } 120 121 events = login.getAllowedEvents(SITE_TREE, Policy.SITE_TREE_ID, new Integer (1)); 123 124 if (events != null) 125 { 126 for (int e = 0; e < events.size(); e++) 127 { 128 t.set(((Event) events.elementAt(e)).getName(), "1"); 129 } 130 } 131 132 t.set("LOGIN", login.getName()); 134 evt.finishTemplate( t ); 135 } 136 catch (Throwable t) 137 { 138 throw WebmanExceptionHandler.getException(t); 139 } 140 } 141 142 public boolean isHandler (TKEvent evt) 143 { 144 return evt.getName().equalsIgnoreCase( "START" ); 145 } 146 147 } 148 | Popular Tags |