diff options
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/app/models.py b/app/models.py index c76cb25..93f6992 100644 --- a/app/models.py +++ b/app/models.py @@ -92,7 +92,6 @@ class Permission(enum.Enum): else: raise Exception("Non-global permission checked globally. Use Package.checkPerm or User.checkPerm instead.") - class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) @@ -665,6 +664,11 @@ class EditRequestChange(db.Model): setattr(package, self.key.name, self.newValue) +watchers = db.Table("watchers", + db.Column("user_id", db.Integer, db.ForeignKey("user.id"), primary_key=True), + db.Column("thread_id", db.Integer, db.ForeignKey("thread.id"), primary_key=True) +) + class Thread(db.Model): id = db.Column(db.Integer, primary_key=True) @@ -679,6 +683,9 @@ class Thread(db.Model): replies = db.relationship("ThreadReply", backref="thread", lazy="dynamic") + watchers = db.relationship("User", secondary=watchers, lazy="subquery", \ + backref=db.backref("watching", lazy=True)) + def checkPerm(self, user, perm): if not user.is_authenticated: return not self.private |