Implement user ban

This commit is contained in:
Bat
2018-09-09 11:25:55 +01:00
parent 2f53cb9122
commit 1f2bd105b6
6 changed files with 72 additions and 2 deletions
+3
View File
@@ -66,6 +66,9 @@ fn main() {
routes::instance::admin,
routes::instance::admin_instances,
routes::instance::admin_instances_paginated,
routes::instance::admin_users,
routes::instance::admin_users_paginated,
routes::instance::ban,
routes::instance::toggle_block,
routes::instance::update_settings,
routes::instance::shared_inbox,
+24
View File
@@ -163,6 +163,30 @@ fn toggle_block(_admin: Admin, conn: DbConn, id: i32) -> Redirect {
Redirect::to(uri!(admin_instances))
}
#[get("/admin/users")]
fn admin_users(admin: Admin, conn: DbConn) -> Template {
admin_users_paginated(admin, conn, Page::first())
}
#[get("/admin/users?<page>")]
fn admin_users_paginated(admin: Admin, conn: DbConn, page: Page) -> Template {
let users = User::get_local_page(&*conn, page.limits()).into_iter()
.map(|u| u.to_json(&*conn)).collect::<Vec<serde_json::Value>>();
Template::render("instance/users", json!({
"account": admin.0.to_json(&*conn),
"users": users,
"page": page.page,
"n_pages": Page::total(User::count_local(&*conn) as i32)
}))
}
#[get("/admin/users/<id>/ban")]
fn ban(_admin: Admin, conn: DbConn, id: i32) -> Redirect {
User::get(&*conn, id).map(|u| u.delete(&*conn));
Redirect::to(uri!(admin_users))
}
#[post("/inbox", data = "<data>")]
fn shared_inbox(conn: DbConn, data: String) -> String {
let act: serde_json::Value = serde_json::from_str(&data[..]).unwrap();