Update of 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person
In directory 
james.mmbase.org:/tmp/cvs-serv1498/src/java/com/finalist/cmsc/services/community/person

Modified Files:
        PersonHibernateService.java PersonService.java 
Log Message:
CMSC-1265  Community: improve import and export options of community users


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person
See also: http://www.mmbase.org/jira/browse/CMSC-1265


Index: PersonHibernateService.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonHibernateService.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- PersonHibernateService.java 23 Feb 2009 09:11:50 -0000      1.26
+++ PersonHibernateService.java 3 Mar 2009 06:23:55 -0000       1.27
@@ -502,4 +502,68 @@
       criteria = criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY); 
       return criteria.list();
    }
+   @Transactional
+   public void ImportDataFromFileRecord(String level,
+         PersonExportImportVO importPerson) {
+      Person p = 
getPersonByUserId(importPerson.getAuthentication().getUserId());
+      if ("over".equals(level)) {
+         if(p != null) {
+            
authenticationService.updateAuthenticationPassword(importPerson.getAuthentication().getUserId(),
 importPerson.getAuthentication().getPassword());
+            p.setEmail(importPerson.getEmail());
+            p.setActive(importPerson.getActive());
+            updatePerson(p);
+         }
+         else {
+            Authentication authentication = 
authenticationService.createAuthentication(importPerson.getAuthentication());
+            if (authentication.getId() != null) {
+               if(importPerson.getAuthorityId()>0 ){
+                  Authority authority = 
this.getAuthorityById(importPerson.getAuthorityId());
+                  if (null!=authentication.getAuthorities()) {
+                     authentication.getAuthorities().add(authority);
+                  }
+               }
+               addPerson(importPerson, authentication);
+            } 
+         }         
+      }
+      else{
+         // add new users or put user to another group
+         createNewPerson(importPerson);
+      }
+      
+   }
+   @Transactional
+   private void addPerson(PersonExportImportVO importPerson,
+         Authentication authentication) {
+      Person person = new Person();
+      person.setEmail(importPerson.getEmail());
+      person.setActive(importPerson.getActive());
+      person.setAuthenticationId(authentication.getId());
+      getSession().saveOrUpdate(authentication);
+      updatePerson(person);
+   }
+   @Transactional(propagation = Propagation.REQUIRED)
+   private void createNewPerson(PersonExportImportVO xperson) {
+
+      Authentication authentication = xperson.getAuthentication();
+      
if(authenticationService.authenticationExists(authentication.getUserId()) && 
xperson.getAuthorityId()>0 ){
+         Authority authority = this.getAuthorityById(xperson.getAuthorityId());
+         if(null!=authority){
+            authentication = 
authenticationService.getAuthenticationById(authenticationService.getAuthenticationIdForUserId(authentication.getUserId()));
+            authentication.getAuthorities().add(authority);
+            getSession().saveOrUpdate(authentication);
+         }
+      }
+      else 
if(!authenticationService.authenticationExists(authentication.getUserId())){
+         authentication = 
authenticationService.createAuthentication(authentication);
+         if(xperson.getAuthorityId()>0 ){
+            Authority authority = 
this.getAuthorityById(xperson.getAuthorityId());
+            if (null!=authentication.getAuthorities()) {
+               authentication.getAuthorities().add(authority);
+            }
+         }
+         addPerson(xperson, authentication);
+      }
+   
+   }
 }


Index: PersonService.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person/PersonService.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- PersonService.java  23 Feb 2009 09:11:50 -0000      1.19
+++ PersonService.java  3 Mar 2009 06:23:55 -0000       1.20
@@ -88,4 +88,6 @@
    public List<PersonExportImportVO> getPersonExportImportVO(String group);
 
    public List<Authority> getAllAuthorities();
+   
+   public void ImportDataFromFileRecord(String level, PersonExportImportVO 
importPerson);
 }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to