Admin¶
GuardedModelAdmin¶
- class guardian.admin.GuardedModelAdmin(model, admin_site)¶
Extends
django.contrib.admin.ModelAdminclass. Provides some extra views for object permissions management at admin panel. It also changes defaultchange_form_templateoption to'admin/guardian/model/change_form.html'which is required for proper url (object permissions related) being shown at the model pages.Extra options
GuardedModelAdmin.obj_perms_manage_templateDefault:
admin/guardian/model/obj_perms_manage.htmlGuardedModelAdmin.obj_perms_manage_user_templateDefault:
admin/guardian/model/obj_perms_manage_user.htmlGuardedModelAdmin.obj_perms_manage_group_templateDefault:
admin/guardian/model/obj_perms_manage_group.htmlGuardedModelAdmin.user_can_access_owned_objects_onlyDefault:
FalseIf this would be set to
True,request.userwould be used to filter out objects he or she doesn’t own (checkinguserfield of used model - field name may be overridden byuser_owned_objects_fieldoption).Note
Please remember that this will NOT affect superusers! Admins would still see all items.
GuardedModelAdmin.user_can_access_owned_by_group_objects_onlyDefault:
FalseIf this would be set to
True,request.userwould be used to filter out objects her or his group doesn’t own (checking if any group user belongs to is set asgroupfield of the object; name of the field can be changed by overridinggroup_owned_objects_field).Note
Please remember that this will NOT affect superusers! Admins would still see all items.
GuardedModelAdmin.group_owned_objects_fieldDefault:
groupGuardedModelAdmin.include_object_permissions_urlsDefault:
TrueAdded in version 1.2.
Might be set to
Falsein order NOT to include guardian-specific urls.Usage example
Just use
GuardedModelAdmininstead ofdjango.contrib.admin.ModelAdmin.from django.contrib import admin from guardian.admin import GuardedModelAdmin from myapp.models import Author class AuthorAdmin(GuardedModelAdmin): pass admin.site.register(Author, AuthorAdmin)
GuardedModelAdminMixin¶
- class guardian.admin.GuardedModelAdminMixin¶
Serves as a helper for custom subclassing
admin.ModelAdmin.- get_obj_perms_base_context(request, obj)¶
Returns context dictionary with common admin and object permissions related content. It uses AdminSite.each_context, making sure all required template vars are in the context.
- get_obj_perms_group_select_form(request)¶
Returns form class for selecting a group for permissions management. By default
GroupManageis returned.
- get_obj_perms_manage_group_form(request)¶
Returns form class for group object permissions management. By default
AdminGroupObjectPermissionsFormis returned.
- get_obj_perms_manage_group_template()¶
Returns object permissions for group admin template. May be overridden if need to change it dynamically.
Note
If
INSTALLED_APPScontainsgrappellithis function would return"admin/guardian/grappelli/obj_perms_manage_group.html".
- get_obj_perms_manage_template()¶
Returns main object permissions admin template. May be overridden if need to change it dynamically.
Note
If
INSTALLED_APPScontainsgrappellithis function would return"admin/guardian/grappelli/obj_perms_manage.html".
- get_obj_perms_manage_user_form(request)¶
Returns form class for user object permissions management. By default
AdminUserObjectPermissionsFormis returned.
- get_obj_perms_manage_user_template()¶
Returns object permissions for user admin template. May be overridden if need to change it dynamically.
Note
If
INSTALLED_APPScontainsgrappellithis function would return"admin/guardian/grappelli/obj_perms_manage_user.html".
- get_obj_perms_user_select_form(request)¶
Returns form class for selecting a user for permissions management. By default
UserManageis returned.
- get_urls()¶
Extends standard admin model urls with the following:
.../permissions/underapp_mdodel_permissionsurl name (params: object_pk).../permissions/user-manage/<user_id>/underapp_model_permissions_manage_userurl name (params: object_pk, user_pk).../permissions/group-manage/<group_id>/underapp_model_permissions_manage_groupurl name (params: object_pk, group_pk)
Note
...above are standard, instance detail url (i.e./admin/flatpages/1/)
- obj_perms_manage_group_view(request, object_pk, group_id)¶
Manages selected groups’ permissions for current object.
- obj_perms_manage_user_view(request, object_pk, user_id)¶
Manages selected users’ permissions for current object.
- obj_perms_manage_view(request, object_pk)¶
Main object permissions view. Presents all users and groups with any object permissions for the current model instance. Users or groups without object permissions for related instance would not be shown. In order to add or manage user or group one should use links or forms presented within the page.