Basically fixes #2282. I will create new tickets for still open issues.
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / store / LoginManager.java
index 019460ce490dd3e8a3c7a5e6a7bc78b3722a0795..43d703e49f925c2c898745238254876baf4612e3 100644 (file)
@@ -18,7 +18,10 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 
 /**
  * <p>LoginManager class.</p>
@@ -27,7 +30,9 @@ import eu.etaxonomy.cdm.model.common.User;
  * @created 03.07.2009
  * @version 1.0
  */
-public class LoginManager extends Observable{
+public class LoginManager extends Observable implements IConversationEnabled{
+       
+       private ConversationHolder conversation;
        
        /**
         * <p>authenticate</p>
@@ -36,6 +41,7 @@ public class LoginManager extends Observable{
         */
        public void authenticate(String username, String password){             
                try{
+                       getConversationHolder().bind();
                        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password); 
                        
                        SecurityContextHolder.clearContext();
@@ -77,4 +83,21 @@ public class LoginManager extends Observable{
                SecurityContextHolder.clearContext();
                notifyObservers();              
        }
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
+        */
+       @Override
+       public void update(CdmDataChangeMap arg) {}
+
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
+        */
+       @Override
+       public ConversationHolder getConversationHolder() {
+               if(conversation == null){
+                       conversation = CdmStore.createConversation();
+               }
+               return conversation;
+       }
 }