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.

