[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ Dedicated logged_in view added.
Charlie Clark
charlie at begeistert.org
Sat Jun 26 14:38:36 EDT 2010
Log message for revision 113907:
Dedicated logged_in view added.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py 2010-06-26 18:36:23 UTC (rev 113906)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py 2010-06-26 18:38:36 UTC (rev 113907)
@@ -17,6 +17,7 @@
from urllib import quote, urlencode
+from DateTime import DateTime
from Products.Five import BrowserView
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from zExceptions import Forbidden
@@ -198,7 +199,45 @@
return self._setRedirect('portal_actions', 'user/logged_in',
'came_from')
+class LoggedIn(ViewBase):
+ """Post login methods"""
+
+ template = ViewPageTemplateFile("templates/logged_in.pt")
+
+ def set_skin_cookie(self):
+ stool = self._getTool('portal_skins')
+ if stool.updateSkinCookie():
+ skinname = stool.getSkinNameFromRequest(self.request)
+ stool.changeSkin(skinname, self.request)
+
+ def first_login(self, member):
+ """First time login, reset password"""
+ utool = self._getTool('portal_url')
+ now = DateTime()
+ member.setProperties(last_login_time='1999/01/01', login_time=now)
+ target = '%s/password_form' % utool()
+ return self.context.request.response.redirect(target)
+
+ def __call__(self):
+ self.set_skin_cookie()
+ mtool = self._getTool('portal_membership')
+ mtool.createMemberArea()
+ member = mtool.getAuthenticatedMember()
+ now = DateTime()
+ last_login = member.getProperty('login_time', None)
+ ptool = self._getTool('portal_properties')
+ is_first_login = (last_login == '2000/01/01' and
+ ptool.getProperty('validate_email'))
+ if is_first_login:
+ return self.first_login(member)
+ else:
+ member.setProperties(last_login_time=last_login, login_time=now)
+ came_from = self.request.get('came_from', None)
+ if came_from:
+ return self.request.response.redirect(came_from)
+ return self.template()
+
class MailPasswordFormView(EditFormBase):
"""Form view for IMailPasswordSchema.
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml 2010-06-26 18:36:23 UTC (rev 113906)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/configure.zcml 2010-06-26 18:38:36 UTC (rev 113907)
@@ -9,13 +9,21 @@
class=".authentication.LoginFormView"
permission="zope2.View"
/>
-
+
<browser:page
for="Products.CMFCore.interfaces.ISiteRoot"
layer="Products.CMFDefault.interfaces.ICMFDefaultSkin"
+ name="logged_in.html"
+ class=".authentication.LoggedIn"
+ permission="cmf.ModifyPortalContent"
+ />
+
+ <browser:page
+ for="Products.CMFCore.interfaces.ISiteRoot"
+ layer="Products.CMFDefault.interfaces.ICMFDefaultSkin"
name="logout.html"
class=".authentication.Logout"
- permission="zope2.View"
+ permission="cmf.ModifyPortalContent"
/>
<browser:page
More information about the checkins
mailing list