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 |
Free forum by Nabble | Edit this page |