Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 505 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dbPrincipalRetriever.py 1.05 KiB
#!/usr/bin/env python

from dm.common.constants import dmRole
from dm.common.objects.authorizationPrincipal import AuthorizationPrincipal
from dm.common.db.api.userDbApi import UserDbApi
from authorizationPrincipalRetriever import AuthorizationPrincipalRetriever 

class DbPrincipalRetriever(AuthorizationPrincipalRetriever):

    def __init__(self):
        AuthorizationPrincipalRetriever.__init__(self, self.__class__.__name__)
        self.dbApi = UserDbApi()

    def getAuthorizationPrincipal(self, username):
        principal = None
        try:
            user = self.dbApi.getUserWithPasswordByUsername(username)
            principal = AuthorizationPrincipal(name=username, token=user.get('password'))
            principal.setRole(dmRole.DM_USER_ROLE)
            principal.setUserInfo(user)
            self.checkAutorizationPrincipalRole(principal)
        except Exception, ex:
            self.logger.debug(ex)
        return principal

#######################################################################
# Testing.
if __name__ == '__main__':
    pass