This commit is contained in:
beabigegg
2025-11-13 08:18:15 +08:00
parent 788e2409df
commit df5411e44c
38 changed files with 1163 additions and 445 deletions

View File

@@ -9,9 +9,11 @@ class User(db.Model):
__tablename__ = 'ms_users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
display_name = db.Column(db.String(100), nullable=True) # For friendly display name like "ymirliu 劉念萱"
password_hash = db.Column(db.String(128), nullable=False)
role = db.Column(db.String(20), nullable=False, default='user') # 'user' or 'admin'
created_at = db.Column(db.DateTime(timezone=True), server_default=func.now())
last_login = db.Column(db.DateTime(timezone=True), nullable=True) # Track last login time
def set_password(self, password):
self.password_hash = bcrypt.generate_password_hash(password).decode('utf-8')
@@ -23,8 +25,10 @@ class User(db.Model):
return {
'id': self.id,
'username': self.username,
'display_name': self.display_name,
'role': self.role,
'created_at': self.created_at.isoformat() if self.created_at else None
'created_at': self.created_at.isoformat() if self.created_at else None,
'last_login': self.last_login.isoformat() if self.last_login else None
}
class Meeting(db.Model):