168.权限-用户权限和权限相关操作

(1)set():一次性的为用户添加多个权限,权限可以放在一个列表中。

def user_permission(request):
    # 获取当前数据库中第一为user用户
    user = User.objects.get(pk=1)

    # 首先获取当前app下的User模型在django_content_type表中的信息
    content_type = ContentType.objects.get_for_model(User)
    # 根据content_type查看当前的app下的User表的权限
    permissions = Permission.objects.filter(content_type=content_type)
    for permission in permissions:
        print(permission)

    # 1. 为用户user添加多个权限(一次性添加一个权限列表)使用set()
    user.user_permissions.set(permissions)
    return HttpResponse('为User模型中的某个用户添加一定的权限!')

(2)add():为用户user添加权限,不能是列表,示例代码如下:

# 3. 为用户user添加某个权限,必须是一个个的权限
user.user_permissions.add(permissions[0], permissions[1])
add()函数中可以是列表,但是必须是打散开的,即在列表前面有一个“*”,示例代码如下:
user.user_permissions.add(*permissions)

(3)clear():将user上的所有权限一次性全部删除。示例代码如下:

user.user_permissions.clear()

(4)remove():将user表中用户的权限一个一个的删除。示例代码如下:

def user_permission(request):
    # 获取当前数据库中第一为user用户
    user = User.objects.get(pk=1)

    # 首先获取当前app下的User模型在django_content_type表中的信息
    content_type = ContentType.objects.get_for_model(User)
    # 根据content_type查看当前的app下的User表的权限
    permissions = Permission.objects.filter(content_type=content_type)
    for permission in permissions:
        print(permission)
    # 4. remove()删除user表上的用户权限,一个一个的删除
    user.user_permissions.remove(permissions[0])
    return HttpResponse('为User模型中的某个用户添加一定的权限!')
remove()函数中如果传入列表的的话,一定要在列表前面加上“*”,将列表打散。示例代码如下:
def user_permission(request):
    # 获取当前数据库中第一为user用户
    user = User.objects.get(pk=1)

    # 首先获取当前app下的User模型在django_content_type表中的信息
    content_type = ContentType.objects.get_for_model(User)
    # 根据content_type查看当前的app下的User表的权限
    permissions = Permission.objects.filter(content_type=content_type)
    for permission in permissions:
        print(permission)
    user.user_permissions.remove(*permissions)
    return HttpResponse('为User模型中的某个用户添加一定的权限!')

(5)has_perm()函数:判断用户是否有这个权限,只能传入一个权限,进行判断,权限的格式就是“appname.codename”。而has_perms()可以判断一个权限的列表。示例代码如下:

def user_permission(request):
    # 5. has_perm()是否有这个权限
    if user.has_perm('login_logout.add_user'):
        print("您拥有该权限!")
    else:
        print("您没有该权限!")
    return HttpResponse('为User模型中的某个用户添加一定的权限!')

(6)get_all_permissions()获得所有的权限,示例代码如下:

def user_permission(request):
    # 获取当前数据库中第一为user用户
    user = User.objects.get(pk=1)
    # 6. get_all_permissions()获得所有的权限
    permissions = user.get_all_permissions()
    for permission in permissions:
        print(permission)
    return HttpResponse('为User模型中的某个用户添加一定的权限!')
posted @ 2020-02-23 21:48  一笑而过~一笑奈何  阅读(190)  评论(0编辑  收藏  举报