main: Use labadoor-auth
instead of the CSV module directly
This commit is contained in:
parent
2caad2a5ef
commit
e7c34865c5
6 changed files with 41 additions and 30 deletions
|
@ -5,7 +5,10 @@ edition = "2021"
|
|||
|
||||
[dependencies]
|
||||
clap = { version = "4.4.8", features = ["derive"] }
|
||||
config = "0.13.4"
|
||||
labadoor-acl = { path = "../labadoor-acl" }
|
||||
labadoor-csv = { path = "../labadoor-csv", optional = true }
|
||||
serde = { version = "1.0.193", features = ["derive"] }
|
||||
|
||||
[features]
|
||||
csv = ["dep:labadoor-csv"]
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use clap::{Parser, ValueEnum};
|
||||
use serde::Deserialize;
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
pub struct Cli {
|
||||
|
@ -29,3 +30,11 @@ pub struct Open {
|
|||
pub fn parse() -> Cli {
|
||||
Cli::parse()
|
||||
}
|
||||
|
||||
#[cfg(feature = "csv")]
|
||||
#[derive(Deserialize, Parser, Debug)]
|
||||
pub struct CSV {
|
||||
#[clap(short, long)]
|
||||
#[arg(default_value = "Some(String::from(\"/etc/labadoor\"))")]
|
||||
pub path: String,
|
||||
}
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
pub mod cli;
|
||||
pub mod to_config;
|
||||
use labadoor_acl::ACL;
|
||||
use to_config::ToConfig;
|
||||
|
||||
pub fn auth(i: &cli::Cli) {
|
||||
match i.command {
|
||||
cli::Command::Open(_) => todo!(),
|
||||
pub fn auth(i: &cli::Cli, config: config::Config) {
|
||||
let acl = match &i.backend {
|
||||
#[cfg(feature = "csv")]
|
||||
cli::Backend::CSV => config.get::<cli::CSV>("csv").unwrap().to_config().new(),
|
||||
};
|
||||
match &i.command {
|
||||
cli::Command::Open(open) => acl.auth_user(
|
||||
open.method.clone(),
|
||||
open.identifier.clone(),
|
||||
open.resource.clone(),
|
||||
),
|
||||
};
|
||||
}
|
||||
|
|
14
labadoor-auth/src/to_config.rs
Normal file
14
labadoor-auth/src/to_config.rs
Normal file
|
@ -0,0 +1,14 @@
|
|||
use crate::cli::*;
|
||||
|
||||
pub trait ToConfig<T> {
|
||||
fn to_config(&self) -> T;
|
||||
}
|
||||
|
||||
#[cfg(feature = "csv")]
|
||||
impl ToConfig<labadoor_csv::CSVArgs> for CSV {
|
||||
fn to_config(&self) -> labadoor_csv::CSVArgs {
|
||||
labadoor_csv::CSVArgs {
|
||||
path: self.path.clone(),
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue