Thanks, naming forms works as expected.
Regarding grid, when I try to access show_readers function as admin, I get
redirected to readers function with flash message saying: 'not authorized'.
Librarian can access it, but not if I move the grid code outside of if
statement, then librarian gets same message. I don't need to use grid, I
just want there to be a list of groups user is currently a member of, and a
button next to all these groups that would remove the user from group. I
will probably try to do it using for loop and html table.
I'm not sure how am I supposed to resolve my dropdown issue with SQLFORM
factory, but I'll try to read some more on that. General idea I had for
that would be a form with one field only and a submit button. The field
would be a dropdown list with a list of all groups in auth_groups. Then
admin could add users to group by just selecting group and clicking submit.
Basically I want to have same thing that you get in appadmin for adding new
record to auth_membership, just without the User_id field (it would by
default take value from request.args). This dropdown list combined with
list of groups with some kind of 'remove from group' buttons, should
provide an easy way for admins to manage user groups. I hope that
explanation was clear, English is not my first language. Thank you for your
help.
W dniu wtorek, 3 czerwca 2014 16:21:21 UTC+2 użytkownik LaDarrius Stewart
napisał:
>
> 1) Use SQLFORM factory.
> 2) Name your forms example below. (changes in red do this to them all with
> different names of course)
> 3) Not sure whats going on can you explain a bit more?
> form2=FORM('Your name:',
> INPUT(_name='grupa', _type='text'),
> INPUT(_type='submit'))
> if form2.process(formname='SomeName').accepted:
> redirect(URL('index'))
> 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.