Author: [email protected]
Date: Tue Jan 13 07:47:02 2009
New Revision: 1772

Modified:
    trunk/webapp/src/app/org/openmeetings/app/data/user/Emailmanagement.java
    trunk/webapp/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
    trunk/webapp/src/app/org/openmeetings/app/remote/UserService.java

Log:
Issue 590 : deleteUserid now also sets dependent email and address to  
deleted ( email can be reused in case of recreation of user)
                                        
                                

Modified:  
trunk/webapp/src/app/org/openmeetings/app/data/user/Emailmanagement.java
==============================================================================
---  
trunk/webapp/src/app/org/openmeetings/app/data/user/Emailmanagement.java        
 
(original)
+++  
trunk/webapp/src/app/org/openmeetings/app/data/user/Emailmanagement.java        
 
Tue Jan 13 07:47:02 2009
@@ -112,6 +112,67 @@
                }
                return null;
        }       
+       
+       /**
+        *
+        * @param address
+        * @return
+        */
+        
//---------------------------------------------------------------------------
+       public Adresses_Emails getAdresses_EmailsByAddress(Long address) {
+               
+               log.debug("Emailmanagement.getAdresses_EmailsByAddress");
+               
+               try {
+                       String hql = "select c from Adresses_Emails as c " +
+                                       " where c.adresses_id = :address ";
+                       Object idf = HibernateUtil.createSession();
+                       Session session = HibernateUtil.getSession();
+                       Transaction tx = session.beginTransaction();
+                       Query query = session.createQuery(hql);
+                       query.setLong("address", address);
+                       
+                       Adresses_Emails e = (Adresses_Emails) 
query.uniqueResult();
+                       tx.commit();
+                       HibernateUtil.closeSession(idf);
+                       return e;
+               } catch (HibernateException ex) {
+                       log.error("getAdresses_EmailsByAddress",ex);
+               } catch (Exception ex2) {
+                       log.error("getAdresses_EmailsByAddress",ex2);
+               }
+               
+               return null;
+       }
+        
//---------------------------------------------------------------------------
+       
+       /**
+        * @author becherer
+        */
+        
//--------------------------------------------------------------------------------
+       public void updateEmail(Emails mail){
+               
+               log.debug("Emailmanagement.updateEmail : " + mail.getEmail());
+               
+               try{
+                       Object idf = HibernateUtil.createSession();
+                       Session session = HibernateUtil.getSession();
+                       Transaction tx = session.beginTransaction();
+               
+                       session.update(mail);
+               
+                       tx.commit();
+                       
+                       session.flush();
+                       
+                       HibernateUtil.closeSession(idf);
+               }catch(Exception e){
+                       log.error("Emailmanagement.updateEmail : Error updating 
email : " +  
e.getMessage());
+               }
+               
+       }
+        
//--------------------------------------------------------------------------------
+       

        public List getemailsCon(int CONTACT_ID) {
                try {

Modified:  
trunk/webapp/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
==============================================================================
---  
trunk/webapp/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java       
 
(original)
+++  
trunk/webapp/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java       
 
Tue Jan 13 07:47:02 2009
@@ -21,6 +21,7 @@

        private static UsersDaoImpl instance = null;

+       
        private UsersDaoImpl() {
        }


Modified: trunk/webapp/src/app/org/openmeetings/app/remote/UserService.java
==============================================================================
--- trunk/webapp/src/app/org/openmeetings/app/remote/UserService.java    
(original)
+++ trunk/webapp/src/app/org/openmeetings/app/remote/UserService.java   Tue  
Jan 13 07:47:02 2009
@@ -8,10 +8,15 @@
  import org.slf4j.LoggerFactory;
  import org.openmeetings.app.data.basic.Sessionmanagement;
  import org.openmeetings.app.data.beans.basic.SearchResult;
+import org.openmeetings.app.data.user.Addressmanagement;
+import org.openmeetings.app.data.user.Emailmanagement;
  import org.openmeetings.app.data.user.Usermanagement;
  import org.openmeetings.app.data.user.Salutationmanagement;
  import org.openmeetings.app.data.user.Organisationmanagement;
  import org.openmeetings.app.data.user.dao.UsersDaoImpl;
+import org.openmeetings.app.hibernate.beans.adresses.Adresses;
+import org.openmeetings.app.hibernate.beans.adresses.Adresses_Emails;
+import org.openmeetings.app.hibernate.beans.adresses.Emails;
  import org.openmeetings.app.hibernate.beans.user.Users;

  import org.red5.io.utils.ObjectMap;
@@ -269,11 +274,46 @@
       * @return
       */
      public Long deleteUserAdmin(String SID, int user_idClient){
+       log.debug("deleteUserAdmin");
+       
        Long users_id = Sessionmanagement.getInstance().checkSession(SID);
+       
        long user_level =  
Usermanagement.getInstance().getUserLevelByID(users_id);
+       
+       
+       // admins only
        if(user_level>=3){
+               // no self destruction ;-)
                if (users_id!=user_idClient){
-               return UsersDaoImpl.getInstance().deleteUserID(user_idClient);
+                       
+                       // Setting user deleted
+                       Long userId =   
UsersDaoImpl.getInstance().deleteUserID(user_idClient);
+                       
+                       Users user =  
Usermanagement.getInstance().checkAdmingetUserById(user_level, users_id);
+                       
+                       // Updating address
+                               Adresses ad = user.getAdresses();
+                               
+                               if(ad != null){
+                                       ad.setDeleted("true");
+                                       
+                                       
Addressmanagement.getInstance().updateAdress(ad);
+                                       log.debug("deleteUserId : Address 
updated");
+                               
+                                       Adresses_Emails ae =  
Emailmanagement.getInstance().getAdresses_EmailsByAddress(ad.getAdresses_id());
+                                       
+                                       if(ae != null){
+                                               Emails e = ae.getMail();
+                                               e.setDeleted("true");
+                                               
+                                               
Emailmanagement.getInstance().updateEmail(e);
+                                       }
+                                       
+                                       log.debug("deleteUserId : mail 
updated");
+                               }
+                       
+                       
+                       return userId;
                } else {
                        return new Long(-10);
                }

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to