fix: stacks manage page when user deletes profile

add: allow moderators to view deleted posts
This commit is contained in:
trisua 2025-05-16 16:09:21 -04:00
parent 4c26879d00
commit 81307752c2
14 changed files with 211 additions and 29 deletions

View file

@ -117,7 +117,7 @@ pub async fn update_context_request(
None => return Json(Error::NotAllowed.into()),
};
match data.update_community_context(id, user, req.context).await {
match data.update_community_context(id, &user, req.context).await {
Ok(_) => Json(ApiReturn {
ok: true,
message: "Community updated".to_string(),
@ -140,7 +140,7 @@ pub async fn update_read_access_request(
};
match data
.update_community_read_access(id, user, req.access)
.update_community_read_access(id, &user, req.access)
.await
{
Ok(_) => Json(ApiReturn {
@ -165,7 +165,7 @@ pub async fn update_write_access_request(
};
match data
.update_community_write_access(id, user, req.access)
.update_community_write_access(id, &user, req.access)
.await
{
Ok(_) => Json(ApiReturn {
@ -190,7 +190,7 @@ pub async fn update_join_access_request(
};
match data
.update_community_join_access(id, user, req.access)
.update_community_join_access(id, &user, req.access)
.await
{
Ok(_) => Json(ApiReturn {

View file

@ -183,7 +183,7 @@ pub async fn update_name_request(
None => return Json(Error::NotAllowed.into()),
};
match data.update_emoji_name(id, user, &req.name).await {
match data.update_emoji_name(id, &user, &req.name).await {
Ok(_) => Json(ApiReturn {
ok: true,
message: "Emoji updated".to_string(),

View file

@ -173,6 +173,31 @@ pub async fn delete_request(
None => return Json(Error::NotAllowed.into()),
};
match data.fake_delete_post(id, user, true).await {
Ok(_) => Json(ApiReturn {
ok: true,
message: "Post deleted".to_string(),
payload: (),
}),
Err(e) => Json(e.into()),
}
}
pub async fn real_delete_request(
jar: CookieJar,
Extension(data): Extension<State>,
Path(id): Path<usize>,
) -> impl IntoResponse {
let data = &(data.read().await).0;
let user = match get_user_from_token!(jar, data) {
Some(ua) => ua,
None => return Json(Error::NotAllowed.into()),
};
if !user.permissions.check(FinePermission::MANAGE_POSTS) {
return Json(Error::NotAllowed.into());
}
match data.delete_post(id, user).await {
Ok(_) => Json(ApiReturn {
ok: true,