Jump to >

djblets.webapi.oauth2_scopes

OAuth2 scope generation for WebAPI resources.

get_scope_dictionary()[source]

Return the scope dictionary.

This method requires WEB_API_ROOT_RESOURCE setting to point to an instance of the root resource for your WebAPI. Optionally, the WEB_API_SCOPE_DICT_CLASS (defaulting to djblets.webapi.oauth2_scopes.WebAPIScopeDictionary) can be set to specialize scope generation.

If the djblets.extensions app is being used, then the WEB_API_SCOPE_DICT_CLASS setting should be set to djblets.webapi.oauth2_scopes.ExtensionEnabledWebAPIScopeDictionary.

Returns

The scope dictionary.

Return type

WebAPIScopeDictionary

class WebAPIScopeDictionary(root_resource)[source]

A Web API scope dictionary.

This class knows how to build a list of available scopes from the WebAPI resource tree at runtime.

By default, it will only have to walk the API tree once, after which the value can be cached.

property scope_dict[source]

The dictionary of scopes defined by this dictionary.

The value is cached so that it will only be recomputed when the dictionary is updated.

iterkeys()[source]

Iterate through all keys in the dictionary.

This is used by oauth2_provider when on Python 2.x to get the list of scope keys.

Yields

unicode – The key for each scope.

keys()[source]

Iterate through all keys in the dictionary.

This is used by oauth2_provider when on Python 3.x to get the list of scope keys.

Yields

unicode – The key for each scope.

clear()[source]

Clear all scopes from the dictionary.

The next attempt at fetching scopes will repopulate the dictionary from scratch.

class ExtensionEnabledWebAPIScopeDictionary(*args, **kwargs)[source]

A Web API scopes dictionary that supports extensions.

This scope dictionary is only required if your app is using the djblets.extensions app.

enable_web_api_scopes(*args, **kwargs)[source]

Enable WebAPI scopes.

The oauth2_provider.settings.oauth2_settings object will be patched so that scopes are correctly cached. The cache will be lazily updated after the scopes are updated.

Parameters
  • *args (tuple) – Ignored positional arguments.

  • **kwargs (dict) – Ignored keyword arguments.