Add ban words

This commit is contained in:
Rykov7
2023-09-02 20:12:33 +03:00
parent b83ccfab85
commit 9e4d2d1bd7
3 changed files with 81 additions and 76 deletions
+56 -56
View File
@@ -49,59 +49,59 @@ class Chat(Base):
return f'Chat({self.chat_id=}, {self.title=})'
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
tg_id = Column(Integer, unique=True)
first_name = Column(String)
last_name = Column(String)
username = Column(String)
permissions = Column(Integer)
def __repr__(self):
return f'User({self.first_name} {self.last_name} {self.username})'
class Role(Base):
__tablename__ = 'roles'
id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True)
default = Column(Boolean, default=False, index=True)
permissions = Column(Integer)
users = relationship('User', backref='role', lazy='dynamic')
def add_permission(self, perm):
if not self.has_permission(perm):
self.permissions += perm
def remove_permission(self, perm):
if self.has_permission(perm):
self.permissions -= perm
def reset_permissions(self):
self.permissions = 0
def has_permission(self, perm):
return self.permissions & perm == perm
@staticmethod
def insert_roles():
roles = {
"User": [Permission.USE_COMMANDS],
"Moderator": [Permission.USE_COMMANDS, Permission.SEND_LINKS,
Permission.MODIFY_QUOTES, Permission.MODERATE],
"Administrator": [Permission.USE_COMMANDS, Permission.SEND_LINKS,
Permission.MODIFY_QUOTES, Permission.MODERATE,
Permission.ADMIN],
}
default_role = 'User'
for r in roles:
role = Role.query.filter_by(name=r).first()
if role is None:
role = Role(name=r)
role.reset_permissions()
for perm in roles[r]:
role.add_permission(perm)
role.default = (role.name == default_role)
session.add(role)
session.commit()
# class User(Base):
# __tablename__ = "users"
# id = Column(Integer, primary_key=True)
# tg_id = Column(Integer, unique=True)
# first_name = Column(String)
# last_name = Column(String)
# username = Column(String)
# permissions = Column(Integer)
#
# def __repr__(self):
# return f'User({self.first_name} {self.last_name} {self.username})'
#
# class Role(Base):
# __tablename__ = 'roles'
# id = Column(Integer, primary_key=True)
# name = Column(String(64), unique=True)
# default = Column(Boolean, default=False, index=True)
# permissions = Column(Integer)
# users = relationship('User', backref='role', lazy='dynamic')
#
# def add_permission(self, perm):
# if not self.has_permission(perm):
# self.permissions += perm
#
# def remove_permission(self, perm):
# if self.has_permission(perm):
# self.permissions -= perm
#
# def reset_permissions(self):
# self.permissions = 0
#
# def has_permission(self, perm):
# return self.permissions & perm == perm
#
#
# @staticmethod
# def insert_roles():
# roles = {
# "User": [Permission.USE_COMMANDS],
# "Moderator": [Permission.USE_COMMANDS, Permission.SEND_LINKS,
# Permission.MODIFY_QUOTES, Permission.MODERATE],
# "Administrator": [Permission.USE_COMMANDS, Permission.SEND_LINKS,
# Permission.MODIFY_QUOTES, Permission.MODERATE,
# Permission.ADMIN],
# }
# default_role = 'User'
# for r in roles:
# role = Role.query.filter_by(name=r).first()
# if role is None:
# role = Role(name=r)
# role.reset_permissions()
# for perm in roles[r]:
# role.add_permission(perm)
# role.default = (role.name == default_role)
# session.add(role)
# session.commit()