[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - fixed 'login_time' handling
Yvo Schubbe
y.2011 at wcm-solutions.de
Thu Feb 24 12:00:01 EST 2011
Log message for revision 120565:
- fixed 'login_time' handling
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py
UU Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/logged_in.py
U Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/members_manage_form.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2011-02-24 16:47:21 UTC (rev 120564)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2011-02-24 17:00:01 UTC (rev 120565)
@@ -4,6 +4,10 @@
2.3.0-alpha (unreleased)
------------------------
+- Skins and browser views: Fixed 'login_time' handling.
+ Should be working with string and DateTime values because the MemberDataTool
+ settings might be inconsistent.
+
- browser views: Added SettingsEditFormBase.
This can be used for edit forms for global settings.
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py 2011-02-24 16:47:21 UTC (rev 120564)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/authentication.py 2011-02-24 17:00:01 UTC (rev 120565)
@@ -223,10 +223,9 @@
member = mtool.getAuthenticatedMember()
now = DateTime()
last_login = member.getProperty('login_time', None)
+ never_logged_in = str(last_login).startswith('2000/01/01')
ptool = self._getTool('portal_properties')
- is_first_login = (last_login == '2000/01/01' and
- ptool.getProperty('validate_email'))
- if is_first_login:
+ if never_logged_in and ptool.getProperty('validate_email'):
return self.first_login(member)
else:
member.setProperties(last_login_time=last_login, login_time=now)
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py 2011-02-24 16:47:21 UTC (rev 120564)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py 2011-02-24 17:00:01 UTC (rev 120565)
@@ -60,8 +60,9 @@
"""Utility class wrapping a member for display purposes"""
def __init__(self, member, mtool):
- login_time = member.getProperty('login_time')
- self.login_time = '2000/01/01' and '---' or login_time.Date()
+ last_login = member.getProperty('login_time')
+ never_logged_in = str(last_login).startswith('2000/01/01')
+ self.login_time = never_logged_in and '---' or last_login.Date()
self.name = member.getId()
self.home = mtool.getHomeUrl(self.name, verifyPermission=0)
self.email = member.getProperty('email')
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py 2011-02-24 16:47:21 UTC (rev 120564)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py 2011-02-24 17:00:01 UTC (rev 120565)
@@ -19,6 +19,7 @@
from zope.component import getSiteManager
from zope.publisher.browser import TestRequest
from zope.publisher.interfaces.browser import IBrowserPublisher
+from DateTime.DateTime import DateTime
from Products.CMFCore.tests.base.dummy import DummySite
from Products.CMFCore.tests.base.dummy import DummyTool
@@ -32,6 +33,8 @@
class DummyUser(DummyUser):
def getProperty(self, attr):
+ if attr == 'login_time':
+ return DateTime('2000/01/01 00:00:00')
return None
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/logged_in.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/logged_in.py 2011-02-24 16:47:21 UTC (rev 120564)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/logged_in.py 2011-02-24 17:00:01 UTC (rev 120565)
@@ -30,10 +30,8 @@
member = mtool.getAuthenticatedMember()
now = context.ZopeTime()
last_login = member.getProperty('login_time', None)
- member.setProperties(last_login_time=last_login, login_time=now)
- is_first_login = (last_login == '2000/01/01' and
- ptool.getProperty('validate_email'))
- if is_first_login:
+ never_logged_in = str(last_login).startswith('2000/01/01')
+ if never_logged_in and ptool.getProperty('validate_email'):
member.setProperties(last_login_time='1999/01/01', login_time=now)
target = '%s/password_form' % portal_url
context.REQUEST.RESPONSE.redirect(target)
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/logged_in.py
___________________________________________________________________
Deleted: svn:keywords
- Id
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/members_manage_form.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/members_manage_form.py 2011-02-24 16:47:21 UTC (rev 120564)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/members_manage_form.py 2011-02-24 17:00:01 UTC (rev 120565)
@@ -30,8 +30,9 @@
items = []
for member in batch_obj:
member_id = member.getId()
- login_time = member.getProperty('login_time')
- member_login = login_time == '2000/01/01' and '---' or login_time.Date()
+ last_login = member.getProperty('login_time')
+ never_logged_in = str(last_login).startswith('2000/01/01')
+ member_login = never_logged_in and '---' or last_login.Date()
member_home = mtool.getHomeUrl(member_id, verifyPermission=0)
items.append( {'checkbox': 'cb_%s' % member_id,
'email': member.getProperty('email'),
More information about the checkins
mailing list