Example #1
0
    def test_principal_searcher(self):
        import ptah

        principal = Principal("1", "user", "user")

        def search(term=""):
            if term == "user":
                yield principal

        ptah.register_principal_searcher("test-provider", search)
        self.assertEqual(list(ptah.search_principals("user")), [principal])
Example #2
0
    def test_principal_searcher(self):
        import ptah

        principal = Principal('1', 'user', 'user')
        def search(term=''):
            if term == 'user':
                yield principal

        ptah.register_principal_searcher('test-provider', search)
        self.init_ptah()

        self.assertEqual(list(ptah.search_principals('user')), [principal])
Example #3
0
    def authenticate(self, creds):
        login, password = creds['login'], creds['password']

        user = User.get(login)

        if user is not None:
            if ptah.passwordTool.check(user.password,password):
                return user

    def get_principal(self, uri):
        return User.getByURI(uri)

    def get_principal_bylogin(self, login):
        return User.get(login)

    _sql_search = ptah.QueryFreezer(
        lambda: Session.query(User) \
        .filter(User.email.contains(sqla.sql.bindparam('term')))
        .order_by(sqla.sql.asc('email')))

    def search(self, term):
        for user in self._sql_search.all(term = '%%%s%%'%term):
            yield user


provider = PloudProvider()
ptah.register_uri_resolver('user-ploud', provider.get_principal)
ptah.register_auth_provider('ploud', provider)
ptah.register_principal_searcher('ploud', provider.search)