Exemple #1
0
class ChildDocument(BaseScopedIdMixin, Base):
    __tablename__ = 'child_document'
    parent_id = Column(None, ForeignKey('middle_container.id'))
    parent = relationship(MiddleContainer, backref='children')
    query = Session.query_property()

    def permissions(self, user, inherited=None):
        if inherited is None:
            perms = set()
        else:
            perms = inherited
        if user.username == 'foo':
            if 'delete' in perms:
                perms.remove('delete')
        return perms
Exemple #2
0
class ParentDocument(BaseNameMixin, Base):
    __tablename__ = 'parent_document'
    middle_id = Column(None, ForeignKey('middle_container.id'))
    middle = relationship(MiddleContainer, uselist=False)
    query = Session.query_property()

    def __init__(self, **kwargs):
        super(ParentDocument, self).__init__(**kwargs)
        self.middle = MiddleContainer()

    def permissions(self, user, inherited=None):
        perms = super(ParentDocument, self).permissions(user, inherited)
        perms.add('view')
        if user.username == 'foo':
            perms.add('edit')
            perms.add('delete')
        return perms
Exemple #3
0
class MiddleContainer(BaseMixin, Base):
    __tablename__ = 'middle_container'
    query = Session.query_property()