有很多地方都需要做这个判断,所以把这个权限判断单独写个方法来处理,代码如下:
def check_permission(perm, mysql, user): # 如果用户是超级管理员则有权限 if user.is_superuser: return True # 取出用户所属的所有组 _user_groups = user.groups.all() # 取出Mysql对应权限的所有组 if perm == 'read': _mysql_groups = mysql.read_groups.all() if perm == 'write': _mysql_groups = mysql.write_groups.all() # 用户组和DB权限组取交集,有则表示有权限,否则没有权限 group_list = list(set(_user_groups).intersection(set(_mysql_groups))) return False if len(group_list) == 0 else TrueDjango内置权限扩展案例 (5)
内容版权声明:除非注明,否则皆为本站原创文章。