[Zope-CVS] CVS: Products/PluggableAuthService/plugins -
BasePlugin.py:1.5 ZODBUserManager.py:1.10
Zachery Bir
zbir at urbanape.com
Fri May 27 14:56:25 EDT 2005
Update of /cvs-repository/Products/PluggableAuthService/plugins
In directory cvs.zope.org:/tmp/cvs-serv14876/plugins
Modified Files:
BasePlugin.py ZODBUserManager.py
Log Message:
merging zbir_fixing_ids_branch to the head
=== Products/PluggableAuthService/plugins/BasePlugin.py 1.4 => 1.5 ===
--- Products/PluggableAuthService/plugins/BasePlugin.py:1.4 Sat Nov 20 12:53:44 2004
+++ Products/PluggableAuthService/plugins/BasePlugin.py Fri May 27 14:55:45 2005
@@ -17,6 +17,7 @@
$Id$
"""
from OFS.SimpleItem import SimpleItem
+from OFS.PropertyManager import PropertyManager
from Acquisition import aq_parent, aq_inner
from AccessControl import ClassSecurityInfo
from App.class_init import default__class_init__ as InitializeClass
@@ -26,7 +27,7 @@
from Products.PluggableAuthService.permissions import ManageUsers
-class BasePlugin(SimpleItem):
+class BasePlugin(SimpleItem, PropertyManager):
""" Base class for all PluggableAuthService Plugins
"""
@@ -35,22 +36,29 @@
__implements__ = SimpleItem.__implements__
- manage_options = ( ( { 'label': 'Activate',
+ manage_options = ( ( { 'label': 'Activate',
'action': 'manage_activateInterfacesForm', }
,
)
+ SimpleItem.manage_options
+ + PropertyManager.manage_options
)
+ prefix = ''
+
+ _properties = (
+ dict(id='prefix', type='string', mode='w',
+ label='Optional Prefix'),)
+
security.declareProtected( ManageUsers, 'manage_activateInterfacesForm' )
manage_activateInterfacesForm = PageTemplateFile(
- 'www/bpActivateInterfaces', globals(),
+ 'www/bpActivateInterfaces', globals(),
__name__='manage_activateInterfacesForm')
security.declareProtected( ManageUsers, 'listInterfaces' )
def listInterfaces( self ):
""" For ZMI update of interfaces. """
-
+
results = []
for iface in flattenInterfaces( self.__implements__ ):
@@ -73,7 +81,7 @@
active_interfaces = []
for iface_name in interfaces:
- active_interfaces.append( plugins._getInterfaceFromName(
+ active_interfaces.append( plugins._getInterfaceFromName(
iface_name ) )
pt = plugins._plugin_types
=== Products/PluggableAuthService/plugins/ZODBUserManager.py 1.9 => 1.10 ===
--- Products/PluggableAuthService/plugins/ZODBUserManager.py:1.9 Mon Nov 8 17:35:45 2004
+++ Products/PluggableAuthService/plugins/ZODBUserManager.py Fri May 27 14:55:45 2005
@@ -156,13 +156,29 @@
if cached_info is not None:
return tuple(cached_info)
- if exact_match and ( id or login ):
+ terms = id or login
- if id:
- user_ids.extend( id )
- elif login:
- user_ids.extend( [ self._login_to_userid.get( x )
- for x in login ] )
+ if exact_match:
+ if terms:
+
+ if id:
+ # if we're doing an exact match based on id, it
+ # absolutely will have been qualified (if we have a
+ # prefix), so we can ignore any that don't begin with
+ # our prefix
+ id = [ x for x in id if x.startswith(self.prefix) ]
+ user_ids.extend( [ x[len(self.prefix):] for x in id ] )
+ elif login:
+ user_ids.extend( [ self._login_to_userid.get( x )
+ for x in login ] )
+
+ # we're claiming an exact match search, if we still don't
+ # have anything, better bail.
+ if not user_ids:
+ return ()
+ else:
+ # insane - exact match with neither login nor id
+ return ()
if user_ids:
user_filter = None
@@ -177,7 +193,7 @@
e_url = '%s/manage_users' % self.getId()
qs = 'user_id=%s' % user_id
- info = { 'id' : user_id
+ info = { 'id' : self.prefix + user_id
, 'login' : self._userid_to_login[ user_id ]
, 'pluginid' : plugin_id
, 'editurl' : '%s?%s' % (e_url, qs)
More information about the Zope-CVS
mailing list