kanidmd_lib/server/access/
protected.rs1use crate::prelude::EntryClass;
2use std::collections::BTreeSet;
3use std::sync::LazyLock;
4
5pub static PROTECTED_ENTRY_CLASSES: LazyLock<BTreeSet<String>> = LazyLock::new(|| {
8 let classes = vec![
9 EntryClass::System,
10 EntryClass::DomainInfo,
11 EntryClass::SystemInfo,
12 EntryClass::SystemConfig,
13 EntryClass::DynGroup,
14 EntryClass::SyncObject,
15 EntryClass::Tombstone,
16 EntryClass::Recycled,
17 ];
18
19 BTreeSet::from_iter(classes.into_iter().map(|ec| ec.into()))
20});
21
22pub static PROTECTED_MOD_ENTRY_CLASSES: LazyLock<BTreeSet<String>> = LazyLock::new(|| {
29 let classes = vec![
30 EntryClass::System,
31 EntryClass::DomainInfo,
32 EntryClass::SystemInfo,
33 EntryClass::SystemConfig,
34 EntryClass::DynGroup,
35 EntryClass::Tombstone,
37 EntryClass::Recycled,
38 ];
39
40 BTreeSet::from_iter(classes.into_iter().map(|ec| ec.into()))
41});
42
43pub static PROTECTED_MOD_PRES_ENTRY_CLASSES: LazyLock<BTreeSet<String>> = LazyLock::new(|| {
45 let classes = vec![
46 EntryClass::System,
47 EntryClass::DomainInfo,
48 EntryClass::SystemInfo,
49 EntryClass::SystemConfig,
50 EntryClass::DynGroup,
51 EntryClass::SyncObject,
52 EntryClass::Tombstone,
53 EntryClass::Recycled,
54 ];
55
56 BTreeSet::from_iter(classes.into_iter().map(|ec| ec.into()))
57});
58
59pub static PROTECTED_MOD_REM_ENTRY_CLASSES: LazyLock<BTreeSet<String>> = LazyLock::new(|| {
61 let classes = vec![
62 EntryClass::System,
63 EntryClass::DomainInfo,
64 EntryClass::SystemInfo,
65 EntryClass::SystemConfig,
66 EntryClass::DynGroup,
67 EntryClass::SyncObject,
68 EntryClass::Tombstone,
69 ];
71
72 BTreeSet::from_iter(classes.into_iter().map(|ec| ec.into()))
73});
74
75pub static LOCKED_ENTRY_CLASSES: LazyLock<BTreeSet<String>> = LazyLock::new(|| {
77 let classes = vec![
78 EntryClass::Tombstone,
79 ];
81
82 BTreeSet::from_iter(classes.into_iter().map(|ec| ec.into()))
83});