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)
def getOwnRoleList(self, uId): allRoleTuple = sqlOp.getAllRoleName() allRoleDict = dict() #整理以下数据 for role in allRoleTuple: allRoleDict[role[0]] = role[1] #获取已经拥有的角色 ownRoleTuple = sqlOp.getRoleList(uId) ownRoleDict = dict() for i in ownRoleTuple: ownRoleDict[i[0]] = allRoleDict[i[0]] return ownRoleDict
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