forked from jmug/stoatchat
Servers: Fetch and edit members.
Permissions: Use bit representation for permissions.
This commit is contained in:
21
src/routes/servers/member_fetch.rs
Normal file
21
src/routes/servers/member_fetch.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
use crate::database::*;
|
||||
use crate::util::result::{Error, Result};
|
||||
|
||||
use mongodb::bson::doc;
|
||||
use rocket_contrib::json::JsonValue;
|
||||
|
||||
#[get("/<target>/members/<member>")]
|
||||
pub async fn req(user: User, target: Ref, member: String) -> Result<JsonValue> {
|
||||
let target = target.fetch_server().await?;
|
||||
|
||||
let perm = permissions::PermissionCalculator::new(&user)
|
||||
.with_server(&target)
|
||||
.for_server()
|
||||
.await?;
|
||||
|
||||
if !perm.get_view() {
|
||||
Err(Error::MissingPermission)?
|
||||
}
|
||||
|
||||
Ok(json!(Ref::from(member)?.fetch_member(&target.id).await?))
|
||||
}
|
||||
Reference in New Issue
Block a user