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
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',) |
|
# }), |
|
# ) |