profile and other stuff
This commit is contained in:
@@ -28,8 +28,8 @@ class RecorderModel(db.Model):
|
||||
recorder_commands = db.relationship('RecorderCommand', back_populates='recorder_model')
|
||||
recorders = db.relationship('Recorder', back_populates='recorder_model')
|
||||
checksum = db.Column(db.String(63), unique=True, nullable=False)
|
||||
requires_user = db.Column(db.Boolean)
|
||||
requires_password = db.Column(db.Boolean)
|
||||
_requires_user = db.Column(db.Integer, default=False, name='requires_user')
|
||||
_requires_password = db.Column(db.Integer, default=True, name='requires_password')
|
||||
|
||||
@staticmethod
|
||||
def get_all():
|
||||
@@ -47,6 +47,22 @@ class RecorderModel(db.Model):
|
||||
def get_by_checksum(md5_sum):
|
||||
return RecorderModel.query.filter(RecorderModel.checksum == md5_sum).first()
|
||||
|
||||
@hybrid_property
|
||||
def requires_user(self):
|
||||
return self._requires_user > 0
|
||||
|
||||
@requires_user.setter
|
||||
def requires_user(self, val: bool):
|
||||
self._requires_user = 1 if val else 0
|
||||
|
||||
@hybrid_property
|
||||
def requires_password(self):
|
||||
return self._requires_password > 0
|
||||
|
||||
@requires_password.setter
|
||||
def requires_password(self, val: bool):
|
||||
self._requires_password = 1 if val else 0
|
||||
|
||||
|
||||
class Recorder(db.Model):
|
||||
id = db.Column(db.Integer, autoincrement=True, primary_key=True)
|
||||
@@ -64,8 +80,8 @@ class Recorder(db.Model):
|
||||
network_name = db.Column(db.String(127), unique=True, nullable=True, default=None)
|
||||
telnet_port = db.Column(db.Integer, unique=False, nullable=False, default=23)
|
||||
ssh_port = db.Column(db.Integer, unique=False, nullable=False, default=22)
|
||||
username = db.column(db.String(127))
|
||||
password = db.column(db.String(127))
|
||||
username = db.Column(db.String, nullable=True, default=None)
|
||||
password = db.Column(db.String, nullable=True, default=None)
|
||||
recorder_model_id = db.Column(db.Integer, db.ForeignKey('recorder_model.id'))
|
||||
recorder_model = db.relationship('RecorderModel', back_populates='recorders')
|
||||
virtual_commands = db.relationship('VirtualCommand', secondary=virtual_command_recorder_table, back_populates='recorders')
|
||||
|
||||
@@ -83,6 +83,7 @@ class User(UserMixin, db.Model):
|
||||
registered_on = db.Column(db.DateTime, nullable=False, default=datetime.utcnow())
|
||||
external_user = db.Column(db.Boolean, default=False)
|
||||
last_seen = db.Column(db.DateTime, default=datetime.utcnow())
|
||||
last_time_modified = db.Column(db.DateTime, default=datetime.utcnow())
|
||||
jwt_exp_delta_seconds = db.Column(db.Integer, nullable=True)
|
||||
acquainted = db.relationship('User',
|
||||
secondary=acquaintances,
|
||||
@@ -264,6 +265,8 @@ class User(UserMixin, db.Model):
|
||||
:param password:
|
||||
:return:
|
||||
"""
|
||||
if self.password is None:
|
||||
return False
|
||||
return sha256_crypt.verify(password, self.password)
|
||||
|
||||
def get_id(self):
|
||||
@@ -375,7 +378,7 @@ class User(UserMixin, db.Model):
|
||||
sort_keys=True, indent=4)
|
||||
|
||||
def __repr__(self):
|
||||
return '<User %r>' % self.nickname
|
||||
return '<User %r>' % self.email
|
||||
|
||||
|
||||
class BlacklistToken(db.Model):
|
||||
@@ -395,6 +398,10 @@ class BlacklistToken(db.Model):
|
||||
def __repr__(self):
|
||||
return '<id: token: {}'.format(self.token)
|
||||
|
||||
@staticmethod
|
||||
def get_by_token(jwt_id):
|
||||
return BlacklistToken.query.filter(BlacklistToken.token == jwt_id).first()
|
||||
|
||||
@staticmethod
|
||||
def check_blacklist(auth_token):
|
||||
"""
|
||||
@@ -457,6 +464,20 @@ class Permission(db.Model):
|
||||
back_populates='permissions')
|
||||
|
||||
|
||||
@event.listens_for(User.__table__, 'after_create')
|
||||
def insert_initial_users(*args, **kwargs):
|
||||
for u in app.config.get("USERS", []):
|
||||
db.session.add(User(**u))
|
||||
db.session.commit()
|
||||
|
||||
|
||||
@event.listens_for(Group.__table__, 'after_create')
|
||||
def insert_initial_groups(*args, **kwargs):
|
||||
for g in app.config.get("GROUPS", []):
|
||||
db.session.add(Group(**g))
|
||||
db.session.commit()
|
||||
|
||||
|
||||
@event.listens_for(Permission.__table__, 'after_create')
|
||||
def insert_initial_permissions(*args, **kwargs):
|
||||
for p in app.config.get("PERMISSIONS", []):
|
||||
|
||||
Reference in New Issue
Block a user