用户登录成功之后,利用session保存数据,写配置数据

 

 

from django.conf import settings

def in_permission(user,request):
    permission_list = user.roles.filter(permissions__title__isnull=False).values('permissions__title','permissions__url','permissions__group','permissions__code__title').distinct()
    # print(permission_list)
# <QuerySet [{'permissions__title': '用户列表', 'permissions__url': '/users/', 'permissions__group': 1, 'permissions__code__title': 'list'},
#  {'permissions__title': '添加用户', 'permissions__url': '/users/add/', 'permissions__group': 1, 'permissions__code__title': 'add'},
# {'permissions__title': '删除用户', 'permissions__url': '/users/del/(\\d+)/', 'permissions__group': 1, 'permissions__code__title': 'del'}, {'permissions__title': '编辑用户', 'permissions__url': '/users/edit/(\\d+)/', 'permissions__group': 1, 'permissions__code__title': 'edit'}, {'permissions__title': '订单列表', 'permissions__url': '/orders/', 'permissions__group': 2, 'permissions__code__title': 'list'}, {'permissions__title': '添加订单', 'permissions__url': '/orders/add/', 'permissions__group': 2, 'permissions__code__title': 'add'}, {'permissions__title': '删除订单', 'permissions__url': '/orders/del/(\\d+)/', 'permissions__group': 2, 'permissions__code__title': 'del'}, {'permissions__title': '编辑订单', 'permissions__url': '/orders/edit/(\\d+)/', 'permissions__group': 2, 'permissions__code__title': 'edit'}]>

    permission_dic = {}
    for permission in permission_list:
        if permission_dic.get(permission['permissions__group']):
            permission_dic.get(permission['permissions__group'])['urls'].append(permission['permissions__url'])
            permission_dic.get(permission['permissions__group'])['codes'].append(permission['permissions__code__title'])
        else:
            permission_dic[permission['permissions__group']] = {"urls": [permission['permissions__url']],
                                                                   "codes": [permission['permissions__code__title']]}
    # print(permission_dic)
    #{1: {'urls': ['/users/', '/users/add/', '/users/del/(\\d+)/', '/users/edit/(\\d+)/'], 'codes': ['list', 'add', 'del', 'edit']}

    #向session中插入数据
    request.session[settings.PERMISSION_SESSION_KEY] = permission_dic
    return permission_dic

 

posted @ 2018-01-19 21:24  hello沃德  阅读(1146)  评论(0)    收藏  举报