34 lines
1.1 KiB
Python
34 lines
1.1 KiB
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)
|
|
|
|
def get_changeform_initial_data(self, request):
|
|
get_data = super().get_changeform_initial_data(request)
|
|
get_data["owner"] = request.user.pk
|
|
return get_data
|
|
|
|
|
|
admin.site.register(RedirectUser, UserAdmin)
|