API

class public_admin.sites.PublicApp(name, models)

Holds the permission strings for each model in a Django app. name should be the name of a Django app as string, and models should be a sequence of strings with the name of the models to allowed in a public admin.

class public_admin.sites.DummyUser(public_apps, *args, **kwargs)

Mimics the Django’s native AnonymousUser injecting permissions to view objects from certain Django apps and models.`pubic_apps` should be a sequence of instances of public_admin.sites.PublicApp.

has_module_perms(app_label)

Only grant permission if the app was passed as a public_admin.sites.PublicApp.

has_perm(permission, obj=None)

Only grant permission if the app and model were passed in a public_admin.sites.PublicApp.

class public_admin.sites.PublicAdminSite(name='public_admin', public_apps=())

Mimics the Django’s native AdminSite but removing URLs and permissions that does not match the idea of a public admin. name is the name of this admin site (the string Django uses to build the URL names, for example), and pubic_apps can be one instance of public_admin.sites.PublicApp or a sequence of them.

admin_view(view, cacheable=False)

Injects the public_admin.sites.DummyUser in every request in this admin site.

has_permission(request)

Blocks all non-GET requests.

register(model, admin_class=None, **options)

Verifies whether the model about to be registered is allowed in this public admin site

property urls

List the URLs in this admin site.

static valid_url(url)

This method removes URLs based on their path.

class public_admin.admin.PublicModelAdmin(model, admin_site)

This mimics the Django’s native ModelAdmin but filters URLs that should not exist in a public admin, and deals with request-based permissions.

get_urls()

Filter out the URLs that should not exist in a public admin.

has_add_permission(request)

Denies permission to any request trying to add new objects.

has_change_permission(request, obj=None)

Denies permission to any request trying to change objects.

has_delete_permission(request, obj=None)

Denies permission to any request trying to delete objects.

has_view_permission(request, obj=None)

Only allows view requests if the method is GET