From 59c546a0350ef5e422a462f2e7810d926453c727 Mon Sep 17 00:00:00 2001 From: Patrick Mayr Date: Tue, 1 Aug 2023 23:17:06 +0000 Subject: [PATCH] change superuser to user with all perms --- fet2020/blackboard/apps.py | 6 ++++++ fet2020/core/apps.py | 3 +++ fet2020/fet2020/middleware.py | 8 ++++++-- fet2020/fet2020/utils.py | 17 +++++++++++++++-- fet2020/gallery/apps.py | 6 ++++++ fet2020/intern/apps.py | 6 ++++++ fet2020/members/apps.py | 8 +++++++- fet2020/posts/apps.py | 6 ++++++ fet2020/tasks/apps.py | 6 ++++++ 9 files changed, 61 insertions(+), 5 deletions(-) diff --git a/fet2020/blackboard/apps.py b/fet2020/blackboard/apps.py index 6f7c4fdb..18da5a29 100644 --- a/fet2020/blackboard/apps.py +++ b/fet2020/blackboard/apps.py @@ -1,5 +1,11 @@ from django.apps import AppConfig +from django.db.models.signals import post_migrate + +from fet2020.utils import create_perms class BlackboardConfig(AppConfig): name = "blackboard" + + def ready(self): + post_migrate.connect(create_perms, sender=self) diff --git a/fet2020/core/apps.py b/fet2020/core/apps.py index 0e030792..0cb18d74 100644 --- a/fet2020/core/apps.py +++ b/fet2020/core/apps.py @@ -2,6 +2,8 @@ from django.apps import AppConfig from django.conf import settings from django.db.models.signals import post_migrate +from fet2020.utils import create_perms + def update_default_site(sender, **kwargs): from django.contrib.sites.models import Site @@ -17,3 +19,4 @@ class CoreConfig(AppConfig): def ready(self): post_migrate.connect(update_default_site, sender=self) + post_migrate.connect(create_perms, sender=self) diff --git a/fet2020/fet2020/middleware.py b/fet2020/fet2020/middleware.py index 60615367..93d8f6d6 100644 --- a/fet2020/fet2020/middleware.py +++ b/fet2020/fet2020/middleware.py @@ -12,6 +12,10 @@ class FETHeaderMiddleware(RemoteUserMiddleware): super().process_request(request) if request.user.is_authenticated: - request.user.is_admin = True - request.user.is_superuser = True + from django.contrib.auth.models import Group + + groups = Group.objects.all() + [request.user.groups.add(group.pk) for group in groups] + + # request.user.is_superuser = True request.user.is_staff = True diff --git a/fet2020/fet2020/utils.py b/fet2020/fet2020/utils.py index 221f8073..a5018ecf 100644 --- a/fet2020/fet2020/utils.py +++ b/fet2020/fet2020/utils.py @@ -1,12 +1,13 @@ # util functions for all apps import uuid -from django.contrib.admin.models import ADDITION, CHANGE, LogEntry from django.contrib.admin.utils import construct_change_message -from django.contrib.contenttypes.models import ContentType def add_log_action(request, form, app_label, model, add=True): + from django.contrib.admin.models import ADDITION, CHANGE, LogEntry + from django.contrib.contenttypes.models import ContentType + obj = form.save() content_type = ContentType.objects.get(app_label=app_label, model=model) change_message = construct_change_message(form, None, add) @@ -26,5 +27,17 @@ def add_log_action(request, form, app_label, model, add=True): ) +def create_perms(sender, **kwargs): + from django.contrib.auth.models import Group, Permission + from django.contrib.contenttypes.models import ContentType + + group, created = Group.objects.get_or_create(name=sender.label) + + content_types = ContentType.objects.filter(app_label=sender.label) + for content_type in content_types: + permissions = Permission.objects.filter(content_type=content_type) + [group.permissions.add(permission) for permission in permissions] + + def create_random_id(): return str(uuid.uuid4())[:8] diff --git a/fet2020/gallery/apps.py b/fet2020/gallery/apps.py index fac38751..3f030471 100644 --- a/fet2020/gallery/apps.py +++ b/fet2020/gallery/apps.py @@ -1,5 +1,11 @@ from django.apps import AppConfig +from django.db.models.signals import post_migrate + +from fet2020.utils import create_perms class GalleryConfig(AppConfig): name = "gallery" + + def ready(self): + post_migrate.connect(create_perms, sender=self) diff --git a/fet2020/intern/apps.py b/fet2020/intern/apps.py index b2d0203a..9428c88e 100644 --- a/fet2020/intern/apps.py +++ b/fet2020/intern/apps.py @@ -1,5 +1,11 @@ from django.apps import AppConfig +from django.db.models.signals import post_migrate + +from fet2020.utils import create_perms class InternConfig(AppConfig): name = "intern" + + def ready(self): + post_migrate.connect(create_perms, sender=self) diff --git a/fet2020/members/apps.py b/fet2020/members/apps.py index 85a13061..0d6e0019 100644 --- a/fet2020/members/apps.py +++ b/fet2020/members/apps.py @@ -1,5 +1,11 @@ -from django.apps import AppConfig +from django.apps import AppConfig, apps +from django.db.models.signals import post_migrate + +from fet2020.utils import create_perms class MembersConfig(AppConfig): name = "members" + + def ready(self): + post_migrate.connect(create_perms, sender=self) diff --git a/fet2020/posts/apps.py b/fet2020/posts/apps.py index d39b3e18..172b3be3 100644 --- a/fet2020/posts/apps.py +++ b/fet2020/posts/apps.py @@ -1,5 +1,11 @@ from django.apps import AppConfig +from django.db.models.signals import post_migrate + +from fet2020.utils import create_perms class PostsConfig(AppConfig): name = "posts" + + def ready(self): + post_migrate.connect(create_perms, sender=self) diff --git a/fet2020/tasks/apps.py b/fet2020/tasks/apps.py index 5aadae04..126d08bf 100644 --- a/fet2020/tasks/apps.py +++ b/fet2020/tasks/apps.py @@ -1,5 +1,11 @@ from django.apps import AppConfig +from django.db.models.signals import post_migrate + +from fet2020.utils import create_perms class TasksConfig(AppConfig): name = "tasks" + + def ready(self): + post_migrate.connect(create_perms, sender=self)