:) auth.user_groups[auth.user.id]
Richard On Tue, Oct 30, 2012 at 1:59 PM, villas <[email protected]> wrote: > For logged in user just do: > > >>> auth.user_groups > {1: 'admin', 2: 'wiki_editor'} > > > > On Tuesday, October 30, 2012 5:37:24 PM UTC, Francisco Barretto wrote: >> >> Got it! >> >> def myGroups(): >> groups = [] >> rows = db((db.auth_user.email == >> auth.user.email)&(db.auth_**membership.user_id >> == auth.user_id)&(db.auth_group.**id <http://db.auth_group.id> >> ==db.auth_membership.group_**id)).select(db.auth_group.ALL) >> for row in rows: >> groups.append(row.role) >> return (groups) >> >> Works just fine: returns a list of user's group names. >> >> Thanks Richard! >> >> On Tuesday, October 30, 2012 3:19:29 PM UTC-2, Francisco Barretto wrote: >>> >>> Ok, It does return a table(). I've tried to parse it so I could access >>> the information I need (group names) without success. >>> >>> Richard, Since the name of the db column which stores the group name >>> (role) is >>> auth_group.role<https://10.1.2.116/DNSAdmin/appadmin/select/db?orderby=auth_group.role>, >>> could the solution be something like this? >>> >>> groups = [] >>> for row in auth.groups(): >>> groups.append(row.role) >>> >>> return (groups) >>> >>> I'm getting >>> <type 'exceptions.AttributeError'> 'TR' object has no attribute >>> 'auth_group' >>> >>> I've also tried "row.auth_group.role" but I won't work either. Obviously >>> it is returning some kind of HTML table formated data. Will I have to parse >>> it manually? >>> >>> On Tuesday, October 30, 2012 2:59:07 PM UTC-2, Niphlod wrote: >>>> >>>> groups returns a TABLE(), not a list of records. >>>> >>>> On Tuesday, October 30, 2012 5:57:03 PM UTC+1, Richard wrote: >>>>> >>>>> I didn't test, but you may try this : >>>>> >>>>> for row in auth.groups(): >>>>> print row >>>>> >>>>> row should contain the different column of auth_group table and you >>>>> can usually get those column like this row.name (column name in this >>>>> example). >>>>> >>>>> You could also try as_list() : >>>>> >>>>> http://web2py.com/books/**default/chapter/29/06#as_dict-**and-as_list<http://web2py.com/books/default/chapter/29/06#as_dict-and-as_list> >>>>> >>>>> If it doesn't work, use the query I wrote above : >>>>> >>>>> rows = query >>>>> for row in rows: >>>>> do stuff >>>>> >>>>> Richard >>>>> >>>>> On Tue, Oct 30, 2012 at 12:35 PM, Francisco Barretto < >>>>> [email protected]> wrote: >>>>> >>>>>> Ok Richard, I've got it. You are right. Without parameters it works >>>>>> but I cant manage to get a userfull list out of it. Accesint the webpage >>>>>> doesn't help either, since I need to compare memberships inside the >>>>>> controller actions. >>>>>> >>>>>> I would need a list containing all user groups but I got instead, >>>>>> some kind of raw table which I don't know how to iterate with. >>>>>> >>>>>> Can you help me go further? >>>>>> >>>>>> Thanks, mate! >>>>>> >>>>>> >>>>>> On Tuesday, October 30, 2012 2:07:40 PM UTC-2, Richard wrote: >>>>>> >>>>>>> Ok! >>>>>>> >>>>>>> I read the book. >>>>>>> >>>>>>> You should not pass the user id. >>>>>>> >>>>>>> auth.groups() and not auth.groups(auth.user.id) >>>>>>> >>>>>>> Also you can go to this URL : >>>>>>> >>>>>>> http://127.0.0.1/yourappname/**d**efault/user/groups<http://127.0.0.1/yourappname/default/user/groups>and >>>>>>> you will get the list of group your current logged user is in. >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> On Tue, Oct 30, 2012 at 11:51 AM, Richard Vézina < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> I don't know if web2py has a given command or how to use it, but >>>>>>>> this query should give you what you the information you are searching : >>>>>>>> >>>>>>>> db((db.auth_user.email == 'USER_EMAIL')&(db.auth_**members**hip.user_id >>>>>>>> == db.auth_user.id)&(db.auth_**grou**p.id <http://db.auth_group.id> >>>>>>>> ==db.auth_membership.**group**_id)).select(db.auth_**group.**ALL) >>>>>>>> >>>>>>>> Richard >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Oct 30, 2012 at 11:15 AM, Francisco Barretto < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Folks! >>>>>>>>> >>>>>>>>> How do I list all groups that a user belong? I've found out that >>>>>>>>> Auth has this function: >>>>>>>>> >>>>>>>>> groups(self) >>>>>>>>> displays the groups and their roles for the logged in user >>>>>>>>> >>>>>>>>> I dont manage to get it working. I've tried something like this: >>>>>>>>> >>>>>>>>> def myGroups(): >>>>>>>>> return dict(auth.groups(auth.user_id)****) >>>>>>>>> >>>>>>>>> and get this error: >>>>>>>>> <type 'exceptions.TypeError'> groups() takes exactly 1 argument (2 >>>>>>>>> given) >>>>>>>>> >>>>>>>>> any idea on how to do this properly? Thanks! >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> -- >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> -- > > > > --

