shortener/src/redirect/admin.py

29 lines
949 B
Python

from django.contrib import admin
from django.contrib.auth import get_permission_codename
from django.contrib.auth.admin import UserAdmin
from django.http import HttpRequest
from redirect.models import Redirect
from .models import RedirectUser
@admin.register(Redirect)
class RedirectAdmin(admin.ModelAdmin):
list_display = ["short_code", "target_url"]
def has_change_permission(self, request: HttpRequest, obj: Redirect = None):
opts = self.opts
codename = get_permission_codename("change", opts)
return request.user.has_perm(f"{opts.app_label}.{codename}", obj)
def has_view_permission(self, request: HttpRequest, obj: Redirect = None):
opts = self.opts
codename = get_permission_codename("view", opts)
return request.user.has_perm(
f"{opts.app_label}.{codename}", obj
) or self.has_change_permission(request, obj)
admin.site.register(RedirectUser, UserAdmin)