staticlib/model/
access_rights.rs

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
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone, Default)]
#[serde(rename_all = "camelCase")]
pub struct AccessRights {
    pub can_list_children: bool,
    pub can_add_children: bool,
    pub can_remove_children: bool,
    pub can_delete: bool,
    pub can_rename: bool,
    pub can_copy: bool,
    pub can_edit: bool,
    pub can_download: bool,
}

impl AccessRights {
    pub fn default(permissions: &str) -> AccessRights {
        AccessRights {
            can_list_children: true,
            can_add_children: true,
            can_remove_children: true,
            can_delete: permissions.chars().nth(1).unwrap() == 'w',
            can_rename: true,
            can_copy: true,
            can_edit: permissions.chars().nth(1).unwrap() == 'w',
            can_download: permissions.chars().nth(0).unwrap() == 'r',
        }
    }
}