uqa_core/catalog_sequence/
security.rs1use super::{SequenceAclEntry, SequencePrivileges};
10use crate::catalog_role::{BoundAclEntry, RoleIdentity};
11use serde::{Deserialize, Serialize};
12
13#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
14#[serde(deny_unknown_fields)]
15pub struct BoundSequenceSecurity {
16 pub role_owner: RoleIdentity,
17 #[serde(deserialize_with = "Deserialize::deserialize")]
19 pub acl: Option<Vec<BoundAclEntry<SequencePrivileges>>>,
20}
21
22impl BoundSequenceSecurity {
23 pub fn owner(role_owner: RoleIdentity) -> Self {
24 Self {
25 role_owner,
26 acl: None,
27 }
28 }
29}
30
31#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
33#[serde(deny_unknown_fields)]
34pub struct LegacySequenceSecurity {
35 #[serde(default = "legacy_owner")]
36 pub role_owner: String,
37 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub acl: Option<Vec<SequenceAclEntry>>,
39}
40
41impl LegacySequenceSecurity {
42 pub fn owner(role_owner: impl Into<String>) -> Self {
43 Self {
44 role_owner: role_owner.into(),
45 acl: None,
46 }
47 }
48}
49
50fn legacy_owner() -> String {
51 "uqa".into()
52}