Exemple #1
0
 def testUserDeleteUser(self):
     usermanager = IMembraneUserManagement(self.member)
     self.failUnless('testuser' in self.portal.objectIds())
     usermanager.doDeleteUser('testuser')
     self.failIf('testuser' in self.portal.objectIds())
     # login as the new user should fail now
     logout()
     self.assertRaises(ValueError, login, self.portal, 'testuser')
 def testIMembraneUserManagement(self):
     """Test the functionality of the IMembraneUserManagement interface."""
     from Products.membrane.interfaces import IMembraneUserManagement
     from Products.membrane.at.interfaces import IUserAuthentication
     
     user = IMembraneUserManagement(self.person);
     auth = IUserAuthentication(self.person);
      
     #test setting password directly, verify that verifyCredentials works as expected
     fsd_tool = getToolByName(self.portal, TOOLNAME)
     self.person.setPassword('secret1')
     if fsd_tool.getUseInternalPassword():
         self.failUnless(auth.verifyCredentials({'login':'******','password':'******'}), "failed to verify correct login and password, setting password directly")
     else:
         self.failIf(auth.verifyCredentials({'login':'******','password':'******'}), "internal password not used, method should return none, setting password directly.  Value returned: %s" % returnval)
     
     # now set password using the userChanger method and verify that it worked
     user.doChangeUser('abc123', 'secret2')
     fsd_tool = getToolByName(self.portal, TOOLNAME)
     if fsd_tool.getUseInternalPassword():
         self.failUnless(auth.verifyCredentials({'login':'******','password':'******'}), "failed to verify correct login and password, testing doChangeUser()")
     else:
         self.failIf(auth.verifyCredentials({'login':'******','password':'******'}), "internal password not used, method should return none, testing doChangeUser().  Value returned: %s" % returnval)
     
     # set password and some other value with doChangeUser, using keywords
     self.failIf(self.person.getEmail(), "email already set, and it shouldn't be: %s" % self.person.getEmail())
     user.doChangeUser('abc123','secret', email='*****@*****.**')
     self.failUnlessEqual(self.person.getEmail(), '*****@*****.**', msg="failed to update email via doChangeUser(): %s" % self.person.getEmail())
     
     # now try to delete the user
     self.failUnless(hasattr(self.directory,'abc123'), "directory does not have person")
     user.doDeleteUser('abc123')
     self.failIf(hasattr(self.directory,'abc123'), "directory still contains person")
     
     # we should not be able to log in as this person anymore
     self.logout()
     try:
         self.login('abc123')
     except AttributeError:
         pass
     else:
         self.fail("still able to login: %s" % self.portal.portal_membership.getAuthenticatedMember().id)
 def testIMembraneUserManagement(self):
     """Test the functionality of the IMembraneUserManagement interface."""
     from Products.membrane.interfaces import IMembraneUserManagement
     from Products.membrane.at.interfaces import IUserAuthentication
     
     user = IMembraneUserManagement(self.person);
     auth = IUserAuthentication(self.person);
      
     #test setting password directly, verify that verifyCredentials works as expected
     fsd_tool = getToolByName(self.portal, TOOLNAME)
     self.person.setPassword('secret1')
     if fsd_tool.getUseInternalPassword():
         self.failUnless(auth.verifyCredentials({'login':'******','password':'******'}), "failed to verify correct login and password, setting password directly")
     else:
         self.failIf(auth.verifyCredentials({'login':'******','password':'******'}), "internal password not used, method should return none, setting password directly.  Value returned: %s" % returnval)
     
     # now set password using the userChanger method and verify that it worked
     user.doChangeUser('abc123', 'secret2')
     fsd_tool = getToolByName(self.portal, TOOLNAME)
     if fsd_tool.getUseInternalPassword():
         self.failUnless(auth.verifyCredentials({'login':'******','password':'******'}), "failed to verify correct login and password, testing doChangeUser()")
     else:
         self.failIf(auth.verifyCredentials({'login':'******','password':'******'}), "internal password not used, method should return none, testing doChangeUser().  Value returned: %s" % returnval)
     
     # set password and some other value with doChangeUser, using keywords
     self.failIf(self.person.getEmail(), "email already set, and it shouldn't be: %s" % self.person.getEmail())
     user.doChangeUser('abc123','secret', email='*****@*****.**')
     self.failUnlessEqual(self.person.getEmail(), '*****@*****.**', msg="failed to update email via doChangeUser(): %s" % self.person.getEmail())
     
     # now try to delete the user
     self.failUnless(hasattr(self.directory,'abc123'), "directory does not have person")
     user.doDeleteUser('abc123')
     self.failIf(hasattr(self.directory,'abc123'), "directory still contains person")
     
     # we should not be able to log in as this person anymore
     self.logout()
     try:
         self.login('abc123')
     except AttributeError:
         pass
     else:
         self.fail("still able to login: %s" % self.portal.portal_membership.getAuthenticatedMember().id)