Yes, there is a master database that has the database designation for the 
institutions.

I guess one of the things I am unclear on is how granular the Web2Py 
framework is. Is there one db.py running for all sessions or is there a 
db.py running for each user session?

If a db.py runs for for each user session independent of the other users, 
then customizing the DAL setup in the db.py should work.

I wish there were more thorough documentation of the DAL.


On Tuesday, May 15, 2012 10:49:05 AM UTC-4, Anthony wrote:
>
> On Tuesday, May 15, 2012 10:13:42 AM UTC-4, Craig wrote:
>>
>> When a user logs on, there is a field in the profile that contains the 
>> designation of the database for the institution associated with that user.
>>
>
> Does that mean there's a master database that stores the user records so 
> you can access it to log in the user (i.e., before you know the user's 
> institution and therefore database)? In that case, maybe something like 
> this in the db.py model file:
>
> auth_db = DAL('[auth db URI]')
> from gluon.tools import Auth
> auth = Auth(auth_db, hmac_key=Auth.get_or_create_key())
>
> if not auth.user and not request.function == 'user':
>     redirect(URL('default', 'user'))
>
> auth.define_tables()
>
> db = DAL(auth.user.db_uri if auth.user else None)
>
> If the user isn't logged in, that will redirect to the /default/user URL 
> for login. Note, the URI for the call to DAL() that defines the "db" 
> connection is either auth.user.db_uri (when the user is logged in) or None. 
> The reason for the None is so you still have a db instance when the user is 
> going to the /default/user URL for login (otherwise, any subsequent 
> db.define_table calls would generate errors). I think None will work, but 
> if not, you could also use a dummy 'sqlite:memory' URI, or even a regular 
> SQLite URI.
>
> Anthony
>  
>

Reply via email to