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}
15
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
17pub struct PrivilegeGrant {
18 pub on: ObjectId, pub privileges: Vec<Privilege>, pub grantee: ObjectId, pub with_grant_option: bool,
22}
23
24#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
25pub struct RoleState {
26 pub id: ObjectId, pub can_login: bool,
28 pub is_superuser: bool,
29 pub member_of: Vec<ObjectId>, pub can_set_role_to: Vec<ObjectId>,
34 pub granted_privileges: Vec<PrivilegeGrant>,
35}
36
37#[derive(Debug, Clone, PartialEq)]
38pub enum RoleOverlay {
39 Present(RoleState),
40 Dropped,
41}