добавил настройку прав пользователей
This commit is contained in:
@@ -2,7 +2,7 @@ from django.contrib.auth.models import AbstractBaseUser
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.core.validators import MinLengthValidator
|
||||
|
||||
import ospaz_site.settings as settings
|
||||
from .managers import CustomUserManager
|
||||
|
||||
|
||||
@@ -35,7 +35,34 @@ class User(AbstractBaseUser):
|
||||
default_permissions = ()
|
||||
|
||||
def has_perm(self, perm, obj=None):
|
||||
return self.is_superuser
|
||||
# управления правами пользователя
|
||||
secure_level = -1
|
||||
if self.is_authenticated:
|
||||
secure_level = 0
|
||||
if self.is_superuser:
|
||||
secure_level = 1
|
||||
|
||||
permissions = {
|
||||
'view_logs': 0,
|
||||
'change_users': 1,
|
||||
|
||||
'users.add_user': 1,
|
||||
'users.change_user': 1,
|
||||
'users.delete_user': 1,
|
||||
'users.view_user': 1
|
||||
}
|
||||
if perm in permissions:
|
||||
if permissions[perm] <= secure_level:
|
||||
return True
|
||||
elif settings.DEBUG:
|
||||
print(f"User.has_perm: unknown permission - '{perm}'")
|
||||
return False
|
||||
|
||||
def has_perms(self, perm_list, obj=None):
|
||||
for p in perm_list:
|
||||
if not self.has_perm(p, obj):
|
||||
return False
|
||||
return True
|
||||
|
||||
def has_module_perms(self, package_name):
|
||||
return self.is_superuser
|
||||
|
Reference in New Issue
Block a user