pub enum Module {
Identity,
Community,
Ticketing,
Accounting,
Governance,
Maintenance,
Portfolio,
}Expand description
Les capacités que KoproGo sait allumer ou éteindre par copropriété.
Les variantes doivent rester alignées, dans les deux sens, sur la
contrainte acp_enabled_modules_module_check
(migrations/20260917000000_create_acp_enabled_modules.sql). La garde
garde_enum_contre_contrainte casse si l’une des deux listes devance
l’autre — c’est elle qui rend cet alignement vérifié plutôt que promis.
Le frontend tient la même liste dans frontend/src/lib/api/modules.ts
(MODULE_NAMES), dette documentée en tête de ce fichier-là, à résorber
en important les types générés dès que ce handler est au schéma OpenAPI.
Variants§
Identity
Identité, comptes, rôles. Toujours actif : sans lui, plus personne ne peut se connecter pour rallumer quoi que ce soit.
Community
Ticketing
Accounting
Governance
Maintenance
Portfolio
Implementations§
Source§impl Module
impl Module
Sourcepub fn est_toujours_actif(&self) -> bool
pub fn est_toujours_actif(&self) -> bool
Un module « toujours actif » ne peut pas être éteint (403).
Ce n’est pas une politique configurable : c’est une propriété de la
capacité. Éteindre identity rendrait l’ACP inaccessible et donc
irrécupérable par ses propres administrateurs.
Sourcepub fn depuis_nom(nom: &str) -> Option<Module>
pub fn depuis_nom(nom: &str) -> Option<Module>
Reconnaît un nom de module. None = nom inconnu, que l’appelant
traduit en 422 (Story 5.1 @negative : foobar).
Volontairement strict sur la casse : le nom vient d’un chemin
d’URL, et accepter Accounting comme accounting ferait diverger la
clé d’unicité en base du nom reçu.
Trait Implementations§
impl Copy for Module
Source§impl<'de> Deserialize<'de> for Module
impl<'de> Deserialize<'de> for Module
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Module
impl StructuralPartialEq for Module
Auto Trait Implementations§
impl Freeze for Module
impl RefUnwindSafe for Module
impl Send for Module
impl Sync for Module
impl Unpin for Module
impl UnsafeUnpin for Module
impl UnwindSafe for Module
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more