[Erp5-report] r43291 luke - /erp5/trunk/products/Vifib/VifibMachineAuthenticationPlugin.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Feb 11 18:17:15 CET 2011


Author: luke
Date: Fri Feb 11 18:17:15 2011
New Revision: 43291

URL: http://svn.erp5.org?rev=43291&view=rev
Log:
 - implement IUserEnumerationPlugin

Modified:
    erp5/trunk/products/Vifib/VifibMachineAuthenticationPlugin.py

Modified: erp5/trunk/products/Vifib/VifibMachineAuthenticationPlugin.py
URL: http://svn.erp5.org/erp5/trunk/products/Vifib/VifibMachineAuthenticationPlugin.py?rev=43291&r1=43290&r2=43291&view=diff
==============================================================================
--- erp5/trunk/products/Vifib/VifibMachineAuthenticationPlugin.py [utf8] (original)
+++ erp5/trunk/products/Vifib/VifibMachineAuthenticationPlugin.py [utf8] Fri Feb 11 18:17:15 2011
@@ -293,6 +293,46 @@ class VifibMachineAuthenticationPlugin(B
                 user_name=principal.getId(),
                 path=self.getPhysicalPath())
 
+  #
+  #   IUserEnumerationPlugin implementation
+  #
+  security.declarePrivate( 'enumerateUsers' )
+  def enumerateUsers(self, id=None, login=None, exact_match=False,
+                   sort_by=None, max_results=None, **kw):
+    """ See IUserEnumerationPlugin.
+    """
+    if id is None:
+      id = login
+    if isinstance(id, str):
+      id = (id,)
+    if isinstance(id, list):
+      id = tuple(id)
+
+    user_info = []
+    plugin_id = self.getId()
+
+    id_list = []
+    for user_id in id:
+      if SUPER_USER == user_id:
+        info = { 'id' : SUPER_USER
+                , 'login' : SUPER_USER
+                , 'pluginid' : plugin_id
+                }
+        user_info.append(info)
+      else:
+        id_list.append(user_id)
+
+    if id_list:
+      for user in self.getUserByLogin(tuple(id_list)):
+          info = { 'id' : user.getReference()
+                 , 'login' : user.getReference()
+                 , 'pluginid' : plugin_id
+                 }
+
+          user_info.append(info)
+
+    return tuple(user_info)
+
 #List implementation of class
 classImplements(VifibMachineAuthenticationPlugin,
                 plugins.IAuthenticationPlugin)
@@ -302,6 +342,9 @@ classImplements( VifibMachineAuthenticat
 classImplements( VifibMachineAuthenticationPlugin,
                plugins.IGroupsPlugin
                )
+classImplements( VifibMachineAuthenticationPlugin,
+               plugins.IUserEnumerationPlugin
+               )
 
 
 InitializeClass(VifibMachineAuthenticationPlugin)



More information about the Erp5-report mailing list