[Checkins] SVN: PluggableAuthService/branches/z3-events/ Add a handler for the IUserCredentialsUpdatedEvent which makes a PAS trigger its active credentials updating plugins

Wichert Akkerman wichert at wiggy.net
Sat Jun 9 14:20:25 EDT 2007


Log message for revision 76549:
  Add a handler for the IUserCredentialsUpdatedEvent which makes a PAS trigger its active credentials updating plugins

Changed:
  U   PluggableAuthService/branches/z3-events/PluggableAuthService.py
  U   PluggableAuthService/branches/z3-events/configure.zcml
  U   PluggableAuthService/branches/z3-events/events.py
  A   PluggableAuthService/branches/z3-events/events.zcml
  U   PluggableAuthService/branches/z3-events/tests/test_UserFolder.py

-=-
Modified: PluggableAuthService/branches/z3-events/PluggableAuthService.py
===================================================================
--- PluggableAuthService/branches/z3-events/PluggableAuthService.py	2007-06-09 16:19:34 UTC (rev 76548)
+++ PluggableAuthService/branches/z3-events/PluggableAuthService.py	2007-06-09 18:20:25 UTC (rev 76549)
@@ -78,7 +78,6 @@
 from interfaces.plugins import IRequestTypeSniffer
 
 from events import UserCreated
-from events import UserCredentialsUpdated
 
 from permissions import SearchPrincipals
 

Modified: PluggableAuthService/branches/z3-events/configure.zcml
===================================================================
--- PluggableAuthService/branches/z3-events/configure.zcml	2007-06-09 16:19:34 UTC (rev 76548)
+++ PluggableAuthService/branches/z3-events/configure.zcml	2007-06-09 18:20:25 UTC (rev 76549)
@@ -4,4 +4,6 @@
 
   <include file="exportimport.zcml" />
 
+  <include file="events.zcml" />
+
 </configure>

Modified: PluggableAuthService/branches/z3-events/events.py
===================================================================
--- PluggableAuthService/branches/z3-events/events.py	2007-06-09 16:19:34 UTC (rev 76548)
+++ PluggableAuthService/branches/z3-events/events.py	2007-06-09 18:20:25 UTC (rev 76549)
@@ -38,3 +38,12 @@
         self.acl_users=acl_users
         self.userid=userid
         self.properties=properties
+
+def userCredentialsUpdatedHandler(event):
+    event.acl_users.updateCredentials(
+            event.acl_users,
+            event.acl_users.REQUEST,
+            event.acl_users.REQUEST.RESPONSE,
+            event.userid,
+            event.password)
+

Added: PluggableAuthService/branches/z3-events/events.zcml
===================================================================
--- PluggableAuthService/branches/z3-events/events.zcml	                        (rev 0)
+++ PluggableAuthService/branches/z3-events/events.zcml	2007-06-09 18:20:25 UTC (rev 76549)
@@ -0,0 +1,10 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    >
+ 
+   <subscriber
+       for=".interfaces.events.IUserCredentialsUpdatedEvent"
+       handler=".events.userCredentialsUpdatedHandler"
+       />
+
+</configure>


Property changes on: PluggableAuthService/branches/z3-events/events.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: PluggableAuthService/branches/z3-events/tests/test_UserFolder.py
===================================================================
--- PluggableAuthService/branches/z3-events/tests/test_UserFolder.py	2007-06-09 16:19:34 UTC (rev 76548)
+++ PluggableAuthService/branches/z3-events/tests/test_UserFolder.py	2007-06-09 18:20:25 UTC (rev 76549)
@@ -23,10 +23,11 @@
 
 from Products.PluggableAuthService.PluggableAuthService import PluggableAuthService
 
-
+from zope import event
 from zope.component import adapter
 from zope.component import provideHandler
 from Products.PluggableAuthService.interfaces.events import IUserCreatedEvent
+from Products.PluggableAuthService.events import UserCredentialsUpdated
 
 @adapter(IUserCreatedEvent)
 def userCreatedHandler(event):
@@ -310,8 +311,20 @@
         self.assertEqual(event.login, 'event1')
         self.assertEqual(event.userid, 'event1')
 
+    def testCredentialsEvent(self):
+        def wrap(self, *args):
+            self._data.append(args)
+            return self._original(*args)
+        self.uf._data=[]
+        self.uf._original=self.uf.updateCredentials
+        self.uf.updateCredentials=wrap
+        event.notify(UserCredentialsUpdated(self.uf, "user1", "testpassword"))
+        self.assertEqual(len(self.uf._data), 1)
+        self.assertEqual(self.uf._data[0][2], "user1")
+        self.assertEqual(self.uf._data[0][3], "testpassword")
 
 
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(UserFolderTests))



More information about the Checkins mailing list