You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
 
 

58 lines
2.0 KiB

from django.contrib import admin
# Register your models here.
from django.contrib import admin
from .models import MasterKey
from django.contrib.auth import get_user_model
User = get_user_model()
@admin.register(MasterKey)
class MasterKeyAdmin(admin.ModelAdmin):
list_display = ('key_id', 'description', 'created_at', 'last_used', 'is_active')
list_filter = ('is_active', 'created_at')
search_fields = ('description', 'key_id')
readonly_fields = ('key_id', 'key_value', 'created_at', 'last_used')
fieldsets = (
(None, {
'fields': ('key_id', 'description', 'is_active')
}),
('Permissions', {
'fields': ('permissions',)
}),
('Security Info', {
'fields': ('created_at', 'last_used'),
'classes': ('collapse',)
}),
)
actions = ['deactivate_keys', 'activate_keys']
def deactivate_keys(self, request, queryset):
queryset.update(is_active=False)
deactivate_keys.short_description = "Deactivate selected keys"
def activate_keys(self, request, queryset):
queryset.update(is_active=True)
activate_keys.short_description = "Activate selected keys"
def has_change_permission(self, request, obj=None):
# Prevent editing of key_value for security
if obj is not None:
return True
return super().has_change_permission(request, obj)
# @admin.register(User)
# class UserAdmin(admin.ModelAdmin):
# list_display = ('last_login', 'username', 'is_staff', 'date_joined', 'is_active')
# list_filter = ('is_active', 'date_joined', 'is_staff')
# search_fields = ('username', 'date_joined')
# readonly_fields = ('username', 'date_joined', 'last_login')
# fieldsets = (
# (None, {
# 'fields': ('username', 'date_joined')
# }),
# ('Security Info', {
# 'fields': ('is_staff', 'last_login', 'is_active'),
# 'classes': ('collapse',)
# }),
# )