Swappable Behaviours
Plugin Permissions
Catalogue Access Control / Permissions are determined by a Python module, that can be swapped out using a setting:
DOCUMENT_CATALOGUE_PERMISSIONS = 'document_catalogue.permissions' # default
Override by providing an ordinary Python module that defines the permission functions. See Permissions API
By default, these functions simply use django’s built-in permissions model:
document_catalogue.change_document
document_catalogue.add_document
document_catalogue.delete_document
To simply restrict access to logged in users only, use setting:
DOCUMENT_CATALOGUE_LOGIN_REQUIRED = True # default
PrivateCatalogueConfig
Document download permissions are determined by a Python function:
PRIVATE_STORAGE_AUTH_FUNCTION = 'private_storage.permissions.allow_superuser'
Document List View Plugins
Inject custom behaviours into views that list documents using a simple plugin registered on the view.
Plugin API
Extend the Abstract Base Class and override method(s) to customize behaviours
See Plugins API
Inject your plugin(s) behaviours into document list views using a setting:
DOCUMENT_CATALOGUE_LIST_VIEW_PLUGINS = ('document_catalogue.plugins.SessionOrderedViewPlugin', ) # default
See Plugin Settings
Batteries Included
Document Catalogue comes with 2 plugins:
- class document_catalogue.plugins.OrderedViewPlugin(query_param='dc_ordering')[source]
Applies ordering to view’s queryset based on URL query argument found in request.GET
- class document_catalogue.plugins.SessionOrderedViewPlugin(query_param='dc_ordering')[source]
Applies ordering to view’s queryset based on ordering passed in URL query arg and stored in session