KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > organization > hibernate > 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.hibernate;
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.commons.utils.IdentifierUtil;
13 import org.exoplatform.container.configuration.ConfigurationManager;
14 import org.exoplatform.container.configuration.ObjectParam;
15 import org.exoplatform.container.configuration.ServiceConfiguration;
16 import org.exoplatform.services.database.XResources;
17 import org.exoplatform.services.organization.OrganizationService;
18 import org.exoplatform.services.organization.User;
19 import org.exoplatform.services.organization.UserEventListener;
20 import org.exoplatform.services.organization.impl.MembershipImpl;
21 import org.picocontainer.Startable;
22 /**
23  * Jul 20, 2004
24  * @author: Tuan Nguyen
25  * @email: tuan08@users.sourceforge.net
26  * @version: $Id: NewUserEventListener.java,v 1.7 2004/10/28 15:36:43 tuan08 Exp $
27  */

28 public class NewUserEventListener extends UserEventListener implements Startable {
29   private MembershipQueryHandler membershipQueryHandler_ ;
30   private NewUserConfig config_ ;
31   
32     public NewUserEventListener(ConfigurationManager cService,
33                               OrganizationService orgService,
34                               MembershipQueryHandler membershipQueryHandler) throws Exception JavaDoc {
35     membershipQueryHandler_ = membershipQueryHandler ;
36     orgService.addUserEventListener(this) ;
37
38     ServiceConfiguration sconf = cService.getServiceConfiguration(getClass()) ;
39     if (sconf == null) return ;
40     ObjectParam param = sconf.getObjectParam("new.user.configuration") ;
41     config_ = (NewUserConfig) param.getObject() ;
42   }
43   
44   public void start() { }
45   
46   public void stop() { }
47   
48     public void postSave(User user, boolean isNew, XResources xresources) throws Exception JavaDoc {
49     if(config_ == null) return ;
50     if(isNew && !config_.isIgnoreUser(user.getUserName())) {
51       Session session = (Session) xresources.getResource(Session.class) ;
52       createDefaultUserMemberships(user , session) ;
53     }
54     }
55       
56   private void createDefaultUserMemberships(User user, Session session) throws Exception JavaDoc {
57     List JavaDoc groups = config_.getGroup() ;
58     if(groups.size() == 0) return ;
59     ArrayList JavaDoc memberships = new ArrayList JavaDoc() ;
60     for(int i = 0; i < groups.size(); i++) {
61       NewUserConfig.JoinGroup group = (NewUserConfig.JoinGroup) groups.get(i) ;
62       MembershipImpl m = new MembershipImpl() ;
63       m.setGroupId(group.getGroupId()) ;
64       m.setMembershipType(group.getMembership()) ;
65       m.setUserName(user.getUserName()) ;
66       m.setId(IdentifierUtil.generateUUID(m)) ;
67       memberships.add(m) ;
68     }
69     membershipQueryHandler_.createMembershipEntries(memberships, session) ;
70   }
71 }
Popular Tags