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,
}