def authenticateCredentials(self, credentials): # Should not authenticate when the user is not enabled. workflow_info = IMembraneUserWorkflow(self.context) if not workflow_info.in_right_state(): return if self.verifyCredentials(credentials): # return (self.getUserId(), self.getUserName()) user = IMembraneUserObject(self.context) return (user.getUserId(), user.getUserName())
def verifyCredentials(self, credentials): """Returns True is password is authenticated, False if not. """ user = IMembraneUserObject(self.context) if credentials.get('login') != user.getUserName(): # Should never happen, as the code should then never end # up here, but better safe than sorry. return False if not IProvidePasswordsSchema.providedBy(self.context): return False return pw_validate(self.context.password, credentials.get('password', ''))
def verifyCredentials(self, credentials): """Returns True is password is authenticated, False if not. """ user = IMembraneUserObject(self.context) if credentials.get("login") != user.getUserName(): # Should never happen, as the code should then never end # up here, but better safe than sorry. return False password_provider = IProvidePasswordsSchema(self.context) if not password_provider: return False return AuthEncoding.pw_validate(password_provider.password, credentials.get("password", ""))
def authenticateCredentials(self, credentials): # Should not authenticate when the user is not enabled. workflow_info = IMembraneUserWorkflow(self.context) loggable_credentials = { 'login': credentials['login'], 'remote_address': credentials['remote_address'] } if not workflow_info.in_right_state(): logger.info("User login failed for {login} from {remote_address} - workflow in wrong state".format(**loggable_credentials)) return if not self.verifyCredentials(credentials): logger.info("User login failed for {login} from {remote_address} - bad credentials".format(**loggable_credentials)) else: logger.info("User login succeed for {login} from {remote_address}".format(**loggable_credentials)) user = IMembraneUserObject(self.context) return (user.getUserId(), user.getUserName())
def test_username(self): with self.assertRaises(AttributeError): self.member.getUserName() adapted = IMembraneUserObject(self.member) self.assertEqual(adapted.getUserName(), 'joe_name')
def test_membrane_getUserName(self): with self.assertRaises(AttributeError): self.profile1.getUserName() adapted = IMembraneUserObject(self.profile1) self.assertEquals(adapted.getUserName(), self.email1)