Skip to main content

restframework-serializer-permissions

Drop in replacement for Django Restframework Serializers to add permission based field serialization.

Installation

Install this module into your environment:

$ pip install restframework-serializer-permissions

Example

This example uses a ModelSerializer as described in DRF Docs

# import permissions from rest_framework
from rest_framework.permissions import AllowAny, IsAuthenticated

# import serializers from serializer_permissions instead of rest_framework
from serializer_permissions  import serializers

# import you models
from myproject.models import ShoppingItem, ShoppingList


class ShoppingItemSerializer(serializers.ModelSerializer):

    item_name = serializers.CharField()

    class Meta:
        # metaclass as described in drf docs
        model = ShoppingItem
        fields = ('item_name', )


class ShoppingListSerializer(serializers.ModelSerializer):

    # Allow all users to list name
    list_name = serializers.CharField(permission_classes=(AllowAny, ))

    # Only allow authenticated users to retrieve the comment
    list_comment = serializers.CharField(permissions=(IsAuthenticated, ))

    # show owner only, when the current user has 'auth.view_user' permission
    owner = serializers.CharField(permissions=('auth.view_user', ), hide=True)

    # serializer which is only available, when the user is authenticated
    items = ShoppingItemSerializer(many=True, permissions=(IsAuthenticated, ), hide=True)

    class Meta:
        # metaclass as described in drf docs
        model = ShoppingItem
        fields = ('list_name', 'list_comment', 'owner', 'items', )

You can also define your own permissions classes as described in the DRF documentation and specify multiple rpermission_classes and rpermissions on a field or serializer: all provided permissions must be satisfied for the visitor to retrieve the given field.

Compatibility

This package should be compatible with:

  • Django Rest Framework 3
  • Django 2.x, 3.x
  • Python 3.6, 3.7, 3.8

Metadata

Release files for restframework-serializer-permissions 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for restframework-serializer-permissions 0.0.2
File Size Uploaded
restframework-serializer-permissions-0.0.2.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for restframework-serializer-permissions 0.0.2
File Interpreter ABI Platform
restframework_serializer_permissions-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 22.9 kB

Release files / restframework-serializer-permissions-0.0.2.tar.gz

Download URL restframework-serializer-permissions-0.0.2.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c726b4369713c0c5dfb162ac20527a2e81281df29cb73644a8abe19f4002b5ea
BLAKE2b-256 checksum
How to use checksums
d4d47341c1ae9bad04c45e24c5f807817342f0774882b68098625ff5806e2aa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

Release files / restframework_serializer_permissions-0.0.2-py3-none-any.whl

Download URL restframework_serializer_permissions-0.0.2-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a580f3746fd6f61151d8e021457c1f785041609289b2d5a700bf7cadabd8a1f9
BLAKE2b-256 checksum
How to use checksums
cb992d1b1fdcbe8f4a69c0040b018158c68860d6514b96d3d9d22390cbfb7b2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page