|
|
@ -18,7 +18,7 @@ use crate::{
|
|
|
|
db::{backup_database, models::*, DbConn, DbConnType},
|
|
|
|
db::{backup_database, models::*, DbConn, DbConnType},
|
|
|
|
error::{Error, MapResult},
|
|
|
|
error::{Error, MapResult},
|
|
|
|
mail,
|
|
|
|
mail,
|
|
|
|
util::get_display_size,
|
|
|
|
util::{get_display_size, format_naive_datetime_local},
|
|
|
|
CONFIG,
|
|
|
|
CONFIG,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -293,6 +293,7 @@ fn get_users_json(_token: AdminToken, conn: DbConn) -> JsonResult {
|
|
|
|
#[get("/users/overview")]
|
|
|
|
#[get("/users/overview")]
|
|
|
|
fn users_overview(_token: AdminToken, conn: DbConn) -> ApiResult<Html<String>> {
|
|
|
|
fn users_overview(_token: AdminToken, conn: DbConn) -> ApiResult<Html<String>> {
|
|
|
|
let users = User::get_all(&conn);
|
|
|
|
let users = User::get_all(&conn);
|
|
|
|
|
|
|
|
let dt_fmt = "%Y-%m-%d %H:%M:%S %Z";
|
|
|
|
let users_json: Vec<Value> = users.iter()
|
|
|
|
let users_json: Vec<Value> = users.iter()
|
|
|
|
.map(|u| {
|
|
|
|
.map(|u| {
|
|
|
|
let mut usr = u.to_json(&conn);
|
|
|
|
let mut usr = u.to_json(&conn);
|
|
|
@ -300,9 +301,9 @@ fn users_overview(_token: AdminToken, conn: DbConn) -> ApiResult<Html<String>> {
|
|
|
|
usr["attachment_count"] = json!(Attachment::count_by_user(&u.uuid, &conn));
|
|
|
|
usr["attachment_count"] = json!(Attachment::count_by_user(&u.uuid, &conn));
|
|
|
|
usr["attachment_size"] = json!(get_display_size(Attachment::size_by_user(&u.uuid, &conn) as i32));
|
|
|
|
usr["attachment_size"] = json!(get_display_size(Attachment::size_by_user(&u.uuid, &conn) as i32));
|
|
|
|
usr["user_enabled"] = json!(u.enabled);
|
|
|
|
usr["user_enabled"] = json!(u.enabled);
|
|
|
|
usr["created_at"] = json!(&u.created_at.format("%Y-%m-%d %H:%M:%S").to_string());
|
|
|
|
usr["created_at"] = json!(format_naive_datetime_local(&u.created_at, dt_fmt));
|
|
|
|
usr["last_active"] = match u.last_active(&conn) {
|
|
|
|
usr["last_active"] = match u.last_active(&conn) {
|
|
|
|
Some(timestamp) => json!(timestamp.format("%Y-%m-%d %H:%M:%S").to_string()),
|
|
|
|
Some(dt) => json!(format_naive_datetime_local(&dt, dt_fmt)),
|
|
|
|
None => json!("Never")
|
|
|
|
None => json!("Never")
|
|
|
|
};
|
|
|
|
};
|
|
|
|
usr
|
|
|
|
usr
|
|
|
@ -446,7 +447,7 @@ fn diagnostics(_token: AdminToken, _conn: DbConn) -> ApiResult<Html<String>> {
|
|
|
|
// Run the date check as the last item right before filling the json.
|
|
|
|
// Run the date check as the last item right before filling the json.
|
|
|
|
// This should ensure that the time difference between the browser and the server is as minimal as possible.
|
|
|
|
// This should ensure that the time difference between the browser and the server is as minimal as possible.
|
|
|
|
let dt = Utc::now();
|
|
|
|
let dt = Utc::now();
|
|
|
|
let server_time = dt.format("%Y-%m-%d %H:%M:%S").to_string();
|
|
|
|
let server_time = dt.format("%Y-%m-%d %H:%M:%S UTC").to_string();
|
|
|
|
|
|
|
|
|
|
|
|
let diagnostics_json = json!({
|
|
|
|
let diagnostics_json = json!({
|
|
|
|
"dns_resolved": dns_resolved,
|
|
|
|
"dns_resolved": dns_resolved,
|
|
|
|