add: ability to convert existing communities into forums

This commit is contained in:
trisua 2025-08-05 22:36:25 -04:00
parent 3958d5eaef
commit 2407e6b213
8 changed files with 125 additions and 24 deletions

View file

@ -264,6 +264,41 @@ pub async fn update_owner_request(
}
}
pub async fn update_is_forum_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, oauth::AppScope::CommunityManage) {
Some(ua) => ua,
None => return Json(Error::NotAllowed.into()),
};
let mut community = match data.get_community_by_id_no_void(id).await {
Ok(x) => x,
Err(e) => return Json(e.into()),
};
community.context.enable_titles = true;
community.context.require_titles = true;
match data.update_community_is_forum(id, &user, 1).await {
Ok(_) => match data
.update_community_context(id, &user, community.context)
.await
{
Ok(_) => Json(ApiReturn {
ok: true,
message: "Community updated".to_string(),
payload: (),
}),
Err(e) => Json(e.into()),
},
Err(e) => Json(e.into()),
}
}
pub async fn get_membership(
jar: CookieJar,
Extension(data): Extension<State>,

View file

@ -95,6 +95,10 @@ pub fn routes() -> Router {
"/communities/{id}/context",
post(communities::communities::update_context_request),
)
.route(
"/communities/{id}/is_forum",
post(communities::communities::update_is_forum_request),
)
.route(
"/communities/{id}/access/read",
post(communities::communities::update_read_access_request),