Просмотр исходного кода

* Add isowner() checking to cmd_config

svn: 1023
Bryan Drewery 22 лет назад
Родитель
Сommit
4777a2ea3a
2 измененных файлов с 19 добавлено и 0 удалено
  1. 1 0
      doc/UPDATES
  2. 18 0
      src/cmds.c

+ 1 - 0
doc/UPDATES

@@ -15,6 +15,7 @@ This is a summary of ChangeLog basically.
 11.Leaf bots weren't sharing partyline members on link.
 12.cfg: cmdprefix is now working as intended.
 13.Fixed a very obscure bug in auth/share that would corrupt the memory.
+14.Now only perm owners may change cfg settings: authkey, cmdprefix, hijack, bad-cookie, manop
 
 1.1.7
 

+ 18 - 0
src/cmds.c

@@ -319,6 +319,24 @@ static void cmd_config(struct userrec *u, int idx, char *par)
     dprintf(idx, "No such config entry\n");
     return;
   }
+  if (!isowner(u->handle)) {
+    int no = 0;
+    if (!egg_strcasecmp(name, "authkey"))
+      no++;
+    if (!egg_strcasecmp(name, "cmdprefix"))
+      no++;
+    if (!egg_strcasecmp(name, "hijack"))
+      no++;
+    if (!egg_strcasecmp(name, "bad-cookie"))
+      no++;
+    if (!egg_strcasecmp(name, "manop"))
+      no++;
+
+    if (no) {
+      dprintf(idx, "Only permanent owners may change '%s'.\n", name);
+      return;
+    }
+  }
   if (!par[0]) {
     cfgent->describe(cfgent, idx);
     if (!cfgent->gdata)