added status "network"
[srvx.git] / src / chanserv.c
index 0ebed1b8d33504c411a1c85bb506e934fe751337..d99ed500156bbe6f9c9309562920ba34fe271ee2 100644 (file)
@@ -2382,7 +2382,7 @@ static CHANSERV_FUNC(cmd_move)
 
     REQUIRE_PARAMS(2);
 
-    if(IsProtected(channel->channel_info) && !IsOper(user))
+    if(IsProtected(channel->channel_info))
     {
         reply("CSMSG_MOVE_NODELETE", channel->name);
         return 0;
@@ -2690,7 +2690,7 @@ static CHANSERV_FUNC(cmd_merge)
         return 0;
     }
 
-    if(IsProtected(channel->channel_info) && !IsOper(user))
+    if(IsProtected(channel->channel_info))
     {
         reply("CSMSG_MERGE_NODELETE");
         return 0;
@@ -4167,6 +4167,8 @@ cmd_list_users(struct userNode *user, struct chanNode *channel, unsigned int arg
         ary[1] = uData->handle->handle;
         if(uData->present)
             ary[2] = "Here";
+        else if(HANDLE_FLAGGED(uData->handle, NETWORK))
+             ary[2] = "Here";
         else if(!uData->seen)
             ary[2] = "Never";
         else
@@ -4174,6 +4176,12 @@ cmd_list_users(struct userNode *user, struct chanNode *channel, unsigned int arg
         ary[2] = strdup(ary[2]);
         if(IsUserSuspended(uData))
             ary[3] = "Suspended";
+        else if(HANDLE_FLAGGED(uData->handle, OPER))
+            ary[3] = "Operator";
+        else if(HANDLE_FLAGGED(uData->handle, HELPING))
+            ary[3] = "Staff";
+        else if(HANDLE_FLAGGED(uData->handle, NETWORK))
+            ary[3] = "Network";
         else if(HANDLE_FLAGGED(uData->handle, FROZEN))
             ary[3] = "Vacation";
         else if(HANDLE_FLAGGED(uData->handle, BOT))
@@ -5409,7 +5417,7 @@ static CHANSERV_FUNC(cmd_csuspend)
 
     REQUIRE_PARAMS(3);
 
-    if(IsProtected(channel->channel_info) && !IsOper(user))
+    if(IsProtected(channel->channel_info))
     {
         reply("CSMSG_SUSPEND_NODELETE", channel->name);
         return 0;