mirror of https://github.com/jumpserver/jumpserver
26 lines
649 B
Python
26 lines
649 B
Python
# -*- coding: utf-8 -*-
|
|
#
|
|
from django.contrib.auth.mixins import UserPassesTestMixin
|
|
from rest_framework import permissions
|
|
from rest_framework.request import Request
|
|
|
|
|
|
__all__ = ["PermissionsMixin"]
|
|
|
|
|
|
class PermissionsMixin(UserPassesTestMixin):
|
|
permission_classes = [permissions.IsAuthenticated]
|
|
request: Request
|
|
|
|
def get_permissions(self):
|
|
return self.permission_classes
|
|
|
|
def test_func(self):
|
|
permission_classes = self.get_permissions()
|
|
for permission_class in permission_classes:
|
|
if not permission_class().has_permission(self.request, self):
|
|
return False
|
|
return True
|
|
|
|
|