int csu_douserflags(void *source, int cargc, char **cargv) {
nick *sender=source;
reguser *rup=getreguserfromnick(sender), *target;
+ authname *anp;
int arg=0, wasorisoper;
flag_t flagmask, changemask, oldflags;
char flagbuf[30];
/* Warning, policy ahead */
+ if (UHasStaffPriv(rup))
+ changemask |= QUFLAG_PROTECT;
+
if (UHasOperPriv(rup))
changemask |= QUFLAG_PROTECT | QUFLAG_TRUST | QCFLAG_NOINFO;
wasorisoper |= UHasOperPriv(target);
/* More policy */
- if (!UHasHelperPriv(target)) {
+ if (!UHasStaffPriv(target)) {
target->flags &= ~QUFLAG_PROTECT;
}
#endif
}
csdb_updateuser(target);
+
+/* Disabled this for now as live ircu doesn't support it - splidge
+ if ((anp=findauthname(rup->ID)))
+ localusersetaccountflags(anp, cs_accountflagmap(target));
+ */
+
chanservstdmessage(sender, QM_DONE);
}