diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-03-22 14:24:40 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-03-22 14:24:40 +0000 |
commit | 2225f58c39d004e3fac4ec38e52daeb9884727be (patch) | |
tree | 031432698527695f7a603fe6691da60748738905 /src/nickserv.c | |
parent | f005ab7da5ecd27df280057b926033ffb97ac292 (diff) |
BUILD : 1.7.8 (640) BUGS : 323 NOTES : Fixed /ns update setting +a if you had rights to get +q but already had it
git-svn-id: svn://svn.anope.org/anope/trunk@640 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@488 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/nickserv.c')
-rw-r--r-- | src/nickserv.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/src/nickserv.c b/src/nickserv.c index fd5f3b5e0..61a14c3b5 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -2659,35 +2659,11 @@ static int do_setmodes(User * u) { struct u_chanlist *uc; Channel *c; - char *chan; /* Walk users current channels */ for (uc = u->chans; uc; uc = uc->next) { - if ((c = uc->chan)) { - chan = c->name; - if (ircd->owner && should_mode_change(uc->status, CUS_OWNER) - && check_should_owner(u, chan)) { - chan_set_user_status(c, u, CUS_OWNER); - } else if (ircd->protect - && should_mode_change(uc->status, CUS_PROTECT) - && check_should_protect(u, chan)) { - chan_set_user_status(c, u, CUS_PROTECT); - } else if (ircd->admin - && should_mode_change(uc->status, CUS_PROTECT) - && check_should_protect(u, chan)) { - chan_set_user_status(c, u, CUS_PROTECT); - } else if (should_mode_change(uc->status, CUS_OP) - && check_should_op(u, chan)) { - chan_set_user_status(c, u, CUS_OP); - } else if (ircd->halfop - && should_mode_change(uc->status, CUS_HALFOP) - && check_should_halfop(u, chan)) { - chan_set_user_status(c, u, CUS_HALFOP); - } else if (should_mode_change(uc->status, CUS_VOICE) - && check_should_voice(u, chan)) { - chan_set_user_status(c, u, CUS_VOICE); - } - } + if ((c = uc->chan)) + chan_set_correct_modes(u, c); } return MOD_CONT; } |