Initial django guardian integrations
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
from django.contrib import admin
|
||||
from guardian.admin import GuardedModelAdmin
|
||||
from django.utils.html import format_html
|
||||
from .models import Server
|
||||
|
||||
|
||||
@admin.register(Server)
|
||||
class ServerAdmin(admin.ModelAdmin):
|
||||
class ServerAdmin(GuardedModelAdmin):
|
||||
list_display = ("avatar", "display_name", "hostname", "ipv4", "ipv6", "created_at")
|
||||
list_display_links = ("display_name",)
|
||||
search_fields = ("display_name", "hostname", "ipv4", "ipv6")
|
||||
@@ -26,4 +27,3 @@ class ServerAdmin(admin.ModelAdmin):
|
||||
)
|
||||
avatar.short_description = ""
|
||||
|
||||
|
||||
|
||||
@@ -6,4 +6,7 @@ class ServersConfig(AppConfig):
|
||||
name = "apps.servers"
|
||||
verbose_name = "Servers"
|
||||
|
||||
def ready(self) -> None:
|
||||
from . import signals # noqa: F401
|
||||
return super().ready()
|
||||
|
||||
|
||||
14
app/apps/servers/signals.py
Normal file
14
app/apps/servers/signals.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
|
||||
from apps.core.rbac import assign_default_object_permissions
|
||||
from .models import Server
|
||||
|
||||
|
||||
@receiver(post_save, sender=Server)
|
||||
def assign_server_perms(sender, instance: Server, created: bool, **kwargs) -> None:
|
||||
if not created:
|
||||
return
|
||||
assign_default_object_permissions(instance)
|
||||
Reference in New Issue
Block a user