目前我正在使用 Django 创建一个 webbackend,其中管理是使用 KeyCloak 完成的。
使用 KeyCloak,我可以为用户分配特定角色(例如客户、订阅客户)。
客户和订阅客户具有不同的权限。(例如在电影行业,只有订阅客户可以观看所有电影而普通客户不能观看)每部电影都有一个端点。
如何在缺少权限的情况下使此端点无法访问?
目前我正在使用 Django 创建一个 webbackend,其中管理是使用 KeyCloak 完成的。
使用 KeyCloak,我可以为用户分配特定角色(例如客户、订阅客户)。
客户和订阅客户具有不同的权限。(例如在电影行业,只有订阅客户可以观看所有电影而普通客户不能观看)每部电影都有一个端点。
如何在缺少权限的情况下使此端点无法访问?
您必须在用户模型中创建一个 user_type 字段
ACCESS_CHOICES = (
('subscriber', 'subscriber'),
('non-subscribe', 'non-subscribe')
)
user_type = models.CharField(choices=ACCESS_CHOICES, max_length=15)
创建一个自定义权限类并将其放入您的视图中
class MoviesAccessPermssion(permissions.BasePermission):
def has_permission(self, request, view):
return True or False #on base of request.user.user_type