safe_migrate/model/
role.rs1use crate::ast::identifiers::ObjectId;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub enum Privilege {
6 Select,
7 Insert,
8 Update,
9 Delete,
10 Truncate,
11 References,
12 Trigger,
13 All,
14 Maintain,
16}
17
18#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
19pub struct PrivilegeGrant {
20 pub on: ObjectId, pub privileges: Vec<Privilege>, pub grantee: ObjectId, pub with_grant_option: bool,
24}
25
26#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
27pub struct RoleState {
28 pub id: ObjectId, pub can_login: bool,
30 pub is_superuser: bool,
31 pub member_of: Vec<ObjectId>, pub can_set_role_to: Vec<ObjectId>,
36 pub granted_privileges: Vec<PrivilegeGrant>,
37}
38
39#[derive(Debug, Clone, PartialEq)]
40pub enum RoleOverlay {
41 Present(RoleState),
42 Dropped,
43}