]> jfr.im git - irc/quakenet/newserv.git/blame - noperserv/noperserv_policy.h
Implement notice flag +G for automated gline messages.
[irc/quakenet/newserv.git] / noperserv / noperserv_policy.h
CommitLineData
3e3692bf
CP
1#ifndef __NOPERSERV_POLICY_H
2#define __NOPERSERV_POLICY_H
3
4int noperserv_policy_command_permitted(flag_t level, nick *user);
5flag_t noperserv_policy_permitted_noticeflags(no_autheduser *target);
6void noperserv_policy_update_noticeflags(flag_t fwas, no_autheduser *target);
7flag_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)
3f5ead93 19#define NOIsRelay(user) (NOGetAuthLevel(user) & __NO_RELAY)
3e3692bf
CP
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))
3f5ead93 25#define NOIsLeastRelay(user) (NOGetAuthLevel(user) & (__NO_DEVELOPER | __NO_RELAY))
3e3692bf
CP
26
27#define NL_PEONIC_FLAGS NL_NOTICES
4e52c61d
GB
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
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
3e3692bf
CP
30#define NL_SEC_FLAGS NL_CLONING
31#define NL_TRUST_FLAGS NL_TRUSTS | NL_CLONING
32#define NL_DEV_FLAGS NL_ALL_COMMANDS
33
34#endif