You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
733 B

//! Global config
use super::*;
/// Type of access
#[derive(Debug, PartialEq,Eq,Hash)]
pub enum Access
{
Allow,
Deny,
}
/// A permission entry for users
#[derive(Debug,PartialEq,Eq,Hash)]
pub enum UserPermAlias {
Single(String),
Group(String),
All,
}
/// Access rule for user
#[derive(Debug, PartialEq,Eq,Hash)]
pub struct UserRule
{
user: UserPermAlias,
mode: Access,
}
/// Global user config
#[derive(Debug)]
pub struct Config
{
/// The directories to find jobs in
pub job_dirs: Vec<PathBuf>,
/// The rules for users
pub user_rules: Vec<UserRule>,
}
impl Default for Config
{
#[inline]
fn default() -> Self
{
Self{job_dirs: Vec::new(), user_rules: Vec::new()}
}
}