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