#!/usr/bin/env python

from dm.common.constants import dmRole
from dm.common.utility.loggingManager import LoggingManager

class AuthorizationPrincipalRetriever:

    def __init__(self, name=None):
        self.adminRoleName = dmRole.DM_ADMIN_ROLE
        self.name = name
        self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__)

    def getName(self):
        return self.name

    def setAdminRoleName(self, adminRoleName):
        self.adminRoleName = adminRoleName

    def getAuthorizationPrincipal(self, username):
        return None

    def checkAutorizationPrincipalRole(self, principal):
        if principal is None or self.adminRoleName is None:
            return
        userInfo = principal.getUserInfo()
        if userInfo is None:
            return
        for userSystemRoleName in userInfo.get('userSystemRoleNameList', []):
            if userSystemRoleName == self.adminRoleName:
                principal.setRole(dmRole.DM_ADMIN_ROLE)

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