only one '+' role necessary + introduction of 'kassier' role
Some checks failed
CI/CD Pipeline / deploy-staging (push) Blocked by required conditions
CI/CD Pipeline / deploy-main (push) Blocked by required conditions
CI/CD Pipeline / test (push) Has been cancelled

This commit is contained in:
2024-08-19 10:51:50 +02:00
parent 799e94a50f
commit afb6af8ece
2 changed files with 20 additions and 17 deletions

View File

@ -968,22 +968,18 @@ macro_rules! special_user {
}
}
};
(@check_roles $user:ident, $db:ident, $(+$role:expr),* $(,-$neg_role:expr)*) => {
{
let mut has_positive_role = false;
$(
if !$user.has_role($db, $role).await {
false
} else
if $user.has_role($db, $role).await {
has_positive_role = true;
}
)*
has_positive_role
$(
if $user.has_role($db, $neg_role).await {
false
} else
&& !$user.has_role($db, $neg_role).await
)*
{
true
}
}
};
}
@ -996,6 +992,7 @@ special_user!(DonauLinzUser, +"Donau Linz", -"Unterstützend", -"Förderndes Mit
special_user!(SchnupperBetreuerUser, +"schnupper-betreuer");
special_user!(VorstandUser, +"Vorstand");
special_user!(EventUser, +"manage_events");
special_user!(AllowedToEditPaymentStatusUser, +"kassier", +"admin");
#[derive(FromRow, Serialize, Deserialize, Clone, Debug)]
pub struct UserWithRolesAndMembershipPdf {