]> jfr.im git - irc/quakenet/newserv.git/blob - control/control_policy.h
BUILD: add require-all build mode
[irc/quakenet/newserv.git] / control / control_policy.h
1 #ifndef __NOPERSERV_POLICY_H
2 #define __NOPERSERV_POLICY_H
3
4 int noperserv_policy_command_permitted(flag_t level, nick *user);
5 flag_t noperserv_policy_permitted_noticeflags(no_autheduser *target);
6 void noperserv_policy_update_noticeflags(flag_t fwas, no_autheduser *target);
7 flag_t noperserv_policy_permitted_modifications(no_autheduser *au, no_autheduser *target);
8
9 #define NO_DEFAULT_LEVEL 0
10 #define NO_FIRST_USER_LEVEL __NO_DEVELOPER | __NO_OPER | __NO_STAFF | NO_DEFAULT_LEVEL
11 #define NO_DEFAULT_NOTICELEVEL NL_NOTICES
12 #define NO_FIRST_USER_DEFAULT_NOTICELEVEL NL_ALL | NO_DEFAULT_NOTICELEVEL
13
14 #define NOIsStaff(user) (NOGetAuthLevel(user) & __NO_STAFF)
15 #define NOIsTrust(user) (NOGetAuthLevel(user) & __NO_TRUST)
16 #define NOIsSec(user) (NOGetAuthLevel(user) & __NO_SEC)
17 #define NOIsOper(user) (NOGetAuthLevel(user) & __NO_OPER)
18 #define NOIsDeveloper(user) (NOGetAuthLevel(user) & __NO_DEVELOPER)
19 #define NOIsRelay(user) (NOGetAuthLevel(user) & __NO_RELAY)
20
21 #define NOIsLeastStaff(user) (NOGetAuthLevel(user) & (__NO_DEVELOPER | __NO_OPER | __NO_STAFF))
22 #define NOIsLeastOper(user) (NOGetAuthLevel(user) & (__NO_OPER | __NO_DEVELOPER))
23 #define NOIsLeastTrust(user) (NOGetAuthLevel(user) & (__NO_DEVELOPER | __NO_TRUST))
24 #define NOIsLeastSec(user) (NOGetAuthLevel(user) & (__NO_DEVELOPER | __NO_SEC))
25 #define NOIsLeastRelay(user) (NOGetAuthLevel(user) & (__NO_DEVELOPER | __NO_RELAY))
26
27 #define NL_PEONIC_FLAGS NL_NOTICES
28 #define NL_ALL NL_MANAGEMENT | NL_TRUSTS | NL_KICKKILLS | NL_MISC | NL_GLINES | NL_GLINES_AUTO | NL_HITS | NL_CLONING | NL_CLEARCHAN | NL_FAKEUSERS | NL_BROADCASTS | NL_OPERATIONS | NL_OPERING | NL_ALL_COMMANDS | NL_CLEANUP
29 #define NL_OPER_FLAGS NL_MANAGEMENT | NL_TRUSTS | NL_KICKKILLS | NL_MISC | NL_GLINES | NL_GLINES_AUTO | NL_HITS | NL_CLONING | NL_CLEARCHAN | NL_FAKEUSERS | NL_BROADCASTS | NL_OPERATIONS | NL_OPERING | NL_CLEANUP
30 #define NL_SEC_FLAGS NL_CLONING
31 #define NL_TRUST_FLAGS NL_TRUSTS | NL_CLONING | NL_CLEANUP
32 #define NL_DEV_FLAGS NL_ALL_COMMANDS
33
34 #endif