diff options
author | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-03-20 02:22:12 +0000 |
---|---|---|
committer | cyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-03-20 02:22:12 +0000 |
commit | 5d56ed015890d6aafe6bf30cca657b520b4a8f60 (patch) | |
tree | d5ae42f63b59c8239c10a96596559e3cf7d1bdae /src | |
parent | 497aa0c012e9b196549edf1112106cc5c207f71b (diff) |
Fix bug #1030 for 1.9.x, patch by Adam, plus cosmetic tweaks, deleting from the channel access list now logs a message about the deleted items.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2179 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/core/cs_access.c | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/src/core/cs_access.c b/src/core/cs_access.c index 9812ac201..f144bda1b 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -238,42 +238,47 @@ class CommandCSAccess : public Command } /* Special case: is it a number/list? Only do search if it isn't. */ - if (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick)) { + if (isdigit(*nick) && strspn(nick, "1234567890,-") == strlen(nick)) + { int count, last = -1, perm = 0; deleted = process_numlist(nick, &count, access_del_callback, u, ci, &last, &perm, get_access(u, ci)); - if (!deleted) { - if (perm) { + if (!deleted) + { + if (perm) notice_lang(s_ChanServ, u, PERMISSION_DENIED); - } else if (count == 1) { + else if (count == 1) + { last = atoi(nick); - notice_lang(s_ChanServ, u, CHAN_ACCESS_NO_SUCH_ENTRY, - last, ci->name); - } else { - notice_lang(s_ChanServ, u, CHAN_ACCESS_NO_MATCH, - ci->name); + notice_lang(s_ChanServ, u, CHAN_ACCESS_NO_SUCH_ENTRY, last, ci->name); } - } else if (deleted == 1) { - notice_lang(s_ChanServ, u, CHAN_ACCESS_DELETED_ONE, - ci->name); - } else { - notice_lang(s_ChanServ, u, CHAN_ACCESS_DELETED_SEVERAL, - deleted, ci->name); + else + notice_lang(s_ChanServ, u, CHAN_ACCESS_NO_MATCH, ci->name); } - } else { + else + { + alog("%s: %s!%s@%s (level %d) deleted access of user%s %s on %s", s_ChanServ, u->nick, u->GetIdent().c_str(), u->host, get_access(u, ci), deleted == 1 ? "" : "s", nick, chan); + if (deleted == 1) + notice_lang(s_ChanServ, u, CHAN_ACCESS_DELETED_ONE, ci->name); + else + notice_lang(s_ChanServ, u, CHAN_ACCESS_DELETED_SEVERAL, deleted, ci->name); + } + } + else + { na = findnick(nick); - if (!na) { + if (!na) + { notice_lang(s_ChanServ, u, NICK_X_NOT_REGISTERED, nick); return MOD_CONT; } nc = na->nc; - for (i = 0; i < ci->accesscount; i++) { + for (i = 0; i < ci->accesscount; i++) if (ci->access[i].nc == nc) break; - } - if (i == ci->accesscount) { - notice_lang(s_ChanServ, u, CHAN_ACCESS_NOT_FOUND, nick, - chan); + if (i == ci->accesscount) + { + notice_lang(s_ChanServ, u, CHAN_ACCESS_NOT_FOUND, nick, chan); return MOD_CONT; } access = &ci->access[i]; @@ -281,9 +286,10 @@ class CommandCSAccess : public Command { deleted = 0; notice_lang(s_ChanServ, u, PERMISSION_DENIED); - } else { - notice_lang(s_ChanServ, u, CHAN_ACCESS_DELETED, - access->nc->display, ci->name); + } + else + { + notice_lang(s_ChanServ, u, CHAN_ACCESS_DELETED, access->nc->display, ci->name); alog("%s: %s!%s@%s (level %d) deleted access of %s (group %s) on %s", s_ChanServ, u->nick, u->GetIdent().c_str(), u->host, get_access(u, ci), na->nick, access->nc->display, chan); access->nc = NULL; access->in_use = 0; |