2012-09-05 132 views
0

我有我的web2py应用程序的工作登录表单。web2py post登录重定向

我不知道我改变了什么,但登录后执行应用程序返回我的无效功能默认/用户信息。

我正在使用auth.settings.controller =“user”重定向到正确的控制器。现在它不起作用。

应用程序应该回到它来自的页面。只有登录用户

解决此问题后,我正在安装自己的SVN,但在那之前。 我真的不知道是什么

我ALO使用auth.navbar()做

我考虑到身份验证是{{=在全局 '权威性'()和 auth.navbar(分隔符= ( ' '' |', ''))}}

我的用户CONTROLER user.py是

DEF用户(): 形式= AUTH() 返回字典(形式=形式)

和我的user.py模型是

if(request.controller =='user'or request.controller =='school'or request.controller =='timetable'and request.cookies.has_key('mycookie' ): response.generic_patterns = ['*'] if request.is_local else [] database = request.cookies ['mycookie']。value baza = DAL('postgres:// postgres:postgres @ localhost /' +数据库迁移= TRUE) 从gluon.tools导入邮件 AUTH =验证(巴扎)

auth.settings.logout_next=URL('school','index?school=' + database) 


auth.settings.registration_requires_approval = True 
#auth.settings.reset_password_requires_verification = True 
#auth.settings.login_after_registration = False 
auth.settings.register_onaccept=lambda form: mail.send(to=['[email protected]'], 
     subject='web2py registration', 
     # If reply_to is omitted, then mail.settings.sender is used 
     reply_to='[email protected]le.com', 
     message='Kreiral se je nov uporabnik, ki ga je potrebno potrditi') 

auth.settings.expiration = 3600 
auth.define_tables() 

mail=Mail() 
auth.settings.mailer=mail 
mail.settings.server='smtp.gmail.com:587' 
mail.settings.sender='[email protected]' 
mail.settings.login='[email protected]:xxx' 

#auth.settings.registration_requires_verification = True 

auth.messages.registration_pending = u'Registracija je v postopku odobritve. Ko bo vaš račun potrjen boste prejeli e-mail.' 
auth.messages.invalid_login = 'Nepravilno geslo' 
auth.messages.invalid_user = 'Uporabnik ne obstaja' 



auth.settings.controller="user" 



## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. 
## register with janrain.com, write your domain:api_key in private/janrain.key 
from gluon.contrib.login_methods.rpx_account import use_janrain 
use_janrain(auth,filename='private/janrain.key') 
+0

你可以显示你的Auth设置代码以及你的用户控制器代码?当您进入登录页面时,查询字符串中的_next参数是什么? – Anthony

+0

如果我点击取回密码,我会收到一封错误地址的电子邮件。它试图让我在portalov_iurnik/default/user/reset_password/1346840165-f35f1af2-f1fb-45c1-afff-fb822c2cf35d它应该将我重定向到portalov_iurnik/user/user/reset_password/1346840165-f35f1af2-f1fb-45c1-afff-fb822c2cf35d 。它始终处于默认状态。 如果我输入网页的URL,我应该把它重定向到/ portal_iurnik/default/user/etc – Yebach

回答

1

在HTML注释有时不仅评论:)我删除一包含auth.register(),即使我虽然它已被评论,现在它的作品

+1

如果你有类似于<! - {{= auth.register()}} - >'的语句,Python代码仍然会由模板引擎运行。 HTML注释用于评论HTML。要评论Python代码,您必须使用Python注释:'{{#= auth.register()}}'。这允许模板生成包含注释的HTML。 – Anthony

1

更改auth.settings.controller不工作(这本书需要更新)。相反,你必须做的:

auth = Auth(baza, controller='user') 

此外,而不是:

URL('school','index?school=' + database) 

你应该做的:

URL('school','index', vars=dict(schools=database)) 
+0

好吧,有一点帮助(我没有得到无效的函数错误),但为什么我点击登录后按钮重定向到/ user/user/profile?取而代之的是我之前的观点? – Yebach

+0

听起来像你在某处调用'auth.register()'。如果您在用户已经登录后调用该函数,它将重定向到'auth.settings。logged_url',默认为配置文件URL。在你的代码中,首先在调用'auth.register()'之前检查用户是否已经登录。 – Anthony