fix(server_edit): use new style throws

This commit is contained in:
Paul Makles
2022-02-24 00:07:31 +00:00
parent 3df869c21d
commit 8d8bcff31f

View File

@@ -38,10 +38,8 @@ pub async fn req(db: &Db, user: User, target: Ref, data: Json<Data>) -> Result<J
.map_err(|error| Error::FailedValidation { error })?; .map_err(|error| Error::FailedValidation { error })?;
let mut server = target.as_server(db).await?; let mut server = target.as_server(db).await?;
let permissions = perms(&user).server(&server).calc(db).await?; let mut permissions = perms(&user).server(&server);
if !permissions.can_view_channel() { permissions.calc(db).await?;
return Err(Error::NotFound);
}
// Check permissions // Check permissions
if data.name.is_none() if data.name.is_none()
@@ -55,19 +53,24 @@ pub async fn req(db: &Db, user: User, target: Ref, data: Json<Data>) -> Result<J
&& data.remove.is_none() && data.remove.is_none()
{ {
return Ok(Json(server)); return Ok(Json(server));
} else if (data.name.is_some() } else if data.name.is_some()
|| data.description.is_some() || data.description.is_some()
|| data.icon.is_some() || data.icon.is_some()
|| data.banner.is_some() || data.banner.is_some()
|| data.system_messages.is_some() || data.system_messages.is_some()
|| data.nsfw.is_some() || data.nsfw.is_some()
|| data.analytics.is_some() || data.analytics.is_some()
|| data.remove.is_some()) || data.remove.is_some()
&& !permissions.can_manage_server()
{ {
return Error::from_permission(Permission::ManageServer); permissions
} else if (data.categories.is_some()) && !permissions.can_manage_channel() { .throw_permission(db, Permission::ManageServer)
return Error::from_permission(Permission::ManageChannel); .await?;
}
if data.categories.is_some() {
permissions
.throw_permission(db, Permission::ManageChannel)
.await?;
} }
let Data { let Data {