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
|
// SPDX-License-Identifier: GPL-3.0-or-later
#include "../libnetdata.h"
static struct {
HTTP_ACCESS access;
const char *name;
} access_levels[] = {
{ .access = HTTP_ACCESS_NONE, .name = "none" },
{ .access = HTTP_ACCESS_MEMBER, .name = "member" },
{ .access = HTTP_ACCESS_ADMIN, .name = "admin" },
{ .access = HTTP_ACCESS_ANY, .name = "any" },
{ .access = HTTP_ACCESS_MEMBER, .name = "members" },
{ .access = HTTP_ACCESS_ADMIN, .name = "admins" },
{ .access = HTTP_ACCESS_ANY, .name = "all" },
// terminator
{ .access = 0, .name = NULL },
};
HTTP_ACCESS http_access2id(const char *access) {
if(!access || !*access)
return HTTP_ACCESS_MEMBER;
for(size_t i = 0; access_levels[i].name ;i++) {
if(strcmp(access_levels[i].name, access) == 0)
return access_levels[i].access;
}
nd_log(NDLS_DAEMON, NDLP_WARNING, "HTTP access level '%s' is not valid", access);
return HTTP_ACCESS_NONE;
}
const char *http_id2access(HTTP_ACCESS access) {
for(size_t i = 0; access_levels[i].name ;i++) {
if(access == access_levels[i].access)
return access_levels[i].name;
}
nd_log(NDLS_DAEMON, NDLP_WARNING, "HTTP access level %d is not valid", access);
return "none";
}
|