On Thursday, January 9, 2014 10:02:23 AM UTC-5, Giuseppe D'Amico wrote:
>
> I have to create the database, using the same model for every user it is
> not safe, so I use the session_id as name file for the model, I need to
> intercept when a user's session ends, to delete its model
>
It's not clear whether you are talking about models or databases. The model
is defined during the request and exists only during the request. You don't
have to change the name of the model or delete it at the end of the
request. You could do:
db = DAL([connection string that is specific to this user], ...)
db.define_table('mytable', ...)
When User A makes a request, db will be a connection to that user's
database, and db.mytable will therefore be a model of the "mytable" table
in User A's database. When User B makes a request, db will be a connection
to a different database, and db.mytable will be a model of the "mytable"
table in that database. These objects will be created in different threads
and exist only as long as the request lasts.
The question is, what happens with all of these databases? Do you really
want one for every session, or just one for every registered user. If the
latter, do you want the data to persist over time (i.e., beyond the
session)? If so, don't use the session ID to name the database.
Note, it can be tricky to figure out when a session ends. Technically, the
session cookie should last until the user closes their browser, but you
can't know when that happens. As an alternative, you could define some time
limit of inactivity and automatically expunge any data associated with a
session that has been inactive for too long.
Anthony
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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.