you then need a common place to store the company code associated for every 
user (e.g. "a_variable"): instead of using map.get(request.args(0)) you'd 
then need to do map.get("a_variable").

The key point of the implementation at that point (if you don't want to 
have the auth_* tables in a common database) is that you need to use a 
custom form to prepare the "username, password, company_code" inputs 
because you don't know what db to use before the user fills the forms and 
sends the results hitting the "submit" button.

On Sunday, April 28, 2013 8:15:43 PM UTC+2, LJ wrote:
>
> Thanks for the reply Massimo.
>
> But this will require different URLs for each company right?
> I want a common URL where they get a login screen and they enter Username, 
> Password, Company code. The rest of the interactions will depend on the 
> company code.
>
>
>
> On Saturday, April 27, 2013 10:23:52 AM UTC+5:30, Massimo Di Pierro wrote:
>>
>> Imagine a table like:
>>
>> map = {'company1': 'sqlite://company1.sqlite','company2: 
>> 'sqlite://company2.sqlite','company3': 'sqlite://company3.sqlite'}
>>
>> then you can do:
>>
>> dburi = map.get(request.args(0))
>> if not dburi: raise HTTP(404)
>> db = DAL(dburi)
>>
>> Now when you do
>>
>> http://127.0.0.1:8000/app/default/index/company1
>>
>> The company1 specifies the database.
>>
>> If you have another app you can do the same but replace
>>
>> db = DAL(dburi)
>>
>> with
>>
>> db = DAL(dburi, 
>> folder=os.path.join(request.folder,'..','otherapp','databases'))
>>
>> and it will share the database with the otherapp.
>>
>>
>> On Friday, 26 April 2013 23:43:47 UTC-5, LJ wrote:
>>>
>>> Hi
>>>
>>> I am new to web2py as well as python, but i found it very interesting 
>>> developing some simple applications. However, i am unsure about how to 
>>> configure the application for using multiple database depending on user 
>>> login. There are two possible scenarios i am considering:
>>>
>>> Scenario 1 (Single instance, multiple databases)
>>> 1. User visits www.foobar.com
>>> 2. Login page asks for username, password, company code.
>>> 3. Controllers/Views/Models are identical for users from all companies. 
>>> Databases are different.
>>> 4. Depending on company code, the application connects to the 
>>> appropriate DB and authenticates user.
>>> 5. User from different company accesses different database.
>>>
>>>
>>> Scenario 2: Multiple instances, multiple databases
>>> 1. User visits www.foobar.com
>>> 2. Login page asks for username, password, company code.
>>> 3. Controllers/Views/Models are slightly different for each company as 
>>> are the databases.
>>> 4. Depending on company code, the appropriate functions/views are called 
>>> and the appropriate database is affected.
>>> 5. User from different company accesses different database and has a 
>>> different set of controllers and views.
>>>
>>> How should the application be structured to enable each of these 
>>> scenarios. I was unable to find the solution in other threads.
>>>
>>> Thanks in advance
>>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to