[Erp5-report] r35741 fabien - in /experimental/bt5/erp5_credential: DocumentTemplateItem/ W...
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri May 28 17:33:04 CEST 2010
Author: fabien
Date: Fri May 28 17:32:57 2010
New Revision: 35741
URL: http://svn.erp5.org?rev=35741&view=rev
Log:
improve the way login avaibility is checked
Modified:
experimental/bt5/erp5_credential/DocumentTemplateItem/CredentialRequest.py
experimental/bt5/erp5_credential/WorkflowTemplateItem/portal_workflow/credential_validation_workflow/scripts/CredentialRequest_checkLoginAvailability.xml
experimental/bt5/erp5_credential/bt/revision
Modified: experimental/bt5/erp5_credential/DocumentTemplateItem/CredentialRequest.py
URL: http://svn.erp5.org/experimental/bt5/erp5_credential/DocumentTemplateItem/CredentialRequest.py?rev=35741&r1=35740&r2=35741&view=diff
==============================================================================
--- experimental/bt5/erp5_credential/DocumentTemplateItem/CredentialRequest.py [utf8] (original)
+++ experimental/bt5/erp5_credential/DocumentTemplateItem/CredentialRequest.py [utf8] Fri May 28 17:32:57 2010
@@ -30,6 +30,13 @@
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5.Document.Ticket import Ticket
from Products.ERP5.mixin.encrypted_password import EncryptedPasswordMixin
+from Products.CMFCore.utils import getToolByName
+try:
+ from Products import PluggableAuthService
+ from Products.ERP5Security.ERP5UserManager import ERP5UserManager
+except ImportError:
+ PluggableAuthService = None
+
class CredentialRequest(Ticket, EncryptedPasswordMixin):
"""
@@ -53,3 +60,23 @@
# every body can change a password of a credential request as annonymous
# should be able to do it
pass
+
+ def isLoginAvailable(self, login):
+ """
+ Check for login avaibility, return False if the login is already used,
+ True instead
+ """
+ if login:
+ acl_users = getToolByName(self, 'acl_users')
+ if PluggableAuthService is not None and isinstance(acl_users,
+ PluggableAuthService.PluggableAuthService.PluggableAuthService):
+ plugin_list = acl_users.plugins.listPlugins(
+ PluggableAuthService.interfaces.plugins.IUserEnumerationPlugin)
+ for plugin_name, plugin_value in plugin_list:
+ if isinstance(plugin_value, ERP5UserManager):
+ user_list = acl_users.searchUsers(id=login,
+ exact_match=True)
+ if len(user_list) > 0:
+ return False
+ break
+ return True
Modified: experimental/bt5/erp5_credential/WorkflowTemplateItem/portal_workflow/credential_validation_workflow/scripts/CredentialRequest_checkLoginAvailability.xml
URL: http://svn.erp5.org/experimental/bt5/erp5_credential/WorkflowTemplateItem/portal_workflow/credential_validation_workflow/scripts/CredentialRequest_checkLoginAvailability.xml?rev=35741&r1=35740&r2=35741&view=diff
==============================================================================
--- experimental/bt5/erp5_credential/WorkflowTemplateItem/portal_workflow/credential_validation_workflow/scripts/CredentialRequest_checkLoginAvailability.xml [utf8] (original)
+++ experimental/bt5/erp5_credential/WorkflowTemplateItem/portal_workflow/credential_validation_workflow/scripts/CredentialRequest_checkLoginAvailability.xml [utf8] Fri May 28 17:32:57 2010
@@ -59,8 +59,8 @@
subscription_request_object = state_change[\'object\']\n
\n
user_id = subscription_request_object.getUserId()\n
-person_module = portal.getDefaultModule(\'Person\')\n
-if len(person_module.searchFolder(reference=user_id)):\n
+\n
+if not subscription_request_object.isLoginAvailable(user_id):\n
raise ValidationFailed, translateString(\'The login "${user_id}"\'\\\n
\'is not available, please change it.\', mapping={\'user_id\':user_id})\n
</string> </value>
@@ -109,8 +109,6 @@
<string>_getitem_</string>
<string>subscription_request_object</string>
<string>user_id</string>
- <string>person_module</string>
- <string>len</string>
</tuple>
</value>
</item>
Modified: experimental/bt5/erp5_credential/bt/revision
URL: http://svn.erp5.org/experimental/bt5/erp5_credential/bt/revision?rev=35741&r1=35740&r2=35741&view=diff
==============================================================================
--- experimental/bt5/erp5_credential/bt/revision [utf8] (original)
+++ experimental/bt5/erp5_credential/bt/revision [utf8] Fri May 28 17:32:57 2010
@@ -1,1 +1,1 @@
-18
+19
More information about the Erp5-report
mailing list