From 7dab7e29ccfadb484888cc61d7782e1190659481 Mon Sep 17 00:00:00 2001 From: Awiteb Date: Wed, 24 Jul 2024 08:40:56 +0300 Subject: [PATCH] feat: Add `last_logout` column to `users` table Signed-off-by: Awiteb --- crates/oxidetalis/src/database/user.rs | 2 ++ crates/oxidetalis_entities/src/users.rs | 8 +++++--- crates/oxidetalis_migrations/src/create_users_table.rs | 6 ++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/crates/oxidetalis/src/database/user.rs b/crates/oxidetalis/src/database/user.rs index d43301d..d4536a6 100644 --- a/crates/oxidetalis/src/database/user.rs +++ b/crates/oxidetalis/src/database/user.rs @@ -16,6 +16,7 @@ //! Functions for interacting with the user table in the database. +use chrono::Utc; use logcall::logcall; use oxidetalis_core::types::PublicKey; use oxidetalis_entities::prelude::*; @@ -47,6 +48,7 @@ impl UserTableExt for DatabaseConnection { if let Err(err) = (UserActiveModel { public_key: Set(*public_key), is_admin: Set(is_admin), + last_logout: Set(Utc::now()), ..Default::default() }) .save(self) diff --git a/crates/oxidetalis_entities/src/users.rs b/crates/oxidetalis_entities/src/users.rs index 66e3db9..8489585 100644 --- a/crates/oxidetalis_entities/src/users.rs +++ b/crates/oxidetalis_entities/src/users.rs @@ -21,6 +21,7 @@ //! Entity for `users` table +use chrono::Utc; use oxidetalis_core::types::PublicKey; use sea_orm::entity::prelude::*; @@ -30,9 +31,10 @@ use crate::prelude::*; #[sea_orm(table_name = "users")] pub struct Model { #[sea_orm(primary_key)] - pub id: UserId, - pub public_key: PublicKey, - pub is_admin: bool, + pub id: UserId, + pub public_key: PublicKey, + pub last_logout: chrono::DateTime, + pub is_admin: bool, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] diff --git a/crates/oxidetalis_migrations/src/create_users_table.rs b/crates/oxidetalis_migrations/src/create_users_table.rs index 9a52372..fef238f 100644 --- a/crates/oxidetalis_migrations/src/create_users_table.rs +++ b/crates/oxidetalis_migrations/src/create_users_table.rs @@ -47,6 +47,11 @@ impl MigrationTrait for Migration { .not_null() .unique_key(), ) + .col( + ColumnDef::new(Users::LastLogout) + .timestamp_with_time_zone() + .not_null(), + ) .col( ColumnDef::new(Users::IsAdmin) .boolean() @@ -64,5 +69,6 @@ pub enum Users { Table, Id, PublicKey, + LastLogout, IsAdmin, }