]> jfr.im git - irc/quakenet/newserv.git/blame - chanserv/chanserv_flags.c
A4STATS: remove E style escapes and switch to createtable for indices
[irc/quakenet/newserv.git] / chanserv / chanserv_flags.c
CommitLineData
dbbee796 1#define CS_NODB
3294b10b 2#include "../chanserv/chanserv.h"
dbbee796 3#undef CS_NODB
3294b10b 4
7f32dbdf
P
5#include "../lib/version.h"
6
7MODULE_VERSION(QVERSION);
8
3294b10b
CP
9const flag rcflags[] = {
10 { 'a', QCFLAG_AUTOOP },
11 { 'b', QCFLAG_BITCH },
12 { 'c', QCFLAG_AUTOLIMIT },
13 { 'e', QCFLAG_ENFORCE },
14 { 'f', QCFLAG_FORCETOPIC },
15 { 'g', QCFLAG_AUTOVOICE },
58a9529d 16 { 'h', QCFLAG_ACHIEVEMENTS },
3294b10b
CP
17 { 'i', QCFLAG_INFO },
18 { 'j', QCFLAG_JOINED },
19 { 'k', QCFLAG_KNOWNONLY },
20 { 'p', QCFLAG_PROTECT },
21 { 's', QCFLAG_NOINFO },
22 { 't', QCFLAG_TOPICSAVE },
23 { 'v', QCFLAG_VOICEALL },
24 { 'w', QCFLAG_WELCOME },
25 { 'z', QCFLAG_SUSPENDED },
26 { '\0', 0 } };
27
28const flag rcuflags[] = {
29 { 'a', QCUFLAG_AUTOOP },
30 { 'b', QCUFLAG_BANNED },
31 { 'd', QCUFLAG_DENY },
32 { 'g', QCUFLAG_AUTOVOICE },
33 { 'i', QCUFLAG_INFO },
34 { 'j', QCUFLAG_AUTOINVITE },
35 { 'k', QCUFLAG_KNOWN },
36 { 'm', QCUFLAG_MASTER },
37 { 'n', QCUFLAG_OWNER },
38 { 'o', QCUFLAG_OP },
39 { 'p', QCUFLAG_PROTECT },
40 { 'q', QCUFLAG_QUIET },
41 { 's', QCUFLAG_NOINFO },
42 { 't', QCUFLAG_TOPIC },
43 { 'v', QCUFLAG_VOICE },
44 { 'w', QCUFLAG_HIDEWELCOME },
45
46 { '\0', 0 } };
47
48const flag ruflags[] = {
49 { 'a', QUFLAG_ADMIN },
58a9529d 50 { 'c', QUFLAG_ACHIEVEMENTS },
3294b10b
CP
51 { 'd', QUFLAG_DEV },
52 { 'D', QUFLAG_CLEANUPEXEMPT },
53 { 'g', QUFLAG_GLINE },
54 { 'G', QUFLAG_DELAYEDGLINE },
55 { 'h', QUFLAG_HELPER },
56 { 'i', QUFLAG_INFO },
57 { 'L', QUFLAG_NOAUTHLIMIT },
58 { 'n', QUFLAG_NOTICE },
59 { 'o', QUFLAG_OPER },
60 { 'p', QUFLAG_PROTECT },
61 { 'q', QUFLAG_STAFF },
caee16ec
CP
62// { 's', QUFLAG_NOINFO },
63 { 'I', QUFLAG_INACTIVE },
3294b10b
CP
64 { 'T', QUFLAG_TRUST },
65 { 'z', QUFLAG_SUSPENDED },
66 { '\0', 0 } };
67
68const flag mdflags[] = {
69 { 'l', MDFLAG_LIMIT },
70 { 'b', MDFLAG_BANNED },
71 { 'u', MDFLAG_ACTLIMIT },
72 { '\0', 0 } };
73
92acf9ae 74u_int64_t cs_accountflagmap(reguser *rup) {
3294b10b
CP
75 authname a2, *a = &a2;
76 a->flags = 0;
77
78 if(UIsOper(rup))
79 SetOperFlag(a);
80
81 if(UIsDev(rup))
82 SetDeveloper(a);
83
84 if(UIsAdmin(rup))
85 SetAdmin(a);
86
87 if(UIsStaff(rup))
88 SetStaff(a);
89
90 if(UIsHelper(rup))
91 SetSupport(a);
92
93 return a->flags;
94}
95
92acf9ae 96u_int64_t cs_accountflagmap_str(char *flags) {
3294b10b
CP
97 reguser r2, *r = &r2;
98
99 setflags(&r->flags, QUFLAG_ALL, flags, ruflags, REJECT_NONE);
100
101 return cs_accountflagmap(r);
102}