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.