def get_group_permissions(self, user_obj): if not hasattr(user_obj, '_group_perm_cache'): if not user_obj.groups: return set() permissions = [] for group in Group.get(user_obj.groups): if group: permissions.extend(group.permissions) user_obj._group_perm_cache = set([ '%s.%s' % (perm.content_type.app_label, perm.codename) for perm in permissions]) return user_obj._group_perm_cache
#添加新增的权限 for permId in addPermList: perm = Permission.objects.get(id=permId) User.objects.get(id=request.POST.get( 'id')).user_permissions.add(perm) #删除去掉的权限 for permId in delPermList: perm = Permission.objects.get(id=permId) User.objects.get(id=request.POST.get( 'id')).user_permissions.remove(perm) #如果用户组key不存在就单做清除用户组 if request.POST.get('group') is None: user.groups.clear() else: userGroupList = [] for group in user.groups.values(): userGroupList.append(group.get('id')) groupList = [ int(i) for i in request.POST.get('group').split(',') ] addGroupList = list( set(groupList).difference(set(userGroupList))) delGroupList = list( set(userGroupList).difference(set(groupList))) #添加新增的用户组 for groupId in addGroupList: group = Group.objects.get(id=groupId) user.groups.add(group) #删除去掉的用户组 for groupId in delGroupList: group = Group.objects.get(id=groupId)