diff options
| author | Tom Christie | 2013-03-13 13:13:30 +0000 | 
|---|---|---|
| committer | Tom Christie | 2013-03-13 13:13:30 +0000 | 
| commit | a53596ce28359e24313a5fb9bd8f3564eb12678e (patch) | |
| tree | 341e47ae6380484673628bdfebd616212fc21782 /docs/api-guide/permissions.md | |
| parent | 4b68089d44d3ede878eff58f6e3cdad86f5c832e (diff) | |
| download | django-rest-framework-a53596ce28359e24313a5fb9bd8f3564eb12678e.tar.bz2 | |
Docs for TokenHasReadWriteScope
Diffstat (limited to 'docs/api-guide/permissions.md')
| -rw-r--r-- | docs/api-guide/permissions.md | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index 719ac1ef..4772c5e0 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -105,6 +105,21 @@ The default behaviour can also be overridden to support custom model permissions  To use custom model permissions, override `DjangoModelPermissions` and set the `.perms_map` property.  Refer to the source code for details. +## TokenHasReadWriteScope + +This permission class is intended for use with either of the `OAuthAuthentication` and `OAuth2Authentication` classes, and ties into the scoping that their backends provide. + +Requests with a safe methods of `GET`, `OPTIONS` or `HEAD` will be allowed if the authenticated token has read permission. + +Requests for `POST`, `PUT`, `PATCH` and `DELETE` will be allowed if the authenticated token has write permission. + +This permission class relies on the implementations of the [django-oauth-plus][django-oauth-plus] and [django-oauth2-provider][django-oauth2-provider] libraries, which both provide limited support for controlling the scope of access tokens: + +* `django-oauth-plus`: Tokens are associated with a `Resource` class which has a `name`, `url` and `is_readonly` properties. +* `django-oauth2-provider`: Tokens are associated with a bitwise `scope` attribute, that defaults to providing bitwise values for `read` and/or `write`. + +If you require more advanced scoping for your API, such as restricting tokens to accessing a subset of functionality of your API then you will need to provide a custom permission class.  See the source of the `django-oauth-plus` or `django-oauth2-provider` package for more details on scoping token access. +  ---  # Custom permissions @@ -173,5 +188,7 @@ Also note that the generic views will only check the object-level permissions fo  [throttling]: throttling.md  [contribauth]: https://docs.djangoproject.com/en/1.0/topics/auth/#permissions  [guardian]: https://github.com/lukaszb/django-guardian +[django-oauth-plus]: http://code.larlet.fr/django-oauth-plus +[django-oauth2-provider]: https://github.com/caffeinehit/django-oauth2-provider  [2.2-announcement]: ../topics/2.2-announcement.md  [filtering]: filtering.md | 
