{ 'o', QUFLAG_OPER },
{ 'p', QUFLAG_PROTECT },
{ 'r', QUFLAG_RESTRICTED },
+ { 'T', QUFLAG_TRUST },
{ 'z', QUFLAG_SUSPENDED },
{ '\0', 0 } };
#define QUFLAG_DELAYEDGLINE 0x0800 /* +G */
#define QUFLAG_NOAUTHLIMIT 0x1000 /* +L */
#define QUFLAG_CLEANUPEXEMPT 0x4000 /* +D */
-#define QUFLAG_ALL 0x1fff
+#define QUFLAG_TRUST 0x8000 /* +T */
+#define QUFLAG_ALL 0xdfff
#define UIsNeedAuth(x) ((x)->flags & QUFLAG_NEEDAUTH)
#define UIsGline(x) ((x)->flags & QUFLAG_GLINE)
QCFLAG_PROTECT|QCFLAG_TOPICSAVE|QCFLAG_VOICEALL| \
QCFLAG_WELCOME|QCFLAG_KNOWNONLY)
-#define QCFLAG_ALL 0x7fff
+#define QCFLAG_ALL 0x7bff
/* Channel user ("chanlev") flags */
#define QCUFLAGS_PERSONAL (QCUFLAG_HIDEINFO | QCUFLAG_HIDEWELCOME | QCUFLAG_AUTOINVITE)
-#define QCUFLAG_ALL 0xffff
+#define QCUFLAG_ALL 0xffdf
#define CUIsOwner(x) ((x)->flags & QCUFLAG_OWNER)
#define CUIsMaster(x) ((x)->flags & QCUFLAG_MASTER)
/* Warning, policy ahead */
if (UHasOperPriv(rup))
- changemask |= QUFLAG_GLINE | QUFLAG_DELAYEDGLINE | QUFLAG_RESTRICTED | QUFLAG_PROTECT;
+ changemask |= QUFLAG_GLINE | QUFLAG_DELAYEDGLINE | QUFLAG_RESTRICTED | QUFLAG_PROTECT | QUFLAG_TRUST;
if (UHasAdminPriv(rup))
- changemask |= (QUFLAG_OPER | QUFLAG_HELPER);
+ changemask |= (QUFLAG_OPER | QUFLAG_HELPER | QUFLAG_CLEANUPEXEMPT);
if (UIsDev(rup))
changemask=QUFLAG_ALL;