magpie.api.requests¶
Attributes¶
Functions¶
|
Validates the value against specified type and pattern. |
|
Obtain request content from property according to submitted method. |
|
Obtains the value of |
Retrieves the permission from the body and validates that it is allowed for the specified service or resource. |
|
|
Obtains and validates the matched value under |
|
Obtains the list of effective principals according to detected request session user. |
|
Verifies if the authenticated user doing the request has administrative access. |
|
|
|
Obtains the user corresponding to the provided user-name, token or via lookup of the logged user request session. |
Obtains either the explicit or logged user specified in the request path variable. |
|
|
Obtains the user matched against the specified request path variable. |
|
Obtains the group matched against the specified request path variable. |
|
Obtains the resource matched against the specified request path variable. |
|
Obtains the service matched against the specified request path variable. |
Obtains the permission specified in the request path variable and validates that |
|
|
Obtains the matched value located at the expected position of the specified path variable. |
|
Retrieves a query string value by name (case insensitive), or returns the default if not present. |
|
Decorator for views that returns a |
Module Contents¶
- magpie.api.requests.check_value(value: Any, param_name: magpie.typedefs.Str, check_type: Any = six.string_types, pattern: magpie.typedefs.Str | bool | None = ax.PARAM_REGEX) None[source]¶
Validates the value against specified type and pattern.
- Parameters:
value – value to validate.
check_type – verify that parameter value is of specified type. Set to
Noneto disable check.pattern – regex pattern to validate the input with. If value evaluates to
False, skip this kind of validation (default:ax.PARAM_REGEX).param_name – path variable key.
- Returns:
None.
- Raises:
HTTPUnprocessableEntity – if the key is not an applicable path variable for this request.
- magpie.api.requests.get_request_method_content(request: pyramid.request.Request) Dict[magpie.typedefs.Str, Any][source]¶
Obtain request content from property according to submitted method.
Requests with HTTP
GETstore content intoGETproperty, while other methods are inPOSTproperty.
- magpie.api.requests.get_multiformat_body(request: pyramid.request.Request, key: magpie.typedefs.Str, default: Any | None = None) Any[source]¶
Obtains the value of
keyelement from the request body according to specified Content-Type header.See also
get_multiformat_body_checked()
- magpie.api.requests.get_permission_multiformat_body_checked(request: pyramid.request.Request, service_or_resource: magpie.typedefs.ServiceOrResourceType) magpie.permissions.PermissionSet[source]¶
Retrieves the permission from the body and validates that it is allowed for the specified service or resource.
Validation combines basic field checks followed by contextual values applicable for the service or resource. The permission can be provided either by literal string name (explicit or implicit format) or JSON object.
See also
- magpie.api.requests.get_value_multiformat_body_checked(request: pyramid.request.Request, key: magpie.typedefs.Str, default: Any = None, check_type: Any = six.string_types, pattern: magpie.typedefs.Str | bool | None = ax.PARAM_REGEX) magpie.typedefs.Str[source]¶
Obtains and validates the matched value under
keyelement from the request body.Parsing of the body is accomplished according to
Content-Typeheader.- Parameters:
request – request from which to retrieve the key.
key – body key variable.
default – value to return instead if not found. If this default is
None, it will raise.check_type – verify that parameter value is of specified type. Set to
Noneto disable check.pattern – regex pattern to validate the input with. If value evaluates to
False, skip this kind of validation (default:magpie.api.exception.PARAM_REGEX).
- Returns:
matched path variable value.
- Raises:
HTTPBadRequest – if the key could not be retrieved from the request body and has no provided default value.
HTTPUnprocessableEntity – if the retrieved value from the key is invalid for this request.
See also
- magpie.api.requests.get_principals(request: pyramid.request.Request) List[magpie.typedefs.AnyAccessPrincipalType][source]¶
Obtains the list of effective principals according to detected request session user.
- magpie.api.requests.has_admin_access(request: pyramid.request.Request) bool[source]¶
Verifies if the authenticated user doing the request has administrative access.
Note
Any request view that does not explicitly override
permissionby another value than the defaultMAGPIE_ADMIN_PERMISSIONwill already automatically guarantee that the request user is an administrator since HTTP [403] Forbidden would have been otherwise replied. This method is indented for operations that are more permissive and require conditional validation of administrator access.See also
Definitions in
magpie.models.RootFactoryandmagpie.models.UserFactorydefine conditional principals and ACL based on the request.
- magpie.api.requests.get_logged_user(request: pyramid.request.Request) magpie.models.User | None[source]¶
- magpie.api.requests.get_user(request: pyramid.request.Request, user_name_or_token: magpie.typedefs.Str | None = None, user_status: magpie.models.UserStatuses | None = None) magpie.models.AnyUser[source]¶
Obtains the user corresponding to the provided user-name, token or via lookup of the logged user request session.
- Parameters:
request – request from which to obtain application settings and session user as applicable.
user_name_or_token – reference value to employ for lookup of the user.
user_status – filter search based on a user status. Ignored if no user name or token is provided.
- Returns:
found user.
- Raises:
HTTPForbidden – if the requesting user does not have sufficient permission to execute this request.
HTTPNotFound – if the specified user name or token does not correspond to any existing user.
- magpie.api.requests.get_user_matchdict_checked_or_logged(request: pyramid.request.Request, user_name_key: magpie.typedefs.Str = 'user_name', user_status: magpie.models.UserStatuses | None = None) magpie.models.AnyUser[source]¶
Obtains either the explicit or logged user specified in the request path variable.
:returns found user. :raises HTTPForbidden: if the requesting user does not have sufficient permission to execute this request. :raises HTTPNotFound: if the specified user name or logged user keyword does not correspond to any existing user.
- magpie.api.requests.get_user_matchdict_checked(request: pyramid.request.Request, user_name_key: magpie.typedefs.Str = 'user_name', user_status: magpie.models.UserStatuses | None = None) magpie.models.AnyUser[source]¶
Obtains the user matched against the specified request path variable.
- Returns:
found user.
- Raises:
HTTPForbidden – if the requesting user does not have sufficient permission to execute this request.
HTTPNotFound – if the specified user name does not correspond to any existing user.
See also
- magpie.api.requests.get_group_matchdict_checked(request: pyramid.request.Request, group_name_key: magpie.typedefs.Str = 'group_name') magpie.models.Group[source]¶
Obtains the group matched against the specified request path variable.
- Returns:
found group.
- Raises:
HTTPForbidden – if the requesting user does not have sufficient permission to execute this request.
HTTPNotFound – if the specified group name does not correspond to any existing group.
- magpie.api.requests.get_resource_matchdict_checked(request: pyramid.request.Request, resource_name_key: magpie.typedefs.Str = 'resource_id') magpie.models.Resource[source]¶
Obtains the resource matched against the specified request path variable.
- Returns:
found resource.
- Raises:
HTTPForbidden – if the requesting user does not have sufficient permission to execute this request.
HTTPNotFound – if the specified resource ID does not correspond to any existing resource.
- magpie.api.requests.get_service_matchdict_checked(request: pyramid.request.Request, service_name_key: magpie.typedefs.Str = 'service_name') magpie.models.Service[source]¶
Obtains the service matched against the specified request path variable.
- Returns:
found service.
- Raises:
HTTPForbidden – if the requesting user does not have sufficient permission to execute this request.
HTTPNotFound – if the specified service name does not correspond to any existing service.
- magpie.api.requests.get_permission_matchdict_checked(request: pyramid.request.Request, service_or_resource: magpie.models.Resource) magpie.permissions.PermissionSet[source]¶
Obtains the permission specified in the request path variable and validates that
service_or_resourceallows it.The
service_or_resourcecan be top-level service or a children resource.Allowed permissions correspond to the direct service permissions or restrained permissions of the resource under its root service. The permission name can be provided either by implicit or explicit string representation.
- Returns:
found permission name if valid for the service/resource
- magpie.api.requests.get_value_matchdict_checked(request: pyramid.request.Request, key: magpie.typedefs.Str, check_type: Any = six.string_types, pattern: magpie.typedefs.Str | bool | None = ax.PARAM_REGEX) magpie.typedefs.Str[source]¶
Obtains the matched value located at the expected position of the specified path variable.
- Parameters:
request – request from which to retrieve the key.
key – path variable key.
check_type – verify that parameter value is of specified type. Set to
Noneto disable check.pattern – regex pattern to validate the input with. If value evaluates to
False, skip this kind of validation (default:ax.PARAM_REGEX).
- Returns:
matched path variable value.
- Raises:
HTTPUnprocessableEntity – if the key is not an applicable path variable for this request.
- magpie.api.requests.get_query_param(request: pyramid.request.Request, case_insensitive_key: magpie.typedefs.Str | Iterable[magpie.typedefs.Str], default: Any | None = None) Any[source]¶
Retrieves a query string value by name (case insensitive), or returns the default if not present.
- magpie.api.requests.check_network_mode_enabled(view_func: collections.abc.Callable) collections.abc.Callable[source]¶
Decorator for views that returns a
HTTPNotImplementedresponse if network mode is not enabled. This is intended to be used for all views that should only be accessed if network mode is enabled.Instead of decorating a view function directly, pass this function to the
decoratorargument of theview_configdecorator. For example:@view_config(..., decorator=check_network_mode_enabled) def get_some_view(request): ...