Metadata-Version: 2.1
Name: django-admin-permissions
Version: 1.0.0
Summary: Very simple extension that adds a permissions check on the field in admin
Home-page: https://github.com/silentsokolov/django-admin-permissions
Author: Dmitriy Sokolov
Author-email: silentsokolov@gmail.com
License: MIT
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Utilities
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Description-Content-Type: text/x-rst
License-File: LICENSE

.. image:: https://github.com/silentsokolov/django-admin-permissions/actions/workflows/build.yml/badge.svg?branch=master
   :target: https://github.com/silentsokolov/django-admin-permissions/actions?query=workflow%3Abuild

.. image:: https://codecov.io/gh/silentsokolov/django-admin-permissions/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/silentsokolov/django-admin-permissions


django-admin-permissions
========================

Very simple extension that adds a permissions check on the field in admin


Requirements
------------

* Python 2.7+ or Python 3.3+
* Django 1.8+


Installation
------------

Use your favorite Python package manager to install the app from PyPI, e.g.

Example:

``pip install django-admin-permissions``

Add ``admin_permissions`` to ``INSTALLED_APPS``:

Example:

.. code:: python

    INSTALLED_APPS = (
        ...
        'admin_permissions',
        ...
    )


Example usage
-------------

Use class ``FieldPermissionMixin`` and set permissions using ``fields_permissions``:

.. code:: python

    from django.contrib import admin
    from admin_permissions.admin import FieldPermissionMixin


    class ArticleAdmin(FieldPermissionMixin, admin.ModelAdmin):
        fieldsets = [
            ('General', {
                'fields': ['title', 'slug', 'text'],
            }),
            ('SEO', {
                'fields': ['seo_title', 'seo_description'],
            }),
        ]

        fields_permissions = {
            # 'permission': ('field',)
            'articles.can_change_admin_seo_fields': ('seo_title', 'seo_description'),
        }


Options
~~~~~~~

If you want the user to see the field, but could not edit them, set ``fields_permissions_read_only`` is ``True``, default ``False``.


