38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
from django.contrib import admin
|
|
try:
|
|
from unfold.contrib.guardian.admin import GuardedModelAdmin
|
|
except ImportError: # Fallback for older Unfold builds without guardian admin shim.
|
|
from guardian.admin import GuardedModelAdmin as GuardianGuardedModelAdmin
|
|
from unfold.admin import ModelAdmin as UnfoldModelAdmin
|
|
|
|
class GuardedModelAdmin(GuardianGuardedModelAdmin, UnfoldModelAdmin):
|
|
pass
|
|
|
|
from .models import SSHCertificate, SSHCertificateAuthority, SSHKey
|
|
|
|
|
|
@admin.register(SSHKey)
|
|
class SSHKeyAdmin(GuardedModelAdmin):
|
|
list_display = ("id", "user", "name", "key_type", "fingerprint", "is_active", "created_at")
|
|
list_filter = ("is_active", "key_type")
|
|
search_fields = ("name", "user__username", "user__email", "fingerprint")
|
|
ordering = ("-created_at",)
|
|
|
|
|
|
@admin.register(SSHCertificateAuthority)
|
|
class SSHCertificateAuthorityAdmin(admin.ModelAdmin):
|
|
list_display = ("name", "fingerprint", "is_active", "created_at", "revoked_at")
|
|
list_filter = ("is_active",)
|
|
search_fields = ("name", "fingerprint")
|
|
readonly_fields = ("created_at", "revoked_at", "fingerprint", "public_key", "private_key")
|
|
ordering = ("-created_at",)
|
|
|
|
|
|
@admin.register(SSHCertificate)
|
|
class SSHCertificateAdmin(admin.ModelAdmin):
|
|
list_display = ("id", "user", "key", "serial", "is_active", "valid_before", "created_at")
|
|
list_filter = ("is_active",)
|
|
search_fields = ("user__username", "user__email", "serial")
|
|
readonly_fields = ("created_at", "revoked_at", "certificate")
|
|
ordering = ("-created_at",)
|