]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/usercmds/userflags.c
Merge.
[irc/quakenet/newserv.git] / chanserv / usercmds / userflags.c
index e29ec6406a8ef61f8b2ca4cdac71feb3dcc01422..17b8a4cfd6cef9a1ef4037214a002705c7ed9ae2 100644 (file)
@@ -23,6 +23,7 @@
 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];
@@ -65,6 +66,9 @@ int csu_douserflags(void *source, int cargc, char **cargv) {
 
     /* Warning, policy ahead */
 
+    if (UHasStaffPriv(rup))
+      changemask |= QUFLAG_PROTECT;
+
     if (UHasOperPriv(rup))
       changemask |= QUFLAG_PROTECT | QUFLAG_TRUST | QCFLAG_NOINFO;
 
@@ -79,7 +83,7 @@ int csu_douserflags(void *source, int cargc, char **cargv) {
     wasorisoper |= UHasOperPriv(target);
 
     /* More policy */
-    if (!UHasHelperPriv(target)) {
+    if (!UHasStaffPriv(target)) {
       target->flags &= ~QUFLAG_PROTECT;
     }
 
@@ -95,6 +99,12 @@ int csu_douserflags(void *source, int cargc, char **cargv) {
 #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);
   }