magpie.services

Module Contents

class magpie.services.ServiceMeta[source]

Bases: type

resource_types[source]

Allowed resources type classes under the service.

resource_type_names[source]

Allowed resources type names under the service.

child_resource_allowed[source]
get_resource_permissions(cls, resource_type_name)[source]

Obtains the allowed permissions of the service’s child resource fetched by resource type name.

class magpie.services.ServiceInterface(service, request)[source]

Bases: six.with_metaclass()

service_type :Str[source]
params_expected :List[Str] = [][source]
permissions :List[Permission] = [][source]
resource_types_permissions :Dict[models.Resource, List[Permission]][source]
__acl__[source]

List of access control rules defining (outcome, user/group, permission) combinations.

_get_acl_cached(self, service_id, user)[source]

Beaker will cache this method based on the service id and the user.

If the cache is not hit, call the self.get_acl() method

get_acl(self)[source]
expand_acl(self, resource, user)[source]
permission_requested(self)[source]
effective_permissions(self, resource, user)[source]

Recursively rewind the resource tree from the specified resource up to the topmost parent service resource and retrieve permissions along the way that should be applied to children when using resource inheritance.

class magpie.services.ServiceWPS(service, request)[source]

Bases: magpie.services.ServiceInterface

service_type = wps[source]
permissions[source]
params_expected = ['service', 'request', 'version'][source]
resource_types_permissions[source]
get_acl(self)[source]
class magpie.services.ServiceBaseWMS(service, request)[source]

Bases: magpie.services.ServiceInterface

permissions[source]
params_expected = ['service', 'request', 'version', 'layers', 'layername', 'dataset'][source]
resource_types_permissions[source]
get_acl(self)[source]
class magpie.services.ServiceNCWMS2(service, request)[source]

Bases: magpie.services.ServiceBaseWMS

service_type = ncwms[source]
resource_types_permissions[source]
get_acl(self)[source]
class magpie.services.ServiceGeoserverWMS(service, request)[source]

Bases: magpie.services.ServiceBaseWMS

service_type = geoserverwms[source]
get_acl(self)[source]
class magpie.services.ServiceAccess(service, request)[source]

Bases: magpie.services.ServiceInterface

service_type = access[source]
permissions[source]
params_expected = [][source]
resource_types_permissions[source]
get_acl(self)[source]
permission_requested(self)[source]
class magpie.services.ServiceAPI(service, request)[source]

Bases: magpie.services.ServiceInterface

service_type = api[source]
permissions[source]
params_expected = [][source]
resource_types_permissions[source]
get_acl(self, sub_api_route=None)[source]
permission_requested(self)[source]
effective_permissions(self, resource, user)[source]
class magpie.services.ServiceWFS(service, request)[source]

Bases: magpie.services.ServiceInterface

service_type = wfs[source]
permissions[source]
params_expected = ['service', 'request', 'version', 'typenames'][source]
resource_types_permissions[source]
get_acl(self)[source]
class magpie.services.ServiceTHREDDS(service, request)[source]

Bases: magpie.services.ServiceInterface

service_type = thredds[source]
permissions[source]
params_expected = ['request'][source]
resource_types_permissions[source]
get_acl(self)[source]
permission_requested(self)[source]
magpie.services.SERVICE_TYPE_DICT[source]
magpie.services.service_factory(service, request) → ServiceInterface[source]

Retrieve the specific service class from the provided database service entry.