djblets.webapi.oauth2_scopes¶
OAuth2 scope generation for WebAPI resources.
- get_scope_dictionary()¶
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, theWEB_API_SCOPE_DICT_CLASS
(defaulting todjblets.webapi.oauth2_scopes.WebAPIScopeDictionary
) can be set to specialize scope generation.If the
djblets.extensions
app is being used, then theWEB_API_SCOPE_DICT_CLASS
setting should be set todjblets.webapi.oauth2_scopes.ExtensionEnabledWebAPIScopeDictionary
.- Returns:
The scope dictionary.
- Return type:
- class WebAPIScopeDictionary(root_resource)¶
Bases:
object
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.
- __init__(root_resource)¶
Initialize the scope dictionary.
- Parameters:
root_resource (
djblets.webapi.resources.base.WebAPIResource
) – The root resource to walk in order to build scopes.
- property scope_dict¶
The dictionary of scopes defined by this dictionary.
The value is cached so that it will only be recomputed when the dictionary is updated.
- keys()¶
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()¶
Clear all scopes from the dictionary.
The next attempt at fetching scopes will repopulate the dictionary from scratch.
- __getitem__(key)¶
Return the description of a given scope.
- __contains__(key)¶
Return whether the dictionary has a particular scope.
- class ExtensionEnabledWebAPIScopeDictionary(*args, **kwargs)¶
Bases:
WebAPIScopeDictionary
A Web API scopes dictionary that supports extensions.
This scope dictionary is only required if your app is using the
djblets.extensions
app.- __init__(*args, **kwargs)¶
Initialize the scope dictionary.
This adds signal handlers to ensure the dictionary stays up to date when extensions are initialized and uninitialized.
- __annotations__ = {}¶
- enable_web_api_scopes(*args, **kwargs)¶
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.