diff options
Diffstat (limited to 'gitsrht/types/access.py')
-rw-r--r-- | gitsrht/types/access.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gitsrht/types/access.py b/gitsrht/types/access.py index cce8525..526e049 100644 --- a/gitsrht/types/access.py +++ b/gitsrht/types/access.py @@ -12,13 +12,18 @@ class Access(Base): id = sa.Column(sa.Integer, primary_key=True) created = sa.Column(sa.DateTime, nullable=False) updated = sa.Column(sa.DateTime, nullable=False) - repo_id = sa.Column(sa.Integer, sa.ForeignKey('repository.id'), nullable=False) - repo = sa.orm.relationship('Repository', backref='access_grants') - user_id = sa.Column(sa.Integer, sa.ForeignKey('user.id'), nullable=False) - user = sa.orm.relationship('User', backref='access_grants') mode = sa.Column(sau.ChoiceType(AccessMode, impl=sa.String()), nullable=False, default=AccessMode.ro) + user_id = sa.Column(sa.Integer, sa.ForeignKey('user.id'), nullable=False) + user = sa.orm.relationship('User', backref='access_grants') + + repo_id = sa.Column(sa.Integer, + sa.ForeignKey('repository.id', ondelete="CASCADE"), + nullable=False) + repo = sa.orm.relationship('Repository', + backref=sa.orm.backref('access_grants', cascade="all, delete")) + def __repr__(self): return '<Access {} {}->{}:{}>'.format( self.id, self.user_id, self.repo_id, self.mode) |