order templates, automatically add permissions
This commit is contained in:
parent
5a32b6fb9a
commit
c12e1f8732
@ -599,7 +599,7 @@ class Consumer(LoggingMixin):
|
|||||||
input_doc: ConsumableDocument,
|
input_doc: ConsumableDocument,
|
||||||
) -> DocumentMetadataOverrides:
|
) -> DocumentMetadataOverrides:
|
||||||
overrides = DocumentMetadataOverrides()
|
overrides = DocumentMetadataOverrides()
|
||||||
for template in ConsumptionTemplate.objects.all():
|
for template in ConsumptionTemplate.objects.all().order_by("order"):
|
||||||
template_overrides = DocumentMetadataOverrides()
|
template_overrides = DocumentMetadataOverrides()
|
||||||
|
|
||||||
if int(input_doc.source) in list(template.sources) and (
|
if int(input_doc.source) in list(template.sources) and (
|
||||||
|
@ -3,10 +3,44 @@
|
|||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import multiselectfield.db.fields
|
import multiselectfield.db.fields
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.contrib.auth.management import create_permissions
|
||||||
|
from django.contrib.auth.models import Group
|
||||||
|
from django.contrib.auth.models import Permission
|
||||||
|
from django.contrib.auth.models import User
|
||||||
from django.db import migrations
|
from django.db import migrations
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.db.models import Q
|
||||||
|
|
||||||
# TODO: migrate permissions, upgrade mail rules?
|
|
||||||
|
def add_consumptiontemplate_permissions(apps, schema_editor):
|
||||||
|
# create permissions without waiting for post_migrate signal
|
||||||
|
for app_config in apps.get_app_configs():
|
||||||
|
app_config.models_module = True
|
||||||
|
create_permissions(app_config, apps=apps, verbosity=0)
|
||||||
|
app_config.models_module = None
|
||||||
|
|
||||||
|
add_permission = Permission.objects.get(codename="add_document")
|
||||||
|
consumptiontemplate_permissions = Permission.objects.filter(
|
||||||
|
codename__contains="consumptiontemplate",
|
||||||
|
)
|
||||||
|
|
||||||
|
for user in User.objects.filter(Q(user_permissions=add_permission)).distinct():
|
||||||
|
user.user_permissions.add(*consumptiontemplate_permissions)
|
||||||
|
|
||||||
|
for group in Group.objects.filter(Q(permissions=add_permission)).distinct():
|
||||||
|
group.permissions.add(*consumptiontemplate_permissions)
|
||||||
|
|
||||||
|
|
||||||
|
def remove_consumptiontemplate_permissions(apps, schema_editor):
|
||||||
|
consumptiontemplate_permissions = Permission.objects.filter(
|
||||||
|
codename__contains="consumptiontemplate",
|
||||||
|
)
|
||||||
|
|
||||||
|
for user in User.objects.all():
|
||||||
|
user.user_permissions.remove(*consumptiontemplate_permissions)
|
||||||
|
|
||||||
|
for group in Group.objects.all():
|
||||||
|
group.permissions.remove(*consumptiontemplate_permissions)
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
@ -167,4 +201,8 @@ class Migration(migrations.Migration):
|
|||||||
"verbose_name_plural": "consumption templates",
|
"verbose_name_plural": "consumption templates",
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
migrations.RunPython(
|
||||||
|
add_consumptiontemplate_permissions,
|
||||||
|
remove_consumptiontemplate_permissions,
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user