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 })?;
|
.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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user