add: product types

This commit is contained in:
trisua 2025-07-13 00:05:28 -04:00
parent aea764948c
commit 2705608903
5 changed files with 89 additions and 11 deletions

View file

@ -1537,7 +1537,7 @@
],
[
[\"auto_full_unlist\", \"Only publish my posts to my profile\"],
\"{{ profile.settings.auto_unlist }}\",
\"{{ profile.settings.auto_full_unlist }}\",
\"checkbox\",
],
[

View file

@ -1,4 +1,4 @@
use std::time::Duration;
use std::{str::FromStr, time::Duration};
use crate::{
get_user_from_token,
model::{ApiReturn, Error},
@ -451,8 +451,8 @@ pub async fn delete_user_request(
Extension(data): Extension<State>,
Json(req): Json<DeleteUser>,
) -> impl IntoResponse {
let data = &(data.read().await).0;
let user = match get_user_from_token!(jar, data) {
let data = &(data.read().await);
let user = match get_user_from_token!(jar, data.0) {
Some(ua) => ua,
None => return Json(Error::NotAllowed.into()),
};
@ -461,6 +461,7 @@ pub async fn delete_user_request(
return Json(Error::NotAllowed.into());
} else if user.permissions.check(FinePermission::MANAGE_USERS) {
if let Err(e) = data
.0
.create_audit_log_entry(AuditLogEntry::new(
user.id,
format!("invoked `delete_user` with x value `{id}`"),
@ -472,14 +473,32 @@ pub async fn delete_user_request(
}
match data
.0
.delete_user(id, &req.password, user.permissions.check_manager())
.await
{
Ok(_) => Json(ApiReturn {
ok: true,
message: "User deleted".to_string(),
payload: (),
}),
Ok(ua) => {
// delete stripe user
if let Some(stripe_id) = ua.seller_data.account_id
&& let Some(ref client) = data.3
{
if let Err(e) = stripe::Account::delete(
&client,
&stripe::AccountId::from_str(&stripe_id).unwrap(),
)
.await
{
return Json(Error::MiscError(e.to_string()).into());
}
}
// ...
Json(ApiReturn {
ok: true,
message: "User deleted".to_string(),
payload: (),
})
}
Err(e) => Json(e.into()),
}
}