It is not clear to me what you are storing in session.
This:
id=int(request.args(0))
account=db(db.nodeAccount.nodeID==id).select(db.nodeAccount.ALL).first()
...
session[id]
looks like a security vulnerability to me. Every user can access any record
of the table and add to the current session.
Web2py does not sets a limitation but the session can get arbitrarily
bigger and therefore slower.
On Wednesday, 2 January 2013 03:10:45 UTC-6, Annet wrote:
>
> My application is completely node ID driven. I have the following router
> function:
>
> def router():
> if not len(request.args):
> redirect(URL('addressbook','index'))
> else:
> id=int(request.args(0))
>
> account=db(db.nodeAccount.nodeID==id).select(db.nodeAccount.ALL).first()
> if account:
> if account.statusID!=ACTIVE: # in that case the account is
> blocked or under maintenance
> redirect(URL('card',args=id))
> elif account.accountID in(FREEACCOUNTID,BASICACCOUNTID):
> redirect(URL('vcard',args=id))
> elif account.accountID==BASICHUBACCOUNTID:
> redirect(URL('vhub',args=id))
> elif account.accountID
> in(ADVANCEDACCOUNTID,PREMIUMACCOUNTID,ADVANCEDHUBACCOUNTID):
> if not session[id]:
> session[id]=Storage(id=id)
> session[id].accountID=account.accountID
> session[id].pluralID=account.pluralID
> if account.accountID
> in(ADVANCEDACCOUNTID,PREMIUMACCOUNTID):
> redirect(URL('site','index',args=id))
> elif account.accountID==ADVANCEDHUBACCOUNTID:
> redirect(URL('hub','index',args=id))
> else:
> redirect(URL('card',args=id))
> return None
>
> In the site.py and hub.py index function I store node's address and
> telecom addresses, menu, hero unit and some other settings in the node's
> session[id]
>
> At the moment this works fine. However, with the number of users
> increasing I wonder whether this is the way to go, is there a limit to what
> you can store in session?. Most settings change when the user manages a
> node's data in the CMS.
>
> Address and telecom have their own views: address.html and telecom.html,
> which are included in other views. Maybe I'd better save address.html and
> telecom.html in a folder static/node_ID/ when the user changed the data in
> the CMS.
>
> This is also the case for menu and hero unit.
>
> I look forward to your advice.
>
> Annet
>
--