You can still use SQLFORM, and append additional fields. The code is here:
http://web2py.com/books/default/chapter/29/07#Adding-extra-form-elements-to-SQLFORM
You need to add code to ensure that the user is being added to the
particular groups under form.process().
form=SQLFORM(db.table)
//additional elements to add to the form goes here
if form.process().accepted:
// add them to the relevant group here
response.flash = 'record inserted'
On Sunday, December 2, 2012 9:35:38 PM UTC+8, Daniele wrote:
>
> Alright I've created the two groups with the web2py appadmin interface.
> Now I suppose the rest of the logic goes in the controller.
> I have a SQLFORM right now but it probably makes more sense to just use a
> FORM, right? And then when that is processed, I can run the command
>
> auth.add_membership(group_id, user_id)
>
> Am I on the money or is this incorrect?
> Thanks guys :D
>
>
> On Sunday, December 2, 2012 1:27:26 PM UTC, Daniele wrote:
>>
>> OK I think that's probably the easiest solution for now.
>> How can I do this? Do I need to add
>>
>>
>> auth.add_group('role', 'description')
>>
>> in my db.py file and then have a form that when a user submits, runs
>>
>> auth.add_membership(group_id, user_id)
>>
>> in the controller? Or do both of these go inside the controller? I guess the
>> groups only need to be created once, which is why I am assuming the first
>> line goes in db.py
>>
>> Thanks
>>
>>
>> On Saturday, December 1, 2012 6:11:24 PM UTC, villas wrote:
>>>
>>> Put everyone in the auth_user table and use groups. That could save you
>>> heaps of time down the line. Otherwise I can imagine you'll start
>>> reinventing what's already available to you in web2py. Use the framework
>>> and the force will be with you!
>>>
>>> If you need to keep lots of different info depending on what group they
>>> are in, then you can always think about splitting that into different
>>> tables, but only as a last resort.
>>>
>>> Best wishes for your app, D
>>>
>>> On Saturday, 1 December 2012 13:13:13 UTC, Daniele wrote:
>>>>
>>>> Hmmm that's one option, but here's the problem.
>>>> Basically, I want users to sign up very easily. So I'm just using
>>>> web2py's default auth for that.
>>>> Then, I'd like them to pick if they are tutors/students or both. There
>>>> is additional information they'd have to input in some forms for both
>>>> roles.
>>>> While I could just create two groups, the way I have it now as tutors
>>>> are a table and students are another table in the database.
>>>>
>>>> I guess I'm a bit lost as to how the correct way to let the signed up
>>>> users be either students/tutors or both is. Should it all be part of the
>>>> signed up users table? Or should I have three tables? Should I just make
>>>> groups?
>>>>
>>>> Any advice is much appreciated,
>>>> Thanks!
>>>>
>>>>
>>>> On Friday, November 23, 2012 7:24:42 PM UTC, Joe Barnhart wrote:
>>>>>
>>>>> Why not create a group for each class -- tutor and student -- and
>>>>> assign group membership for each student? A student can participate in
>>>>> more than one group. It's easy to test for group membership -- just use
>>>>> the decorator:
>>>>>
>>>>> @auth.requires_membership('tutor')
>>>>>
>>>>> -- Joe B.
>>>>>
>>>>>
>>>>> On Tuesday, November 20, 2012 5:57:57 PM UTC-8, Daniele wrote:
>>>>>>
>>>>>> I am trying to build a model where each logged user can decide if
>>>>>> he/she is a tutor or student or both.
>>>>>> So the tutor table has to 'reference auth.settings.table_user_name'
>>>>>> and student also has to have the same reference.
>>>>>>
>>>>>> The tutor/student/logged user have to be related by their id key I
>>>>>> imagine.
>>>>>>
>>>>>> Is this the proper way to go about this? Moreover, how can I check
>>>>>> that the relationship is working?
>>>>>>
>>>>>
--