Browse Source

feat: add last active at for accounts (#375)

tags/0.3.4
John Wang 2 years ago
parent
commit
7552a6be36
No account linked to committer's email address
3 changed files with 38 additions and 0 deletions
  1. 5
    0
      api/app.py
  2. 32
    0
      api/migrations/versions/614f77cecc48_add_last_active_at.py
  3. 1
    0
      api/models/account.py

+ 5
- 0
api/app.py View File

@@ -1,5 +1,7 @@
# -*- coding:utf-8 -*-
import os
from datetime import datetime

if not os.environ.get("DEBUG") or os.environ.get("DEBUG").lower() != 'true':
from gevent import monkey
monkey.patch_all()
@@ -122,6 +124,9 @@ def load_user(user_id):
account.current_tenant_id = tenant_account_join.tenant_id
session['workspace_id'] = account.current_tenant_id

account.last_active_at = datetime.utcnow()
db.session.commit()

# Log in the user with the updated user_id
flask_login.login_user(account, remember=True)


+ 32
- 0
api/migrations/versions/614f77cecc48_add_last_active_at.py View File

@@ -0,0 +1,32 @@
"""add last active at

Revision ID: 614f77cecc48
Revises: a45f4dfde53b
Create Date: 2023-06-15 13:33:00.357467

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '614f77cecc48'
down_revision = 'a45f4dfde53b'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('accounts', schema=None) as batch_op:
batch_op.add_column(sa.Column('last_active_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False))

# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('accounts', schema=None) as batch_op:
batch_op.drop_column('last_active_at')

# ### end Alembic commands ###

+ 1
- 0
api/models/account.py View File

@@ -32,6 +32,7 @@ class Account(UserMixin, db.Model):
timezone = db.Column(db.String(255))
last_login_at = db.Column(db.DateTime)
last_login_ip = db.Column(db.String(255))
last_active_at = db.Column(db.DateTime, nullable=False, server_default=db.text('CURRENT_TIMESTAMP(0)'))
status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying"))
initialized_at = db.Column(db.DateTime)
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text('CURRENT_TIMESTAMP(0)'))

Loading…
Cancel
Save