On Apr 30, 2010, at 8:34 AM, Thadeus Burgess wrote:

> I don't think that this is the case. Because since you have both
> normal users and facebook users =? And you do not have to be logged in
> to retrieve password.

Maybe so. But you're retrieving a password associated with a user, and that 
user can have an assigned role with permissions. You'll still have to *check* 
the permissions.

> 
> --
> Thadeus
> 
> 
> 
> 
> 
> On Fri, Apr 30, 2010 at 9:38 AM, Jonathan Lundell <jlund...@pobox.com> wrote:
>> On Apr 30, 2010, at 7:22 AM, Thadeus Burgess wrote:
>> 
>>> You need to store the preferences in the database, what seems to be
>>> happening is you are setting the disabled actions, but its being lost
>>> on the next request.
>>> 
>>> So along with your auth_user table you probably need to add a couple
>>> boolean columns to disable these options, this way it is persistant.
>> 
>> Unless I'm missing something, this seems like a natural application for 
>> web2py's roles and permissions. If so, Rohan can look at chapter 8 of the 
>> book: http://web2py.com/book/default/section/8/0. I use it to divide my 
>> users into 3 roles, and it's very straightforward to implement.
>> 
>>> 
>>> But for normal users they can still retrieve_password and
>>> change_password, so you need to check this before you call the auth
>>> form.
>>> 
>>> def user():
>>>    # get the user token here, use request.args to determine URL (ie:
>>> user/reset_password)
>>>    # then pull the user from the database using the email/username
>>> 
>>>    if my_user.retrieve_password_disabled:
>>>       auth.settings.actions_disabled.append('retrieve_password')
>>> 
>>>    return dict(form=auth())
>>> 
>>> --
>>> Thadeus
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Fri, Apr 30, 2010 at 1:15 AM, Rohan <yourbuddyro...@gmail.com> wrote:
>>>> Hi All,
>>>> 
>>>> I am creating a session for a user logged in from facebook and wants
>>>> to disable certain functions like retrieve_password, change_password
>>>> etc. here is the code for this
>>>> 
>>>>        if not auth.is_logged_in():
>>>>            user_obj = Storage(user_table._filter_fields(user,
>>>> id=True))
>>>>            #print 'user is not logged in'
>>>>            session.auth = Storage(user=user_obj,
>>>> last_visit=request.now, expiration=auth.settings.expiration)
>>>>            auth.user = user_obj
>>>>            auth.settings.actions_disabled.append('retrieve_password')
>>>>            auth.settings.actions_disabled.append('change_password')
>>>> 
>>>> but user is still able to access these functions. As an alternate, I
>>>> was thinking of creating a group for facebook users and disable these
>>>> functions at group level. Is this feasible? Is there any simpler way
>>>> without need to create user groups?
>>>> 
>>>> Thanks
>>>> 
>> 
>> 
>> 


Reply via email to