Decorators
The library supplies two decorators to use with graphql queries/mutations and with functional views, respectively:
gql_has_scoped_permissions
function_has_scoped_permissions
The functions take the same arguments: Either a ScopedPermissionGuard, a combination of these, or the same inputs as a ScopedPermissionGuard would take. See guards for more info.
Some examples:
@gql_has_scoped_permissions("scope1:scope2")
def resolve_something(self, info, **kwargs):
return None
@gql_has_scoped_permissions(scope="scope1:scope2", verb="read")
def resolve_something_else(self, info, **kwargs):
return None
@gql_has_scoped_permissions(
ScopedPermissionGuard("scope1:scope2") & ScopedPermissionGuard("scope3") |
(
ScopedPermissionGuard("scope4") ^ ScopedPermissionGuard("scope5")
)
)
def resolve_something_very_guarded(self, info, **kwargs):
return None
@function_has_scoped_permissions("scope1:scope2")
def handle_something(request):
return None
@function_has_scoped_permissions(scope="scope1:scope2", verb="read")
def handle_something_else(request):
return None
@function_has_scoped_permissions(
ScopedPermissionGuard("scope1:scope2") & ScopedPermissionGuard("scope3") |
(
ScopedPermissionGuard("scope4") ^ ScopedPermissionGuard("scope5")
)
)
def handle_something_very_guarded(request):
return None