Well, ExtendedLoginForm is not working, but I am trying to fix it and send a
patch.

By now, I am using another solution, If someone else needs the same.

to have both auth modes [built-in and RPX] just like in:
http://natalanimal.com.br/init/default/user/login  and web2pyslices.com

At models after the definition of auth:
<code>
if request.vars._next:
    url = "http://yourdomain.com.br/app/default/user/login?_next=%s"; %
request.vars._next
else:
    url = "http://yourdomain.com.br/app/default/user/login";

rpxform = RPXAccount(request,
    api_key='<your api key>',
    domain='<your domain without name >',
    url = url,
    language="pt-BR",embed=True

    )
</code>

In the controller:

<code>
def user():
    rpx = ''
    registerurl=URL('default','user',args='register')
    if request.vars.token:
        auth.settings.login_form = rpxform
        return dict(form=auth())
    if 'login' in request.args:
        rpx = rpxform.login_form()
        html = DIV(H1('Login'),
               rpx,BR(),BR(),
               H1(A('Click to register',_href=registerurl),BR(),' or sign-up
with your password:'),
               auth(),
              )
    else:
        html = auth()

    return dict(form=html)


</code>


That is working very well now! thanks for Nathan Freeze who helps me a lot!

If I got success fixing ExtendLoginForm I will send a patch for this.


2010/11/12 Bruno Rocha <[email protected]>

> Hi, I am trying to have both default login form and RPX working.
>
> Looking for login_methods on gluon.contrib I found ExtendedLoginForm
>
>  """
>  ExtendedLoginForm is used to extend normal login form in web2py with one
> more login method.
>  So user can choose the built-in login or extended login methods.
>  """
>
>
> then in my model:
>
> ----------------------------------------------------------------------------------------------------------------------------
>
> from gluon.contrib.login_methods.rpx_account import RPXAccount
> from gluon.contrib.login_methods.extended_login_form import
> ExtendedLoginForm
>
> rpxform = RPXAccount(request,
>     api_key='thekey',
>     domain='mydomain',
>     url = "http://mydomain.com.br/%s/%s"; % (request.application,geturl()))
>
> extended_login_form = ExtendedLoginForm(request, auth, rpxform,
> signals=['token'])
>
> auth.settings.login_form = extended_login_form
>
>
> ----------------------------------------------------------------------------------------------------------------------------
>
> I got this error:
>
> ----------------------------------------------------------------------------------------------------------------------------
> Versionweb2py Version 1.87.3 (2010-10-13 19:44:46)
>
> raceback (most recent call last):
>
>   File "/home/rochacbruno/webapps/app2/web2py/gluon/restricted.py", line 188, 
> in restricted
>
>     exec ccode in environment
>
>   File 
> "/home/rochacbruno/webapps/app2/web2py/applications/init/models/model.py" 
> <https://natalanimal.com.br/admin/default/edit/init/models/1_store.py>, line 
> 61, in <module>
>
>     extended_login_form = ExtendedLoginForm(request, auth, rpxform, 
> signals=['token'])
> TypeError: __init__() got multiple values for keyword argument 'signals'
>
>
>
>


-- 

http://rochacbruno.com.br

Reply via email to