Ejemplo n.º 1
0
    def initRole(self):
        #get UID
        self._uId = sqlOp.getUserId(self._userName)[0][0]
        #get User Info
        self._userInfo = sqlOp.getUserInfo(self._uId)[0]
        #get user assigned roles
        roleList = sqlOp.getRoleList(self._uId)
        for i in roleList:
            for j in i:
                self._roleList.append(j)
        #get user permissions    
        for roleId in self._roleList:
            permission = sqlOp.getPermissionList(roleId)
            perList = list()
            for i in permission:
                for j in i:
                    perList.append(j)
            self._PAssignment[roleId] = perList
        #get permission detail
        perDetailList = list()
        for roleId in self._PAssignment:
            for perId in self._PAssignment[roleId]:
                perDetailResults = sqlOp.getPermissionDetail(perId)
                perDetailList.append(perDetailResults)
        #sor perDetailList-->self._perDetail, it's a dict()
        for perDetail in perDetailList:
            #先保存一下ReID
            if not perDetail[0][1] in self._resList:
                self._resList.append(perDetail[0][1])
            #再重新构建一下self._permissionList
            if self._permissionList.has_key(perDetail[0][1]):
                self._permissionList[perDetail[0][1]].append(perDetail[0][0])
            else:
                self._permissionList[perDetail[0][1]] = [perDetail[0][0]]
        # test code
        print "-->UserName:{0}, UID:{1}".format(self._userName, self._uId)
        print "-->roleList:{0}".format(self._roleList)
        print "-->PAssignment:{0}".format(self._PAssignment)
        print "-->permissionList:{0}".format(self._permissionList)
        print "-->resList:{0}".format(self._resList)

        #获取冲突表
        getCrResult = sqlOp.getCRList()
        if len(getCrResult) > 0:
            for cr in getCrResult:
                self._crDict[cr[0]] = ConstraintToList(cr[1]).result()
        print "-->self._crDict:{0}".format(self._crDict)
        #获取冲突权限表
        getCpResult = sqlOp.getCPList()
        if len(getCpResult) > 0:
            for cp in getCpResult:
                self._cpDict[cp[0]] = ConstraintToList(cp[1]).result()
        print "-->self._cpDict:{0}".format(self._cpDict)
Ejemplo n.º 2
0
 def changeUA(self, name, roleId):
     userId = sqlOp.getUserId(name)[0][0]
     roleResults = sqlOp.getRoleList(userId)
     #获取用户已经分配的惧色
     userRole = list()
     for i in roleResults:
         for j in i:
             userRole.append(j)
     #找出两者的差异
     for i in roleId:
         if not i in userRole:
             if sqlOp.addNewUA(userId, i) == False:
                 return False
     for i in userRole:
         if not i in roleId:
             if sqlOp.dropUA(userId, i) == False:
                 return False
     return True