models.py 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. from datetime import datetime
  2. from lxconsole import db, login_manager
  3. from flask_login import UserMixin
  4. @login_manager.user_loader
  5. def load_user(user_id):
  6. return User.query.get(int(user_id))
  7. class User(db.Model, UserMixin):
  8. id = db.Column(db.Integer, primary_key=True)
  9. username = db.Column(db.String(255), unique=True, nullable=False)
  10. email = db.Column(db.String(255), nullable=True)
  11. first_name = db.Column(db.String(255), nullable=True)
  12. last_name = db.Column(db.String(255), nullable=True)
  13. image_file = db.Column(db.String(255), nullable=False, default='')
  14. password = db.Column(db.String(255), nullable=False)
  15. created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
  16. def __repr__(self):
  17. return f"User('{self.username}', '{self.email}', '{self.image_file}')"
  18. class Group(db.Model):
  19. id = db.Column(db.Integer, primary_key=True)
  20. name = db.Column(db.String(255), unique=True, nullable=False)
  21. description = db.Column(db.String(255), nullable=True)
  22. def __repr__(self):
  23. return f"Group('{self.name}', '{self.description}')"
  24. class AccessControl(db.Model):
  25. id = db.Column(db.Integer, primary_key=True)
  26. description = db.Column(db.String(255), nullable=True)
  27. scope = db.Column(db.String(255), nullable=False)
  28. server_id = db.Column(db.Integer, nullable=True)
  29. group_id = db.Column(db.Integer, nullable=False)
  30. role_id = db.Column(db.Integer, nullable=False)
  31. def __repr__(self):
  32. return f"AccessControl('{self.description}', '{self.scope}', '{self.server_id}, '{self.group_id}, '{self.role_id}')"
  33. class UserGroup(db.Model):
  34. id = db.Column(db.Integer, primary_key=True)
  35. user_id = db.Column(db.Integer, nullable=False)
  36. group_id = db.Column(db.Integer, nullable=False)
  37. def __repr__(self):
  38. return f"UserGroup('{self.user_id}', '{self.group_id}')"
  39. class Server(db.Model):
  40. id = db.Column(db.Integer, primary_key=True)
  41. addr = db.Column(db.String(255), nullable=False)
  42. port = db.Column(db.Integer, nullable=False)
  43. name = db.Column(db.String(255), nullable=True)
  44. proxy = db.Column(db.String(255), nullable=True)
  45. ssl_verify = db.Column(db.Boolean, nullable=False)
  46. user_id = db.Column(db.Integer, nullable=False)
  47. def __repr__(self):
  48. return f"Server('{self.addr}', '{self.port}', '{self.name}')"
  49. class Simplestream(db.Model):
  50. id = db.Column(db.Integer, primary_key=True)
  51. url = db.Column(db.String(255), nullable=False)
  52. alias = db.Column(db.String(255), nullable=True)
  53. ssl_verify = db.Column(db.Boolean, nullable=False, default=False)
  54. def __repr__(self):
  55. return f"Simplestream('{self.url}', '{self.alias}')"
  56. # class Log(db.Model):
  57. # id = db.Column(db.Integer, primary_key=True)
  58. # control = db.Column(db.String(255), nullable=True)
  59. # server_id = db.Column(db.Integer, primary_key=True)
  60. # project = db.Column(db.String(255), nullable=True)
  61. # message = db.Column(db.String(255), nullable=True)
  62. # user_id = db.Column(db.Integer, primary_key=True)
  63. # item = db.Column(db.String(255), nullable=True)
  64. # status_code = db.Column(db.Integer, primary_key=True)
  65. # created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
  66. # def __repr__(self):
  67. # return f"Simplestream('{self.id}', '{self.description}')"