File size: 1,655 Bytes
9552aa0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
use crate::ferron_util::ip_blocklist::IpBlockList;
use fancy_regex::Regex;

#[allow(dead_code)]
pub struct NonStandardCode {
  pub status_code: u16,
  pub url: Option<String>,
  pub regex: Option<Regex>,
  pub location: Option<String>,
  pub realm: Option<String>,
  pub disable_brute_force_protection: bool,
  pub user_list: Option<Vec<String>>,
  pub users: Option<IpBlockList>,
}

impl NonStandardCode {
  #[allow(clippy::too_many_arguments)]
  pub fn new(
    status_code: u16,
    url: Option<String>,
    regex: Option<Regex>,
    location: Option<String>,
    realm: Option<String>,
    disable_brute_force_protection: bool,
    user_list: Option<Vec<String>>,
    users: Option<IpBlockList>,
  ) -> Self {
    Self {
      status_code,
      url,
      regex,
      location,
      realm,
      disable_brute_force_protection,
      user_list,
      users,
    }
  }
}

pub struct NonStandardCodesWrap {
  pub domain: Option<String>,
  pub ip: Option<String>,
  pub non_standard_codes: Vec<NonStandardCode>,
  pub locations: Vec<NonStandardCodesLocationWrap>,
}

impl NonStandardCodesWrap {
  pub fn new(
    domain: Option<String>,
    ip: Option<String>,
    non_standard_codes: Vec<NonStandardCode>,
    locations: Vec<NonStandardCodesLocationWrap>,
  ) -> Self {
    Self {
      domain,
      ip,
      non_standard_codes,
      locations,
    }
  }
}

pub struct NonStandardCodesLocationWrap {
  pub path: String,
  pub non_standard_codes: Vec<NonStandardCode>,
}

impl NonStandardCodesLocationWrap {
  pub fn new(path: String, non_standard_codes: Vec<NonStandardCode>) -> Self {
    Self {
      path,
      non_standard_codes,
    }
  }
}