Wait... Doesn't web2py already have this built in?

Maybe I don't understand the question...

Using a plain vanilla `form = auth()` You get a register form...

http://thadeusb.com/admin/user/register

--
Thadeus





On Mon, May 24, 2010 at 10:57 PM, Thadeus Burgess <thade...@thadeusb.com> wrote:
> Stick the following code in a controller
>
>
> import copy
>
> user_table = [copy.copy(f) for f in db.auth_user]
> form = SQLFORM.factory(
>    *user_table,
>    Field('password2', 'password', length=512,
> requires=db.auth_user.password.requires),
> )
>
> if form.accepts(request.vars, session):
>    if form.vars.password == form.vars.password2:
>        user = db.auth_user.insert(
>            first_name = form.vars.first_name,
>            last_name = form.vars.last_name,
>            username = form.vars.username,
>            password = form.vars.password,
>            registration_key = web2py_uuid(),
>        )
>
>        if auth.settings.create_user_groups:
>            group_id = auth.create_group("user_%s" user.id)
>
>        # etc etc for sending mail
>
>        # to auto log them in
>        session.auth = Storage(user = user, last_visit = request.now,
>                expiration = auth.settings.expiration)
>    else:
>        form.errors.password = form.errors.password2 = "Passwords do not match"
>
> Of course, you lose some of the finer things such as sending emails,
> which could be added by looking at tools.py
>
> --
> Thadeus
>
>
>
>
>
> On Mon, May 24, 2010 at 7:39 PM, weheh <richard_gor...@verizon.net> wrote:
>> @mdp: It isn't obvious to me how to mix the auth code with
>> SQLFORM.factory and accept. The problem is that auth is such a black
>> box that I don't know where to break into the flow of it.
>>
>> I believe this issue has come up enough times and been such a
>> consistent stumbling block that I suggest you or someone else spell it
>> out concretely (show the model, controller, and view) and put it
>> either in the doc or in Alterego or somewhere findable. I can't
>> imagine it's more than 20 or 30 lines of code total and would save
>> loads of time and effort in the long run.
>>
>

Reply via email to