magpie.models

Module Contents

Classes

Group

Mixin for Group model

GroupPermission

Mixin for GroupPermission model

UserGroup

Mixin for UserGroup model

GroupResourcePermission

Mixin for GroupResourcePermission model

Resource

Mixin for Resource model

UserPermission

Mixin for UserPermission model

UserResourcePermission

Mixin for UserResourcePermission model

User

Base mixin for User object representation.

ExternalIdentity

Mixin for External Identity model - it represents oAuth(or other) accounts

RootFactory

Used to build base Access Control List (ACL) of the request user.

UserFactory

Used to build base Access Control List (ACL) of the request user.

Service

Resource of service type.

PathBase

File

Mixin for Resource model

Directory

Mixin for Resource model

Workspace

Mixin for Resource model

Route

Mixin for Resource model

RemoteResource

Basic class that all other classes inherit from that supplies some

RemoteResourcesSyncInfo

Basic class that all other classes inherit from that supplies some

RemoteResourceTreeService

Initialize self. See help(type(self)) for accurate signature.

RemoteResourceTreeServicePostgresSQL

This is necessary, because ResourceTreeServicePostgresSQL.model is the Resource class. If we want to change it for a

Functions

get_session_callable(request)

resource_factory(**kwargs)

find_children_by_name(child_name, parent_id, db_session)

magpie.models.Base[source]
magpie.models.get_session_callable(request)[source]
class magpie.models.Group[source]

Bases: ziggurat_foundations.models.group.GroupMixin, Base

Mixin for Group model

get_member_count(self, db_session=None)[source]
property discoverable(self)[source]

Indicates if the group is discoverable for users to self-register to it.

class magpie.models.GroupPermission[source]

Bases: ziggurat_foundations.models.group_permission.GroupPermissionMixin, Base

Mixin for GroupPermission model

class magpie.models.UserGroup[source]

Bases: ziggurat_foundations.models.user_group.UserGroupMixin, Base

Mixin for UserGroup model

class magpie.models.GroupResourcePermission[source]

Bases: ziggurat_foundations.models.group_resource_permission.GroupResourcePermissionMixin, Base

Mixin for GroupResourcePermission model

class magpie.models.Resource[source]

Bases: ziggurat_foundations.models.resource.ResourceMixin, Base

Mixin for Resource model

resource_type_name :Str[source]
child_resource_allowed = True[source]
resource_display_name[source]
property root_service_id(self)[source]
property __acl__(self)[source]

User or group that owns a resource are granted full access to it.

class magpie.models.UserPermission[source]

Bases: ziggurat_foundations.models.user_permission.UserPermissionMixin, Base

Mixin for UserPermission model

class magpie.models.UserResourcePermission[source]

Bases: ziggurat_foundations.models.user_resource_permission.UserResourcePermissionMixin, Base

Mixin for UserResourcePermission model

class magpie.models.User[source]

Bases: ziggurat_foundations.models.user.UserMixin, Base

Base mixin for User object representation. It supplies all the basic functionality from password hash generation and matching to utility methods used for querying database for users and their permissions or resources they have access to. It is meant to be extended with other application specific properties

__str__(self)[source]

Return str(self).

class magpie.models.ExternalIdentity[source]

Bases: ziggurat_foundations.models.external_identity.ExternalIdentityMixin, Base

Mixin for External Identity model - it represents oAuth(or other) accounts attached to your user object

class magpie.models.RootFactory(request)[source]

Bases: object

Used to build base Access Control List (ACL) of the request user.

All API and UI routes will employ this set of effective principals to determine if the user is authorized to access the pyramid view according to the permission value it was configured with.

Note

Keep in mind that Magpie is configured with default permission magpie.constants.MAGPIE_ADMIN_PERMISSION. Views that require more permissive authorization must be overridden with permission argument.

See also

Initialize self. See help(type(self)) for accurate signature.

__name__[source]
__parent__ =[source]
property __acl__(self)[source]

Administrators have all permissions, user/group-specific permissions added if user is logged in.

class magpie.models.UserFactory(request)[source]

Bases: magpie.models.RootFactory

Used to build base Access Control List (ACL) of the request user.

All API and UI routes will employ this set of effective principals to determine if the user is authorized to access the pyramid view according to the permission value it was configured with.

Note

Keep in mind that Magpie is configured with default permission magpie.constants.MAGPIE_ADMIN_PERMISSION. Views that require more permissive authorization must be overridden with permission argument.

See also

Initialize self. See help(type(self)) for accurate signature.

__getitem__(self, user_name)[source]
property __acl__(self)[source]

Grant access to request user according to its relationship to context user (targeted by request path variable).

If it is the same user (either from explicit name or magpie.constants.MAGPIE_LOGGED_USER reserved keyword), allow magpie.constants.MAGPIE_LOGGED_PERMISSION for itself to access corresponding views.

If request user is unauthenticated, magpie.constants.MAGPIE_LOGGED_USER or itself, also grant magpie.constants.MAGPIE_CONTEXT_PERMISSION to allow access to contextually-available details. (e.g.: user can view his own information and public ones)

class magpie.models.Service[source]

Bases: magpie.models.Resource

Resource of service type.

__tablename__ = services[source]
resource_id[source]
resource_type_name = service[source]
__mapper_args__[source]
property permissions(self)[source]
property url(self)[source]
property type(self)[source]

Identifier matching magpie.services.ServiceInterface.service_type.

property sync_type(self)[source]

Identifier matching magpie.cli.SyncServiceInterface.sync_type.

static by_service_name(service_name, db_session)[source]
class magpie.models.PathBase[source]

Bases: object

permissions[source]
class magpie.models.File[source]

Bases: magpie.models.Resource, magpie.models.PathBase

Mixin for Resource model

child_resource_allowed = False[source]
resource_type_name = file[source]
__mapper_args__[source]
class magpie.models.Directory[source]

Bases: magpie.models.Resource, magpie.models.PathBase

Mixin for Resource model

resource_type_name = directory[source]
__mapper_args__[source]
class magpie.models.Workspace[source]

Bases: magpie.models.Resource

Mixin for Resource model

resource_type_name = workspace[source]
__mapper_args__[source]
permissions[source]
class magpie.models.Route[source]

Bases: magpie.models.Resource

Mixin for Resource model

resource_type_name = route[source]
__mapper_args__[source]
permissions[source]
class magpie.models.RemoteResource[source]

Bases: ziggurat_foundations.models.base.BaseModel, Base

Basic class that all other classes inherit from that supplies some basic methods useful for interaction with packages like: deform, colander or wtforms

__tablename__ = remote_resources[source]
__possible_permissions__ = [][source]
_ziggurat_services[source]
resource_id[source]
service_id[source]
parent_id[source]
ordering[source]
resource_name[source]
resource_display_name[source]
resource_type[source]
__repr__(self)[source]

Return repr(self).

class magpie.models.RemoteResourcesSyncInfo[source]

Bases: ziggurat_foundations.models.base.BaseModel, Base

Basic class that all other classes inherit from that supplies some basic methods useful for interaction with packages like: deform, colander or wtforms

__tablename__ = remote_resources_sync_info[source]
id[source]
service_id[source]
service[source]
remote_resource_id[source]
last_sync[source]
static by_service_id(service_id, session)[source]
__repr__(self)[source]

Return repr(self).

class magpie.models.RemoteResourceTreeService(service_cls)[source]

Bases: ziggurat_foundations.models.services.resource_tree.ResourceTreeService

Initialize self. See help(type(self)) for accurate signature.

class magpie.models.RemoteResourceTreeServicePostgresSQL[source]

Bases: ziggurat_foundations.models.services.resource_tree_postgres.ResourceTreeServicePostgreSQL

This is necessary, because ResourceTreeServicePostgresSQL.model is the Resource class. If we want to change it for a RemoteResource, we need this class.

The ResourceTreeService.__init__ call sets the model.

magpie.models.RESOURCE_TREE_SERVICE[source]
magpie.models.REMOTE_RESOURCE_TREE_SERVICE[source]
magpie.models.RESOURCE_TYPE_DICT :Dict[Str, Type[Resource]][source]
magpie.models.resource_factory(**kwargs)[source]
magpie.models.find_children_by_name(child_name, parent_id, db_session)[source]