Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 839 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dbPrincipalRetriever.py 1.13 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.setUserSystemRoleDict(user.get('userSystemRoleDict', {}))
            principal.setUserExperimentRoleDict(user.get('userExperimentRoleDict', {}))
            self.setAuthorizationPrincipalSessionRole(principal)
        except Exception, ex:
            self.logger.debug(ex)
        return principal

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