djblets.webapi.oauth2_scopes¶
OAuth2 scope generation for WebAPI resources.
-
get_scope_dictionary()[source]¶ Return the scope dictionary.
This method requires
WEB_API_ROOT_RESOURCEsetting to point to an instance of the root resource for your WebAPI. Optionally, theWEB_API_SCOPE_DICT_CLASS(defaulting todjblets.webapi.oauth2_scopes.WebAPIScopeDictionary) can be set to specialize scope generation.If the
djblets.extensionsapp is being used, then theWEB_API_SCOPE_DICT_CLASSsetting should be set todjblets.webapi.oauth2_scopes.ExtensionEnabledWebAPIScopeDictionary.Returns: The scope dictionary. Return type: WebAPIScopeDictionary
-
class
WebAPIScopeDictionary(root_resource)[source]¶ Bases:
objectA 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.
-
__init__(root_resource)[source]¶ Initialize the scope dictionary.
Parameters: root_resource (djblets.webapi.resources.base.WebAPIResource) – The root resource to walk in order to build scopes.
-
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.
-
__getitem__(key)[source]¶ Return the description of a given scope.
Parameters: key (unicode) – The scope’s key. Returns: The scope’s description. Return type: unicode Raises: KeyError– The scope’s key was not in the dictionary.
-
-
class
ExtensionEnabledWebAPIScopeDictionary(*args, **kwargs)[source]¶ Bases:
djblets.webapi.oauth2_scopes.WebAPIScopeDictionaryA Web API scopes dictionary that supports extensions.
This scope dictionary is only required if your app is using the
djblets.extensionsapp.-
__init__(*args, **kwargs)[source]¶ Initialize the scope dictionary.
This adds signal handlers to ensure the dictionary stays up to date when extensions are initialized and uninitialized.
Parameters: - *args (tuple) – Positional arguments to pass to the parent class.
- **kwargs (dict) – Keyword arguments to pass to the the parent class.
-
-
enable_web_api_scopes(*args, **kwargs)[source]¶ Enable WebAPI scopes.
The
oauth2_provider.settings.oauth2_settingsobject 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.