Update of
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/person
In directory
james.mmbase.org:/tmp/cvs-serv1748/src/java/com/finalist/cmsc/services/community/person
Modified Files:
Tag: b1_5
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.23.2.3
retrieving revision 1.23.2.4
diff -u -b -r1.23.2.3 -r1.23.2.4
--- PersonHibernateService.java 23 Feb 2009 15:34:21 -0000 1.23.2.3
+++ PersonHibernateService.java 3 Mar 2009 06:29:49 -0000 1.23.2.4
@@ -15,6 +15,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+
import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
@@ -25,6 +26,7 @@
import org.springframework.beans.factory.annotation.Required;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+
import com.finalist.cmsc.paging.PagingStatusHolder;
import com.finalist.cmsc.paging.PagingUtils;
import com.finalist.cmsc.services.HibernateService;
@@ -500,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.16.2.3
retrieving revision 1.16.2.4
diff -u -b -r1.16.2.3 -r1.16.2.4
--- PersonService.java 23 Feb 2009 15:34:21 -0000 1.16.2.3
+++ PersonService.java 3 Mar 2009 06:29:49 -0000 1.16.2.4
@@ -84,7 +84,10 @@
public void addRelationRecord(String level, PersonExportImportVO
importPerson);
void changeStateByAuthenticationId(Long authenticationId, String active);
+
public List<PersonExportImportVO> getPersonExportImportVO(String group);
public List<Authority> getAllAuthorities();
+
+ public void ImportDataFromFileRecord(String level, PersonExportImportVO
importPerson);
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs