restricted kill and gline command from SpamServ
[srvx.git] / src / spamserv.c
index e15008e76d6e48814694351e846279bc184be227..a6fcc606db3dcb45e6fc62e91645e689413739ae 100644 (file)
@@ -1601,21 +1601,29 @@ static SPAMSERV_FUNC(cmd_setbad)
                                   reply("SSMSG_BADWORD_SET_DONE");
                         }
                         else if(!strcmp("ACTION",setting)) {
-                                 if (!strcmp("1",value) || !strcmp("KICK",value)) {
-                                        badword->action = BADACTION_KICK;
-                                        reply("SSMSG_BADWORD_SET_DONE");
-                                 } else if (!strcmp("2",value) || !strcmp("BAN",value)) {
-                                        badword->action = BADACTION_BAN;
-                                        reply("SSMSG_BADWORD_SET_DONE");
-                                 } else if (!strcmp("3",value) || !strcmp("KILL",value)) {
-                                        badword->action = BADACTION_KILL;
-                                        reply("SSMSG_BADWORD_SET_DONE");
-                                 } else if (!strcmp("4",value) || !strcmp("GLINE",value)) {
-                                        badword->action = BADACTION_GLINE;
-                                        reply("SSMSG_BADWORD_SET_DONE");
-                                 } else {
-                                        reply("SSMSG_BADWORD_SET_INVALID", setting);
-                                 }
+                           if (!strcmp("1",value) || !strcmp("KICK",value)) {
+                                   badword->action = BADACTION_KICK;
+                                   reply("SSMSG_BADWORD_SET_DONE");
+                               } else if (!strcmp("2",value) || !strcmp("BAN",value)) {
+                                       badword->action = BADACTION_BAN;
+                                   reply("SSMSG_BADWORD_SET_DONE");
+                               } else if (!strcmp("3",value) || !strcmp("KILL",value)) {
+                    if(IsOper(user)) {
+                        badword->action = BADACTION_KILL;
+                        reply("SSMSG_BADWORD_SET_DONE");
+                    } else {
+                        reply("SSMSG_NO_ACCESS");
+                    }
+                               } else if (!strcmp("4",value) || !strcmp("GLINE",value)) {
+                    if(IsOper(user)) {
+                        badword->action = BADACTION_GLINE;
+                        reply("SSMSG_BADWORD_SET_DONE");
+                    } else {
+                        reply("SSMSG_NO_ACCESS");
+                    }
+                               } else {
+                                   reply("SSMSG_BADWORD_SET_INVALID", setting);
+                           }
                         } else {
                                  reply("SSMSG_BADWORD_SETTING_INVALID", setting);
                         }