|
@ -6,7 +6,7 @@ use rocket::response::{content::Html, Flash, Redirect}; |
|
|
use rocket::{Outcome, Route}; |
|
|
use rocket::{Outcome, Route}; |
|
|
use rocket_contrib::json::Json; |
|
|
use rocket_contrib::json::Json; |
|
|
|
|
|
|
|
|
use crate::api::{ApiResult, EmptyResult}; |
|
|
use crate::api::{ApiResult, EmptyResult, JsonResult}; |
|
|
use crate::auth::{decode_admin, encode_jwt, generate_admin_claims, ClientIp}; |
|
|
use crate::auth::{decode_admin, encode_jwt, generate_admin_claims, ClientIp}; |
|
|
use crate::config::ConfigBuilder; |
|
|
use crate::config::ConfigBuilder; |
|
|
use crate::db::{models::*, DbConn}; |
|
|
use crate::db::{models::*, DbConn}; |
|
@ -21,6 +21,7 @@ pub fn routes() -> Vec<Route> { |
|
|
|
|
|
|
|
|
routes![ |
|
|
routes![ |
|
|
admin_login, |
|
|
admin_login, |
|
|
|
|
|
get_users, |
|
|
post_admin_login, |
|
|
post_admin_login, |
|
|
admin_page, |
|
|
admin_page, |
|
|
invite_user, |
|
|
invite_user, |
|
@ -155,6 +156,14 @@ fn invite_user(data: Json<InviteData>, _token: AdminToken, conn: DbConn) -> Empt |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[get("/users")] |
|
|
|
|
|
fn get_users(_token: AdminToken, conn: DbConn) ->JsonResult { |
|
|
|
|
|
let users = User::get_all(&conn); |
|
|
|
|
|
let users_json: Vec<Value> = users.iter().map(|u| u.to_json(&conn)).collect(); |
|
|
|
|
|
|
|
|
|
|
|
Ok(Json(Value::Array(users_json))) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
#[post("/users/<uuid>/delete")] |
|
|
#[post("/users/<uuid>/delete")] |
|
|
fn delete_user(uuid: String, _token: AdminToken, conn: DbConn) -> EmptyResult { |
|
|
fn delete_user(uuid: String, _token: AdminToken, conn: DbConn) -> EmptyResult { |
|
|
let user = match User::find_by_uuid(&uuid, &conn) { |
|
|
let user = match User::find_by_uuid(&uuid, &conn) { |
|
|