:)

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!
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>  --
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>  --
>
>
>
>

-- 



Reply via email to