Restructuring: Move permission code in separate modules
This commit is contained in:
parent
b964063dbb
commit
82e89baeeb
12 changed files with 799 additions and 784 deletions
|
|
@ -4,6 +4,14 @@ use async_trait::async_trait;
|
|||
use mockall::automock;
|
||||
use thiserror::Error;
|
||||
|
||||
mod permission;
|
||||
|
||||
pub use permission::MockPermissionDao;
|
||||
pub use permission::PermissionDao;
|
||||
pub use permission::PrivilegeEntity;
|
||||
pub use permission::RoleEntity;
|
||||
pub use permission::UserEntity;
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum DaoError {
|
||||
#[error("Database query error: {0}")]
|
||||
|
|
@ -15,49 +23,3 @@ pub enum DaoError {
|
|||
pub trait HelloDao {
|
||||
async fn get_hello(&self) -> Result<Arc<str>, DaoError>;
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub struct UserEntity {
|
||||
pub name: Arc<str>,
|
||||
}
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub struct RoleEntity {
|
||||
pub name: Arc<str>,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub struct PrivilegeEntity {
|
||||
pub name: Arc<str>,
|
||||
}
|
||||
|
||||
#[automock]
|
||||
#[async_trait]
|
||||
pub trait PermissionDao {
|
||||
async fn has_privilege(&self, user: &str, privilege: &str) -> Result<bool, DaoError>;
|
||||
|
||||
async fn create_user(&self, user: &UserEntity, process: &str) -> Result<(), DaoError>;
|
||||
async fn all_users(&self) -> Result<Arc<[UserEntity]>, DaoError>;
|
||||
async fn delete_user(&self, username: &str) -> Result<(), DaoError>;
|
||||
|
||||
async fn create_role(&self, role: &RoleEntity, process: &str) -> Result<(), DaoError>;
|
||||
async fn all_roles(&self) -> Result<Arc<[RoleEntity]>, DaoError>;
|
||||
async fn delete_role(&self, rolename: &str) -> Result<(), DaoError>;
|
||||
|
||||
async fn create_privilege(
|
||||
&self,
|
||||
privilege: &PrivilegeEntity,
|
||||
process: &str,
|
||||
) -> Result<(), DaoError>;
|
||||
async fn all_privileges(&self) -> Result<Arc<[PrivilegeEntity]>, DaoError>;
|
||||
async fn delete_privilege(&self, privilege: &str) -> Result<(), DaoError>;
|
||||
|
||||
async fn add_user_role(&self, user: &str, role: &str, process: &str) -> Result<(), DaoError>;
|
||||
async fn add_role_privilege(
|
||||
&self,
|
||||
role: &str,
|
||||
privilege: &str,
|
||||
process: &str,
|
||||
) -> Result<(), DaoError>;
|
||||
async fn delete_role_privilege(&self, role: &str, privilege: &str) -> Result<(), DaoError>;
|
||||
async fn delete_user_role(&self, user: &str, role: &str) -> Result<(), DaoError>;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue