Permission rethinking
* No detailed permissions due to django constraints on model-based permissions * instead: logic controlled permission by group membership * adds translations
This commit is contained in:
@@ -83,18 +83,10 @@ class Command(BaseCommand):
|
||||
self._write_warning("--- Groups ---")
|
||||
for group_data in GROUPS_DATA:
|
||||
name = group_data.get("name")
|
||||
perms_data = group_data.get("permissions")
|
||||
perms_objects = [
|
||||
Permission.objects.get_or_create(
|
||||
codename=perm[0],
|
||||
name=perm[1]
|
||||
)
|
||||
for perm in perms_data
|
||||
]
|
||||
group = Group.objects.get_or_create(
|
||||
Group.objects.get_or_create(
|
||||
name=name,
|
||||
)
|
||||
group.permissions.set(perms_objects)
|
||||
self._write_success(CREATED_TEMPLATE.format(name))
|
||||
|
||||
self._break_line()
|
||||
|
||||
|
||||
@@ -26,36 +26,14 @@ TEST_ORGANISATION_DATA = [
|
||||
},
|
||||
]
|
||||
|
||||
# Groups permissions are declared in konova/settings.py
|
||||
GROUPS_DATA = [
|
||||
{
|
||||
"name": _("Default"),
|
||||
"permissions": [
|
||||
ADD_INTERVENTION,
|
||||
EDIT_INTERVENTION,
|
||||
DELETE_INTERVENTION,
|
||||
ADD_COMPENSATION,
|
||||
EDIT_COMPENSATION,
|
||||
DELETE_COMPENSATION,
|
||||
ADD_ECOACCOUNT,
|
||||
EDIT_ECOACCOUNT,
|
||||
DELETE_ECOACCOUNT,
|
||||
CREATE_SHARE_LINK,
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": _("Registration office"),
|
||||
"permissions": [
|
||||
VALIDITY_CHECK,
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": _("Conservation office"),
|
||||
"permissions": [
|
||||
RECORD_DATA,
|
||||
ADD_EMA,
|
||||
EDIT_EMA,
|
||||
DELETE_EMA,
|
||||
]
|
||||
},
|
||||
]
|
||||
@@ -7,7 +7,7 @@ Created on: 17.11.20
|
||||
"""
|
||||
import uuid
|
||||
|
||||
from django.contrib.auth.models import User, Group
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.gis.db.models import MultiPolygonField
|
||||
from django.db import models
|
||||
|
||||
@@ -43,25 +43,6 @@ class BaseObject(BaseResource):
|
||||
abstract = True
|
||||
|
||||
|
||||
class KonovaPermission(models.Model):
|
||||
"""
|
||||
Custom permissions for konova
|
||||
|
||||
"""
|
||||
name = models.CharField(max_length=255, blank=False, null=False)
|
||||
description = models.TextField()
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
|
||||
class KonovaGroup(models.Model):
|
||||
"""
|
||||
Custom group model
|
||||
|
||||
"""
|
||||
name = models.CharField(max_length=255, null=False, blank=False)
|
||||
permissions = models.ManyToManyField(KonovaPermission)
|
||||
|
||||
|
||||
class Deadline(BaseResource):
|
||||
"""
|
||||
Defines a deadline, which can be used to define dates with a semantic meaning
|
||||
|
||||
Reference in New Issue
Block a user