summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2009-03-20 02:22:12 +0000
committercyberbotx <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>2009-03-20 02:22:12 +0000
commit5d56ed015890d6aafe6bf30cca657b520b4a8f60 (patch)
treed5ae42f63b59c8239c10a96596559e3cf7d1bdae /src
parent497aa0c012e9b196549edf1112106cc5c207f71b (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.c56
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;