mirror of
https://github.com/stoatchat/stoatchat.git
synced 2026-07-14 05:26:59 +00:00
fix(server_edit): use new style throws
This commit is contained in:
@@ -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 })?;
|
||||
|
||||
let mut server = target.as_server(db).await?;
|
||||
let permissions = perms(&user).server(&server).calc(db).await?;
|
||||
if !permissions.can_view_channel() {
|
||||
return Err(Error::NotFound);
|
||||
}
|
||||
let mut permissions = perms(&user).server(&server);
|
||||
permissions.calc(db).await?;
|
||||
|
||||
// Check permissions
|
||||
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()
|
||||
{
|
||||
return Ok(Json(server));
|
||||
} else if (data.name.is_some()
|
||||
} else if data.name.is_some()
|
||||
|| data.description.is_some()
|
||||
|| data.icon.is_some()
|
||||
|| data.banner.is_some()
|
||||
|| data.system_messages.is_some()
|
||||
|| data.nsfw.is_some()
|
||||
|| data.analytics.is_some()
|
||||
|| data.remove.is_some())
|
||||
&& !permissions.can_manage_server()
|
||||
|| data.remove.is_some()
|
||||
{
|
||||
return Error::from_permission(Permission::ManageServer);
|
||||
} else if (data.categories.is_some()) && !permissions.can_manage_channel() {
|
||||
return Error::from_permission(Permission::ManageChannel);
|
||||
permissions
|
||||
.throw_permission(db, Permission::ManageServer)
|
||||
.await?;
|
||||
}
|
||||
|
||||
if data.categories.is_some() {
|
||||
permissions
|
||||
.throw_permission(db, Permission::ManageChannel)
|
||||
.await?;
|
||||
}
|
||||
|
||||
let Data {
|
||||
|
||||
Reference in New Issue
Block a user