Yes, it works if I add writable=False, but I still have to set user_id to 
user.id and I don't know how to do that. 
In regards to components, I'm not sure how does it solve my problem. Could 
you please elaborate? I will look into this to improve my project but I 
have deadline on Monday and need to work on other stuff. 
Oh, and by the way, do you have any idea on how to select a user who does 
not have a record in auth_membership? This is my current code and it 
worked, but I want to change the query because I changed my model a little 
bit.
@auth.requires(auth.has_membership('librarian') or 
auth.has_membership('admin'))
def readers_pending():
grid = SQLFORM.grid(db.auth_user.registration_key=='blocked', 
deletable=False, editable=False, create=False, details=False, paginate=25, 
links=[dict(header='Link',body=lambda row: A(T('Show'), 
_href=URL('show_reader',args=row.id)))])
return locals()



W dniu wtorek, 3 czerwca 2014 17:30:11 UTC+2 użytkownik LaDarrius Stewart 
napisał:
>
> As far as " I could replace it with SQLFORM but then I need to know how 
> to hide user_id field and set it to user.id value"
> What do you mean are you just trying to hide the id value? like this -> 
> db.table.id.readable=False ?
>
> On Sunday, June 1, 2014 9:10:07 AM UTC-5, john smith wrote:
>>
>> I want to create a page that will display user data, with additional 
>> controls. I want librarian to be able to add user to 'readers' and remove 
>> group,  that part works. I also want admin be able to freely manage groups 
>> of a user, I want him to have a widget that will have a list of groups with 
>> submit button that will add user to selected group, and list of all groups 
>> user is a member of with ability to remove him from those. I have 3 
>> problems with that:
>> 1. I don't know how to create form that will display drop-down list with 
>> groups, like SQLFORM does. I could replace it with SQLFORM but then I need 
>> to know how to hide user_id field and set it to user.id value
>> 2. Even when click submit button of form2, action of form is executed.
>> 3. SQLFORM.grid won't let me access the view, i get flash with 'not 
>> authorized' message.
>> Here is my code:
>> @auth.requires(auth.has_membership('librarian') or 
>> auth.has_membership('admin'))
>> def show_reader():
>> if request.args(0) and db.auth_user(request.args(0, cast=int)):
>> user = db.auth_user(request.args(0, cast=int))
>> form2=''
>> if (auth.has_membership('admin', user.id) or 
>> auth.has_membership('librarian', user.id)) and not 
>> auth.has_membership('admin'):
>> session.flash = T('Insufficient privileges')
>> redirect(URL('readers'))
>> else:
>> if not auth.has_membership('reader', user.id):
>> form=FORM(INPUT(_type='submit', _value=T('Activate user')))
>> if form.process().accepted:
>> session.flash = T('User has been activated')
>> db.auth_membership.update_or_insert(user_id=user.id
>> ,group_id=auth.id_group('reader'))
>> redirect(URL('show_reader', args=user.id), client_side=True)
>> else:
>> form=FORM(INPUT(_type='submit', _value=T('Deactivate user')))
>> if form.process().accepted:
>> session.flash = T('User has been deactivated')
>> #user.registration_key='blocked'
>> #user.update_record(registration_key='blocked')
>> db(db.auth_membership.user_id==user.id).delete()
>> redirect(URL('show_reader', args=user.id), client_side=True)
>> if auth.has_membership('admin'):
>> #form2=''
>> form2=FORM('Your name:',
>> INPUT(_name='grupa', _type='text'),
>> INPUT(_type='submit'))
>> if form2.process().accepted:
>> redirect(URL('index'))
>> form3=SQLFORM.grid(db.auth_membership.user_id==user.id, deletable=False, 
>> editable=False, create=False, details=False)
>>
>> return locals()
>> else:
>> session.flash = T('No such user')
>> redirect(URL('readers'))
>>
>>
>>
>>
>>

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