Add thread watchers

This commit is contained in:
rubenwardy
2018-06-11 23:38:03 +01:00
parent e8cc685f89
commit 68b7a5e922
3 changed files with 60 additions and 2 deletions

View File

@@ -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