If the user is logged in, then auth.user_groups contains a dictionary of 
the user's roles.  You can also use auth.has_membership('role name') to 
check membership.

You can search auth.user_groups for a role, e.g.,
if any (role in ['customer_service', 'admin'] for role in auth.user_groups.
itervalues()): 

On Monday, June 2, 2014 8:53:55 AM UTC-4, Yebach wrote:
>
> Hello
>
> I am trying to get user's role looking into membership table etc.
>
> Following all the codes on majority of forums my code does not work. 
>
> this is my controller 
>
> from gluon.tools import Auth
>
> database = request.cookies['mycookie'].value
> db = DAL('postgres://postgres:postg...@195.xxx.yyy.zzz/' + database, 
> migrate=False)
> auth = Auth(db)
>
> def index():
>     if not auth.is_logged_in():
>
>         login_adress= auth.settings.login_url = URL('user','user', 
> args='login') 
>         redirect (login_adress)    
>     
>     print auth.user_id ###Works
>
>     print auth.user_group ### result is <bound method Auth.user_group of 
> <gluon.tools.Auth object at 0x000000000A307F28>>
>     print auth.has_membership(auth.id_group('Member'),auth.user.id)
>
> <type 'exceptions.AttributeError'> 'NoneType' object has no attribute 
> 'role'
>
> Also, If I try with some DAL select sentances none of them work. error is 
> usually
>
> if code is 
>  rows = db(db.auth_user).select()
>
> or 
>
> rows = db((db.auth_user.email == 
> auth.user.email)&(db.auth_membership.user_id == auth.user_id)&(
> db.auth_group.id==db.auth_membership.group_id)).select(db.auth_group.ALL)
>
> error is 
>
> <type 'exceptions.KeyError'> 'auth_user'
>
> what am I doing wrong here. It is a f#"$"# simple ask. Get user role so I 
> can get a user a specific view based on that role (btw any suggestions on 
> that would be nice).
>
> thank you
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to