You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2010/09/25 00:54:01 UTC

svn commit: r1001100 - in /ofbiz/branches/release10.04: ./ framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java

Author: jleroux
Date: Fri Sep 24 22:54:01 2010
New Revision: 1001100

URL: http://svn.apache.org/viewvc?rev=1001100&view=rev
Log:
"Applied fix from trunk for revision: 1001099" 
------------------------------------------------------------------------
r1001099 | jleroux | 2010-09-25 00:45:12 +0200 (sam. 25 sept. 2010) | 5 lignes

A patch from Weizhan Guo "multi-tenant function do not work correctly if switch from one app to another by click the menu" (https://issues.apache.org/jira/browse/OFBIZ-3956) - OFBIZ-3956

I found a problem when I switched from one app to another. The multi-tenant did not work if the username and password were the same in the main database and tenants (or different tenants). For example, the password of admin is ofbiz in main database and in DEMO1 tenant, first log in to catalog as admin of tenant DEMO1, and then switch to the content app, the data of content app is from the main database instead of DEMO1.

I debugged this problem, and the code was missing to check the userlogin tenant in checkExternalLoginKey.
------------------------------------------------------------------------


Modified:
    ofbiz/branches/release10.04/   (props changed)
    ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java

Propchange: ofbiz/branches/release10.04/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Sep 24 22:54:01 2010
@@ -1,3 +1,3 @@
 /ofbiz/branches/addbirt:831210-885099,885686-886087
 /ofbiz/branches/multitenant20100310:921280-927264
-/ofbiz/trunk:939988,939990,939999,940025,940053,940234,940248,940309,940401,940410,940425,940779,940815,940849,940851,941007,941047,941109,941177,941199,941261,941440,941600,941999,942084,942406,942414,942671,942883-942884,943168,943271-943272,944614,944621,944623,944647,944669,944797,944895,945010,945018,945026,945118,945573,945578,945580,945582,945610,945619,945848,945852,945857,946061,946066,946073,946075,946080,946309,946313,946320,946322,946596,947004-947005,947392,947424,947679,947988,948017,948694,949174,949710,949844,950866,950870,950893,951005,951062,951098,951251,951367,951381,951672,952232,952249,952270,953294,953671,954135,954583,954733,954956,955568,956022,956206,956340,957160,958343,958514,958521,958752,958758,958769,958953,959456,960143,960491,960997,963610,964558,965470,965916,966525,966785,967098,978806,978893,978939,979104,980641-980642,980935,981051,981104,981123,981288,983920,983930,985163,985473,985718,985856,985902,987841,989166,990127,990339,990539,991
 485,993344,993387,995384,995686,996069,996078-996079,996563,997418-997420,997423-997425,997431,997440,997526,997990,998061,998412,998557,1000621,1000725,1000998
+/ofbiz/trunk:939988,939990,939999,940025,940053,940234,940248,940309,940401,940410,940425,940779,940815,940849,940851,941007,941047,941109,941177,941199,941261,941440,941600,941999,942084,942406,942414,942671,942883-942884,943168,943271-943272,944614,944621,944623,944647,944669,944797,944895,945010,945018,945026,945118,945573,945578,945580,945582,945610,945619,945848,945852,945857,946061,946066,946073,946075,946080,946309,946313,946320,946322,946596,947004-947005,947392,947424,947679,947988,948017,948694,949174,949710,949844,950866,950870,950893,951005,951062,951098,951251,951367,951381,951672,952232,952249,952270,953294,953671,954135,954583,954733,954956,955568,956022,956206,956340,957160,958343,958514,958521,958752,958758,958769,958953,959456,960143,960491,960997,963610,964558,965470,965916,966525,966785,967098,978806,978893,978939,979104,980641-980642,980935,981051,981104,981123,981288,983920,983930,985163,985473,985718,985856,985902,987841,989166,990127,990339,990539,991
 485,993344,993387,995384,995686,996069,996078-996079,996563,997418-997420,997423-997425,997431,997440,997526,997990,998061,998412,998557,1000621,1000725,1000998,1001099

Modified: ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java?rev=1001100&r1=1001099&r2=1001100&view=diff
==============================================================================
--- ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java (original)
+++ ofbiz/branches/release10.04/framework/webapp/src/org/ofbiz/webapp/control/LoginWorker.java Fri Sep 24 22:54:01 2010
@@ -927,6 +927,17 @@ public class LoginWorker {
 
         GenericValue userLogin = (GenericValue) LoginWorker.externalLoginKeys.get(externalKey);
         if (userLogin != null) {
+            //to check it's the right tenant 
+            //in case username and password are the same in different tenants
+            LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
+            Delegator delegator = (Delegator) request.getAttribute("delegator");
+            String oldDelegatorName = delegator.getDelegatorName();
+            ServletContext servletContext = session.getServletContext();
+            if (!oldDelegatorName.equals(userLogin.getDelegator().getDelegatorName())) {
+                delegator = DelegatorFactory.getDelegator(userLogin.getDelegator().getDelegatorName());
+                dispatcher = ContextFilter.makeWebappDispatcher(servletContext, delegator);
+                setWebContextObjects(request, response, delegator, dispatcher);
+            }
             // found userLogin, do the external login...
 
             // if the user is already logged in and the login is different, logout the other user