KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > organization > ldap > NewUserEventListener


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5 package org.exoplatform.services.organization.ldap;
6
7 import java.util.ArrayList JavaDoc;
8 import java.util.List JavaDoc;
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 /**
22  * Jul 20, 2004
23  * @author: Tuan Nguyen
24  * @email: tuan08@users.sourceforge.net
25  * @version: $Id: NewUserEventListener.java,v 1.5 2004/11/03 11:37:21 danny_xcz Exp $
26  */

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 JavaDoc {
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 JavaDoc {
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 JavaDoc {
65     List JavaDoc groups = config_.getGroup() ;
66     if(groups.size() == 0) return ;
67     ArrayList JavaDoc memberships = new ArrayList JavaDoc() ;
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       //m.setRole() ;
75
//m.setId(IdentifierUtil.generateUUID(m)) ;
76
memberships.add(m) ;
77     }
78     membershipLDAPHandler_.createMembershipEntries(memberships, session) ;
79   }
80 }
Popular Tags