feat: current state
This commit is contained in:
@@ -1,8 +1,68 @@
|
||||
#[derive(Debug, Clone)] pub struct DesiredPrivilegeProfile;
|
||||
#[derive(Debug, Clone)] pub struct PrivilegeScope;
|
||||
#[derive(Debug, Clone)] pub struct PrivilegeKind;
|
||||
#[derive(Debug, Clone)] pub struct RoleMembershipIntent;
|
||||
#[derive(Debug, Clone)] pub struct Grantability;
|
||||
#[derive(Debug, Clone)] pub struct PlanOperation;
|
||||
#[derive(Debug, Clone)] pub struct PermissionPlan;
|
||||
#[derive(Debug, Clone)] pub struct PlanResult;
|
||||
use crate::domain::ids::{AzureResourceId, DatabaseId, RoleName};
|
||||
use crate::error::SafeError;
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct DesiredPrivilegeProfile {
|
||||
pub role: RoleName,
|
||||
pub databases: Vec<DatabaseId>,
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum PrivilegeScope {
|
||||
Database,
|
||||
Schema(String),
|
||||
Table { schema: String, table: String },
|
||||
Sequence { schema: String, sequence: String },
|
||||
Function { schema: String, function: String },
|
||||
}
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum PrivilegeKind {
|
||||
Connect,
|
||||
Usage,
|
||||
Create,
|
||||
Select,
|
||||
Insert,
|
||||
Update,
|
||||
Delete,
|
||||
Truncate,
|
||||
References,
|
||||
Trigger,
|
||||
Execute,
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RoleMembershipIntent {
|
||||
pub role: RoleName,
|
||||
pub grantable: bool,
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Grantability {
|
||||
Grantable,
|
||||
NotGrantable(&'static str),
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct PlanOperation {
|
||||
pub scope: PrivilegeScope,
|
||||
pub privilege: PrivilegeKind,
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct DatabasePermissionPlan {
|
||||
pub database: DatabaseId,
|
||||
pub operations: Vec<PlanOperation>,
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct PermissionPlan {
|
||||
pub target_server: AzureResourceId,
|
||||
pub target_role: RoleName,
|
||||
pub databases: Vec<DatabasePermissionPlan>,
|
||||
pub memberships: Vec<RoleMembershipIntent>,
|
||||
pub password_will_be_set: bool,
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum PlanStepResult {
|
||||
Succeeded,
|
||||
Failed(SafeError),
|
||||
Skipped(&'static str),
|
||||
}
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct PlanResult {
|
||||
pub database: Option<DatabaseId>,
|
||||
pub steps: Vec<PlanStepResult>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user