Hello,

As far as I can see auth.groups() return up-to-date user group(s)
membership... Maybe it would issue of auth.user_groups() which is only
updated at login???

http://web2py.readthedocs.io/en/latest/_modules/gluon/tools.html#Auth.groups

I think using it will help me reduce the number of hit to the db for
membership check, as in my app I use to use auth.has_membership() a lot
inside the same controller as I use to display different things to user
depending of their role in the system... I can't afford to use
auth.user_groups() as I have a feature (if we can call it that) that allow
some user to switch there actual role in the system by them self...

So, I can make a tradeoff between ultimate performance improvement using
auth.user_groups() not it ot the database at all, or using auth.groups()
once at the top a controller, caching it for the time a form is submit and
then release the cache...

The only other solution I see would be to make sure I use
auth.update_groups() when chaging user role as it seems to update
auth.user_groups() :
http://web2py.readthedocs.io/en/latest/_modules/gluon/tools.html#Auth.update_groups

Actually I should do that when I manage user (creationm, membership, etc.)
as it seems to be the proper way to handle auth_* table operation anyway
which I didn't do back in time because of my lack of knowledge I guess...

But  I am not sure that if someone change other user membership, for
instance the admin changing some user membership, that it will be reflected
into every user auth.groups()... If I do modify other user membership, does
auth.groups() will reflect the new user membership??

Richard

On Sat, Nov 26, 2016 at 6:25 PM, Marlysson Silva <[email protected]>
wrote:

> Try this:
>
> auth.has_membership(group_id, user_id, role)
>
> The doc are here:
> http://web2py.com/books/default/chapter/29/09/access-control#Authorization
>
>
>
> Em sexta-feira, 25 de novembro de 2016 13:30:22 UTC-3, Ramos escreveu:
>>
>> can i change auth.has_membership(role) to another user?
>> i need to iterate over all users and find if they belong to some group.
>>
>> I have a list [4,5,1] with the id of the group i need to check.
>>
>> Regards
>> António
>>
>> 2016-11-12 0:08 GMT+00:00 Anthony <[email protected]>:
>>
>>> On Friday, November 11, 2016 at 4:15:50 PM UTC-5, 黄祥 wrote:
>>>>
>>>> i assume the same thing goes to auth.user vs auth.is_logged_in(),
>>>> auth.user faster than auth.is_logged_in() because auth.user didn't hit the
>>>> database, isnt it?
>>>>
>>>
>>> No, login status is maintained in the session -- auth.is_logged_in()
>>> does not hit the database. Note, you can always look at the source code to
>>> see how something works -- here's the body of that function:
>>>
>>>         if self.user:
>>>             return True
>>>         return False
>>>
>>> As you can see, it's exactly equivalent to simply checking auth.user.
>>>
>>> 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/d/optout.
>>>
>>
>> --
> 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/d/optout.
>

-- 
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/d/optout.

Reply via email to