aboutsummaryrefslogtreecommitdiff
path: root/src/field/utils/access_privileges.rs
blob: fabaef4994602fc867a209eb36cf8b3ceb304bbc (plain)
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
//! This module contains utilities to deal with the user access bitmap

pub const CAN_DELETE_FILES: u64 = 2_u64.pow(0);
pub const CAN_UPLOAD_FILES: u64 = 2_u64.pow(1);
pub const CAN_DOWNLOAD_FILES: u64 = 2_u64.pow(2);
pub const CAN_RENAME_FILES: u64 = 2_u64.pow(3);
pub const CAN_MOVE_FILES: u64 = 2_u64.pow(4);
pub const CAN_CREATE_FOLDERS: u64 = 2_u64.pow(5);
pub const CAN_DELETE_FOLDERS: u64 = 2_u64.pow(6);
pub const CAN_RENAME_FOLDERS: u64 = 2_u64.pow(7);
pub const CAN_MOVE_FOLDERS: u64 = 2_u64.pow(8);
pub const CAN_READ_CHATS: u64 = 2_u64.pow(9);
pub const CAN_SEND_CHATS: u64 = 2_u64.pow(10);
pub const CAN_OPEN_CHATS: u64 = 2_u64.pow(11);
pub const CAN_CLOSE_CHATS: u64 = 2_u64.pow(12);
pub const CAN_BE_SHOWN_IN_LIST: u64 = 2_u64.pow(13);
pub const CAN_CREATE_USERS: u64 = 2_u64.pow(14);
pub const CAN_DELETE_USERS: u64 = 2_u64.pow(15);
pub const CAN_OPEN_USERS: u64 = 2_u64.pow(16);
pub const CAN_MODIFY_USERS: u64 = 2_u64.pow(17);
pub const CAN_CHANGE_OWN_PASSWORD: u64 = 2_u64.pow(18);
pub const CAN_SEND_PRIVATE_MESSAGES: u64 = 2_u64.pow(19);
pub const CAN_READ_NEWS_ARTICLES: u64 = 2_u64.pow(20);
pub const CAN_POST_NEWS_ARTICLES: u64 = 2_u64.pow(21);
pub const CAN_DISCONNECT_USERS: u64 = 2_u64.pow(22);
pub const CANNOT_BE_DISCONNECTED: u64 = 2_u64.pow(23);
pub const CAN_GET_CLIENT_INFO: u64 = 2_u64.pow(24);
pub const CAN_UPLOAD_ANYWHERE: u64 = 2_u64.pow(25);
pub const CAN_USE_ANY_NAME: u64 = 2_u64.pow(26);
pub const CAN_SKIP_AGREEMENT: u64 = 2_u64.pow(27);
pub const CAN_SET_FILE_COMMENT: u64 = 2_u64.pow(28);
pub const CAN_SET_FOLDER_COMMENT: u64 = 2_u64.pow(29);
pub const CAN_VIEW_DROP_BOXES: u64 = 2_u64.pow(30);
pub const CAN_MAKE_ALIASES: u64 = 2_u64.pow(31);
pub const CAN_BROADCAST: u64 = 2_u64.pow(32);
pub const CAN_DELETE_NEWS_ARTICLES: u64 = 2_u64.pow(33);
pub const CAN_CREATE_NEWS_CATEGORIES: u64 = 2_u64.pow(34);
pub const CAN_DELETE_NEWS_CATEGORIES: u64 = 2_u64.pow(35);
pub const CAN_CREATE_NEWS_FOLDERS: u64 = 2_u64.pow(36);
pub const CAN_DELETE_NEWS_FOLDERS: u64 = 2_u64.pow(37);
pub const CAN_UPLOAD_FOLDERS: u64 = 2_u64.pow(38);
pub const CAN_DOWNLOAD_FOLDERS: u64 = 2_u64.pow(39);
pub const CAN_SEND_MESSAGES: u64 = 2_u64.pow(40);

#[must_use]
pub fn can(permission: u64, bits: u64) -> bool {
    bits & permission != 0
}