From 79abbf08509eabf3749e5469774f609437d146f3 Mon Sep 17 00:00:00 2001 From: Boris Rybalkin Date: Wed, 4 Sep 2024 09:33:33 +0100 Subject: [PATCH] social account admin group support --- src/paperless/adapter.py | 8 ++++++-- src/paperless/settings.py | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/paperless/adapter.py b/src/paperless/adapter.py index add2bf45d..bc516552d 100644 --- a/src/paperless/adapter.py +++ b/src/paperless/adapter.py @@ -85,5 +85,9 @@ class CustomSocialAccountAdapter(DefaultSocialAccountAdapter): Populate the user with data from the social account. Stub is kept in case global default permissions are implemented in the future. """ - # TODO: If default global permissions are implemented, should also be here - return super().populate_user(request, sociallogin, data) # pragma: no cover + user = super().populate_user(request, sociallogin, data) + groups = sociallogin.account.extra_data.get(settings.SOCIALACCOUNT_ADMIN_GROUP_SCOPE) + if groups: + if settings.SOCIALACCOUNT_ADMIN_GROUP in groups: + user.is_superuser = True + return user # pragma: no cover diff --git a/src/paperless/settings.py b/src/paperless/settings.py index ee6110732..728c06b22 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -459,6 +459,8 @@ SOCIALACCOUNT_AUTO_SIGNUP = __get_boolean("PAPERLESS_SOCIAL_AUTO_SIGNUP") SOCIALACCOUNT_PROVIDERS = json.loads( os.getenv("PAPERLESS_SOCIALACCOUNT_PROVIDERS", "{}"), ) +SOCIALACCOUNT_ADMIN_GROUP = os.getenv("PAPERLESS_SOCIALACCOUNT_ADMIN_GROUP", "admin") +SOCIALACCOUNT_ADMIN_GROUP_SCOPE = os.getenv("SOCIALACCOUNT_ADMIN_GROUP_SCOPE", "groups") ACCOUNT_EMAIL_SUBJECT_PREFIX = "[Paperless-ngx] "