1 5 package org.exoplatform.services.organization.ldap; 6 7 import java.util.ArrayList ; 8 import java.util.List ; 9 10 import net.sf.hibernate.Session; 11 12 import org.exoplatform.container.configuration.ConfigurationManager; 13 import org.exoplatform.container.configuration.ObjectParam; 14 import org.exoplatform.container.configuration.ServiceConfiguration; 15 import org.exoplatform.services.database.XResources; 16 import org.exoplatform.services.organization.OrganizationService; 17 import org.exoplatform.services.organization.User; 18 import org.exoplatform.services.organization.UserEventListener; 19 import org.exoplatform.services.organization.impl.MembershipImpl; 20 import org.picocontainer.Startable; 21 27 public class NewUserEventListener 28 extends UserEventListener 29 implements Startable { 30 private MembershipLDAPHandler membershipLDAPHandler_; 31 private NewUserConfig config_; 32 33 public NewUserEventListener( 34 ConfigurationManager cService, 35 OrganizationService orgService, 36 MembershipLDAPHandler membershipLDAPHandler) 37 throws Exception { 38 membershipLDAPHandler_ = membershipLDAPHandler; 39 orgService.addUserEventListener(this); 40 41 ServiceConfiguration sconf = 42 cService.getServiceConfiguration(getClass()); 43 if (sconf == null) 44 return; 45 ObjectParam param = sconf.getObjectParam("new.user.configuration"); 46 config_ = (NewUserConfig) param.getObject(); 47 } 48 49 public void start() { 50 } 51 52 public void stop() { 53 } 54 55 public void postSave(User user, boolean isNew, XResources xresources) throws Exception { 56 if(config_ == null) return ; 57 if(isNew && !config_.isIgnoreUser(user.getUserName())) { 58 Session session = (Session) xresources.getResource(Session.class) ; 59 createDefaultUserMemberships(user , session) ; 60 } 61 } 62 63 64 private void createDefaultUserMemberships(User user, Session session) throws Exception { 65 List groups = config_.getGroup() ; 66 if(groups.size() == 0) return ; 67 ArrayList memberships = new ArrayList () ; 68 for(int i = 0; i < groups.size(); i++) { 69 NewUserConfig.JoinGroup group = (NewUserConfig.JoinGroup) groups.get(i) ; 70 MembershipImpl m = new MembershipImpl() ; 71 m.setGroupId(group.getGroupId()) ; 72 m.setMembershipType(group.getMembership()) ; 73 m.setUserName(user.getUserName()) ; 74 memberships.add(m) ; 77 } 78 membershipLDAPHandler_.createMembershipEntries(memberships, session) ; 79 } 80 } | Popular Tags |