[CMF-checkins] CVS: Products/CMFCore - RegistrationTool.py:1.25
Jens Vagelpohl
jens at dataflake.org
Fri Oct 29 10:29:02 EDT 2004
Update of /cvs-repository/Products/CMFCore
In directory cvs.zope.org:/tmp/cvs-serv27126/CMFCore
Modified Files:
RegistrationTool.py
Log Message:
- RegistrationTool: The regular expression that limits what people
can put in as a valid member ID is now configurable TTW in the
portal_registration tool (http://www.zope.org/Collectors/CMF/117)
=== Products/CMFCore/RegistrationTool.py 1.24 => 1.25 ===
--- Products/CMFCore/RegistrationTool.py:1.24 Wed Sep 29 13:13:20 2004
+++ Products/CMFCore/RegistrationTool.py Fri Oct 29 10:28:31 2004
@@ -15,6 +15,8 @@
$Id$
"""
+import re
+
from Globals import InitializeClass
from Globals import DTMLFile
from OFS.SimpleItem import SimpleItem
@@ -44,12 +46,15 @@
id = 'portal_registration'
meta_type = 'CMF Registration Tool'
+ member_id_pattern = ''
+ default_member_id_pattern = "^[A-Za-z][A-Za-z0-9_]*$"
+ _ALLOWED_MEMBER_ID_PATTERN = re.compile(default_member_id_pattern)
security = ClassSecurityInfo()
manage_options = (ActionProviderBase.manage_options +
({ 'label' : 'Overview', 'action' : 'manage_overview' }
- ,
+ ,{ 'label' : 'Configure', 'action' : 'manage_configuration' }
) + SimpleItem.manage_options)
#
@@ -58,6 +63,37 @@
security.declareProtected(ManagePortal, 'manage_overview')
manage_overview = DTMLFile( 'explainRegistrationTool', _dtmldir )
+ security.declareProtected(ManagePortal, 'manage_configuration')
+ manage_configuration = DTMLFile('configureRegistrationTool', _dtmldir)
+
+ security.declareProtected(ManagePortal, 'manage_editIDPattern')
+ def manage_editIDPattern(self, pattern, REQUEST=None):
+ """Edit the allowable member ID pattern TTW"""
+ pattern.strip()
+
+ if len(pattern) > 0:
+ self.member_id_pattern = pattern
+ self._ALLOWED_MEMBER_ID_PATTERN = re.compile(pattern)
+ else:
+ self.member_id_pattern = ''
+ self._ALLOWED_MEMBER_ID_PATTERN = re.compile(
+ self.default_member_id_pattern)
+
+ if REQUEST is not None:
+ msg = 'Member ID Pattern changed'
+ return self.manage_configuration(manage_tabs_message=msg)
+
+ security.declareProtected(ManagePortal, 'getIDPattern')
+ def getIDPattern(self):
+ """ Return the currently-used member ID pattern """
+ return self.member_id_pattern
+
+ security.declareProtected(ManagePortal, 'getDefaultIDPattern')
+ def getDefaultIDPattern(self):
+ """ Return the currently-used member ID pattern """
+ return self.default_member_id_pattern
+
+
#
# 'portal_registration' interface methods
#
@@ -125,15 +161,13 @@
self.afterAdd(member, id, password, properties)
return member
- import re
- __ALLOWED_MEMBER_ID_PATTERN = re.compile( "^[A-Za-z][A-Za-z0-9_]*$" )
security.declareProtected(AddPortalMember, 'isMemberIdAllowed')
def isMemberIdAllowed(self, id):
'''Returns 1 if the ID is not in use and is not reserved.
'''
if len(id) < 1 or id == 'Anonymous User':
return 0
- if not self.__ALLOWED_MEMBER_ID_PATTERN.match( id ):
+ if not self._ALLOWED_MEMBER_ID_PATTERN.match( id ):
return 0
membership = getToolByName(self, 'portal_membership')
if membership.getMemberById(id) is not None:
More information about the CMF-checkins
mailing list