1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
pub mod perms {
    pub const READ: i32 = 1 << 0;
    pub const WRITE: i32 = 1 << 1;
    pub const CREATE: i32 = 1 << 2;
    pub const DELETE: i32 = 1 << 3;
    pub const ADMIN: i32 = 1 << 4;
    pub const ALL: i32 = READ | WRITE | CREATE | DELETE | ADMIN;
}

pub mod acls {
    use ::perms;
    use proto::Acl;

    fn acl(perm: i32, scheme: &str, id: &str) -> Vec<Acl> {
        vec![Acl{perms: perm, scheme: scheme.to_string(), id: id.to_string()}]
    }

    lazy_static!{
        pub static ref CREATOR_ALL_ACL: Vec<Acl> = acl(perms::ALL, "auth", "");
        pub static ref OPEN_ACL_UNSAFE: Vec<Acl> = acl(perms::ALL, "world", "anyone");
        pub static ref READ_ACL_UNSAFE: Vec<Acl> = acl(perms::READ, "world", "anyone");
    }
}