Scarab commit: svn commit: r10230 - branches/release/b21/src/java/org/tigris/scarab/actions/Login.java

[email protected]
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: dabbous
Date: 2006-07-31 15:18:05-0700
New Revision: 10230

Modified:
   branches/release/b21/src/java/org/tigris/scarab/actions/Login.java

Log:
applied patch for SCB1726 

needed a little adaption to be applicable to b21 branch

Modified: branches/release/b21/src/java/org/tigris/scarab/actions/Login.java
Url: http://scarab.tigris.org/source/browse/scarab/branches/release/b21/src/java/org/tigris/scarab/actions/Login.java?view=diff&rev=10230&p1=branches/release/b21/src/java/org/tigris/scarab/actions/Login.java&p2=branches/release/b21/src/java/org/tigris/scarab/actions/Login.java&r1=10229&r2=10230
==============================================================================
--- branches/release/b21/src/java/org/tigris/scarab/actions/Login.java	(original)
+++ branches/release/b21/src/java/org/tigris/scarab/actions/Login.java	2006-07-31 15:18:05-0700
@@ -71,6 +71,7 @@
 import org.tigris.scarab.om.ScarabUser;
 import org.tigris.scarab.om.Module;
 import org.tigris.scarab.actions.base.ScarabTemplateAction;
+import org.tigris.scarab.services.security.ScarabSecurity;
 
 /**
  * This class is responsible for dealing with the Login
@@ -95,42 +96,49 @@
             List userModules = user.getModules();
             if (userModules != null)
             {
-                Module module = null;
+                Module uniqueModule = null;
                 if (userModules.size() == 2)
                 {
                     Module module1 = (Module)userModules.get(0);
                     Module module2 = (Module)userModules.get(1);
                     if (module1.isGlobalModule())
                     {
-                        module = module2;
+                        uniqueModule = module2;
                     }
                     else if (module2.isGlobalModule())
                     {
-                        module = module1;
+                        uniqueModule = module1;
                     }
                 }
-                if (module != null || userModules.size() == 1)
+                else if (userModules.size() == 1)
                 {
-                    ScarabRequestTool scarabR = getScarabRequestTool(context);
-                    if (module == null)
+                    uniqueModule = (Module)userModules.get(0);
+                    if (uniqueModule.isGlobalModule())
                     {
-                        module = (Module)userModules.get(0);
+                        uniqueModule = null;
                     }
-                    scarabR.setCurrentModule(module);
+                }
+
+                if (uniqueModule != null )
+                {
+                    getScarabRequestTool(context).setCurrentModule(uniqueModule);
                     data.getParameters().remove(ScarabConstants.CURRENT_MODULE);
                     data.getParameters().add(ScarabConstants.CURRENT_MODULE,
-                                             module.getQueryKey());
+                                             uniqueModule.getQueryKey());
+
                     if ("SelectModule.vm".equals(data.getParameters()
-                            .getString(ScarabConstants.NEXT_TEMPLATE))) 
+                            .getString(ScarabConstants.NEXT_TEMPLATE, "SelectModule.vm"))
+                        && user.hasPermission(ScarabSecurity.ISSUE__ENTER, uniqueModule )) 
                     {
                         data.getParameters().remove(ScarabConstants.NEXT_TEMPLATE);
+                        data.getParameters().add(ScarabConstants.NEXT_TEMPLATE,
+                                                 "home,EnterNew.vm");
                     }
                 }
             }
-
             String template = data.getParameters()
                 .getString(ScarabConstants.NEXT_TEMPLATE, 
-                           "home,EnterNew.vm");
+                           "SelectModule.vm");
             setTarget(data, template);
         }
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.