Skip to content

Commit

Permalink
adjust site permission/role verbose name and admin representation
Browse files Browse the repository at this point in the history
  • Loading branch information
dpgraham4401 committed Jul 22, 2024
1 parent 8bd1053 commit baf8dd8
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 2 deletions.
23 changes: 22 additions & 1 deletion server/apps/org/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
from django.contrib import admin
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from guardian.admin import GuardedModelAdmin

from apps.org.models import Org, OrgAccess
from apps.org.models import Org, OrgAccess, OrgGroupObjectPermission, OrgUserObjectPermission
from apps.site.models import Site

admin.site.register(OrgAccess)
Expand All @@ -19,3 +22,21 @@ def rcrainfo_integrated(self, obj):

def number_of_sites(self, org: Org):
return Site.objects.filter(org=org).count()


@admin.register(OrgUserObjectPermission)
class OrgUserObjectPermissionAdmin(GuardedModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "permission":
content_type = ContentType.objects.get_for_model(Site)
kwargs["queryset"] = Permission.objects.filter(content_type=content_type)
return super().formfield_for_foreignkey(db_field, request, **kwargs)


@admin.register(OrgGroupObjectPermission)
class OrgGroupObjectPermissionAdmin(GuardedModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "permission":
content_type = ContentType.objects.get_for_model(Site)
kwargs["queryset"] = Permission.objects.filter(content_type=content_type)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
23 changes: 22 additions & 1 deletion server/apps/site/admin.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,31 @@
from django.contrib import admin
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from guardian.admin import GuardedModelAdmin

from apps.site.models import Site
from apps.site.models import Site, SiteGroupObjectPermission, SiteUserObjectPermission


@admin.register(Site)
class HaztrakSiteAdmin(admin.ModelAdmin):
list_display = ["__str__", "last_rcrainfo_manifest_sync"]
readonly_fields = ["rcra_site"]
search_fields = ["rcra_site__epa_id"]


@admin.register(SiteUserObjectPermission)
class SiteUserObjectPermissionAdmin(GuardedModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "permission":
content_type = ContentType.objects.get_for_model(Site)
kwargs["queryset"] = Permission.objects.filter(content_type=content_type)
return super().formfield_for_foreignkey(db_field, request, **kwargs)


@admin.register(SiteGroupObjectPermission)
class SiteGroupObjectPermissionAdmin(GuardedModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "permission":
content_type = ContentType.objects.get_for_model(Site)
kwargs["queryset"] = Permission.objects.filter(content_type=content_type)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 5.0.7 on 2024-07-22 20:17

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('site', '0002_alter_siteaccess_options_sitegroupobjectpermission_and_more'),
]

operations = [
migrations.AlterModelOptions(
name='sitegroupobjectpermission',
options={'verbose_name': 'Site Role', 'verbose_name_plural': 'Site Roles'},
),
migrations.AlterModelOptions(
name='siteuserobjectpermission',
options={'verbose_name': 'Site Permission', 'verbose_name_plural': 'Site Permissions'},
),
]
8 changes: 8 additions & 0 deletions server/apps/site/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,18 @@ def __str__(self):
class SiteUserObjectPermission(UserObjectPermissionBase):
"""Site object level permission."""

class Meta(UserObjectPermissionBase.Meta):
verbose_name = "Site Permission"
verbose_name_plural = "Site Permissions"

content_object = models.ForeignKey(Site, on_delete=models.CASCADE)


class SiteGroupObjectPermission(GroupObjectPermissionBase):
"""Site object level Group."""

class Meta(GroupObjectPermissionBase.Meta):
verbose_name = "Site Role"
verbose_name_plural = "Site Roles"

content_object = models.ForeignKey(Site, on_delete=models.CASCADE)

0 comments on commit baf8dd8

Please sign in to comment.