admin: setup an admin role
gitea/ants-hub/pipeline/head This commit looks good Details

This commit is contained in:
Benjamin Dauvergne 2023-06-13 16:05:24 +02:00
parent 5ccf4b0003
commit 48095f1eaf
2 changed files with 13 additions and 10 deletions

View File

@ -2,6 +2,7 @@
import django.contrib.admin.options
import django.contrib.admin.widgets
from django.conf import settings
from django.contrib import admin
from ants_hub.admin import site
@ -9,15 +10,14 @@ from ants_hub.admin import site
from . import models
class DoNotModifyMixin:
def has_change_permission(self, request):
return False
class UneditableMixin:
def has_change_permission(self, request, obj=None):
return settings.ANTS_HUB_ADMIN_ROLE in request.session.get('mellon_session', {}).get('roles', [])
def has_add_permission(self, request):
return False
has_add_permission = has_change_permission
class ConfigAdmin(admin.ModelAdmin):
class ConfigAdmin(UneditableMixin, admin.ModelAdmin):
list_display = ['key', 'value']
@ -32,7 +32,7 @@ class RaccordementAdmin(admin.ModelAdmin):
short_apikey.short_description = 'API key'
class CollectiviteAdmin(DoNotModifyMixin, admin.ModelAdmin):
class CollectiviteAdmin(UneditableMixin, admin.ModelAdmin):
list_display = ['raccordement', 'nom', 'url', 'source_id', 'created', 'last_update']
list_display_links = ['nom']
search_fields = ['raccordement__name', 'nom']
@ -40,7 +40,7 @@ class CollectiviteAdmin(DoNotModifyMixin, admin.ModelAdmin):
ordering = ['raccordement__name', 'nom']
class LieuAdmin(DoNotModifyMixin, admin.ModelAdmin):
class LieuAdmin(UneditableMixin, admin.ModelAdmin):
list_display = ['collectivite', 'nom', 'created', 'last_update']
list_display_links = ['nom']
search_fields = ['collectivite__raccordement__name', 'collectivite__nom', 'nom']
@ -48,7 +48,7 @@ class LieuAdmin(DoNotModifyMixin, admin.ModelAdmin):
ordering = ['collectivite__raccordement__name', 'collectivite__nom', 'nom']
class PlageAdmin(DoNotModifyMixin, admin.ModelAdmin):
class PlageAdmin(UneditableMixin, admin.ModelAdmin):
date_hierarchy = 'date'
list_display = ['date', 'lieu', 'type_de_rdv', 'personnes', 'horaires', 'created', 'last_update']
search_fields = ['lieu__collectivite__raccordement__name', 'lieu__collectivite__nom', 'lieu__nom']
@ -64,7 +64,7 @@ class PlageAdmin(DoNotModifyMixin, admin.ModelAdmin):
]
class RendezVousAdmin(DoNotModifyMixin, admin.ModelAdmin):
class RendezVousAdmin(UneditableMixin, admin.ModelAdmin):
date_hierarchy = 'date'
list_display = ['date', 'lieu', 'identifiant_predemande', 'created', 'last_update']
list_filter = ['lieu__collectivite']

View File

@ -110,6 +110,9 @@ LOGGING = {
# ANTS_HUB_X_HUB_RDV_AUTH_TOKEN
ANTS_HUB_X_HUB_RDV_AUTH_TOKEN = None
# ANTS_HUB_ADMIN_ROLE
ANTS_HUB_ADMIN_ROLE = None
if 'ANTS_HUB_SETTINGS_FILE' in os.environ:
with open(os.environ['ANTS_HUB_SETTINGS_FILE']) as fd: