deseasion.backend.models.permission module
- class deseasion.backend.models.permission.HasPermissions
Bases:
object
Mixin to create a permission table for the object
Inspired from SQLAlchemy’s example: http://docs.sqlalchemy.org/en/rel_1_1/_modules/examples/generic_associations/table_per_related.html
- is_public = Column(None, Boolean(), table=None, nullable=False, default=ScalarElementColumnDefault(False))
- is_user_authorized(user)
Check if the user has a permission on this object
Returns a boolean indicating if the user has a permission on the object
- permissions
Create new a permissions table linking a user with an object
The table created will be called ‘<name>_permission’, with <name> being the name of the table where this mixin is used
- class deseasion.backend.models.permission.PermissionAbility(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
- create_geo_data = 2
- create_project = 1
- class deseasion.backend.models.permission.UserPermission(**kwargs)
Bases:
ModelMixin
,Model
- ability
- id
- query: t.ClassVar[Query]
A SQLAlchemy query for a model. Equivalent to
db.session.query(Model)
. Can be customized per-model by overridingquery_class
.Warning
The query interface is considered legacy in SQLAlchemy. Prefer using
session.execute(select())
instead.
- user
- user_id
- deseasion.backend.models.permission.find_tablename(cls)
Find __tablename__ attribute in class tree.
- Raises:
AttributeError – if attribute __tablename__ is never set in tree
- Returns:
closest set __tablename__ attribute found