diff options
Diffstat (limited to 'src')
76 files changed, 314 insertions, 291 deletions
diff --git a/src/channels.c b/src/channels.c index a6f998f65..4f764b8fc 100644 --- a/src/channels.c +++ b/src/channels.c @@ -166,7 +166,7 @@ void Channel::JoinUser(User *user) if (Config.s_BotServ && this->ci && this->ci->bi) { if (this->users.size() >= Config.BSMinUsers && (this->ci->botflags.HasFlag(BS_GREET)) - && user->nc && user->nc->greet && check_access(user, this->ci, CA_GREET)) + && user->Account() && user->Account()->greet && check_access(user, this->ci, CA_GREET)) { /* Only display the greet if the main uplink we're connected * to has synced, or we'll get greet-floods when the net @@ -174,7 +174,7 @@ void Channel::JoinUser(User *user) */ if (is_sync(user->server)) { - ircdproto->SendPrivmsg(this->ci->bi, this->name.c_str(), "[%s] %s", user->nc->display, user->nc->greet); + ircdproto->SendPrivmsg(this->ci->bi, this->name.c_str(), "[%s] %s", user->Account()->display, user->Account()->greet); this->ci->bi->lastmsg = time(NULL); } } @@ -1138,7 +1138,7 @@ User *nc_on_chan(Channel * c, NickCore * nc) { UserContainer *uc = *it; - if (uc->user->nc == nc) + if (uc->user->Account() == nc) return uc->user; } return NULL; @@ -1474,7 +1474,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes) Alog(LOG_DEBUG) << "Setting correct user modes for " << user->nick << " on " << c->name << " (" << (give_modes ? "" : "not ") << "giving modes)"; - if (give_modes && !get_ignore(user->nick.c_str()) && (!user->nc || !user->nc->HasFlag(NI_AUTOOP))) + if (give_modes && !get_ignore(user->nick.c_str()) && (!user->Account() || !user->Account()->HasFlag(NI_AUTOOP))) { if (owner && check_access(user, ci, CA_AUTOOWNER)) c->SetMode(NULL, CMODE_OWNER, user->nick); diff --git a/src/chanserv.c b/src/chanserv.c index deb0f139c..fd69ec8d0 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -520,7 +520,7 @@ int check_should_op(User * user, char *chan) if (!ci || (ci->HasFlag(CI_FORBIDDEN)) || *chan == '+') return 0; - if ((ci->HasFlag(CI_SECURE)) && !nick_identified(user)) + if ((ci->HasFlag(CI_SECURE)) && !user->IsIdentified()) return 0; if (check_access(user, ci, CA_AUTOOP)) @@ -544,7 +544,7 @@ int check_should_voice(User * user, char *chan) if (!ci || (ci->HasFlag(CI_FORBIDDEN)) || *chan == '+') return 0; - if ((ci->HasFlag(CI_SECURE)) && !nick_identified(user)) + if ((ci->HasFlag(CI_SECURE)) && !user->IsIdentified()) return 0; if (check_access(user, ci, CA_AUTOVOICE)) @@ -648,8 +648,8 @@ bool ChannelInfo::CheckKick(User *user) do_kick = true; } - if (user->nc || user->IsRecognized()) - nc = user->nc; + if (user->Account() || user->IsRecognized()) + nc = user->Account(); else nc = NULL; @@ -1084,8 +1084,8 @@ bool IsFounder(User *user, ChannelInfo *ci) if (IsRealFounder(user, ci)) return true; - if (user->nc) - access = ci->GetAccess(user->nc); + if (user->Account()) + access = ci->GetAccess(user->Account()); else { NickAlias *na = findnick(user->nick); @@ -1094,7 +1094,7 @@ bool IsFounder(User *user, ChannelInfo *ci) } /* If they're QOP+ and theyre identified or theyre recognized and the channel isn't secure */ - if (access && access->level >= ACCESS_QOP && (user->nc || (user->IsRecognized() && !(ci->HasFlag(CI_SECURE))))) + if (access && access->level >= ACCESS_QOP && (user->Account() || (user->IsRecognized() && !(ci->HasFlag(CI_SECURE))))) return true; return false; @@ -1113,7 +1113,7 @@ bool IsRealFounder(User *user, ChannelInfo *ci) if (user->isSuperAdmin) return true; - if (user->nc && user->nc == ci->founder) + if (user->Account() && user->Account() == ci->founder) return true; return false; @@ -1141,9 +1141,9 @@ int get_access(User *user, ChannelInfo *ci) if (IsFounder(user, ci)) return ACCESS_FOUNDER; - if (nick_identified(user)) + if (user->IsIdentified()) { - access = ci->GetAccess(user->nc); + access = ci->GetAccess(user->Account()); if (access) return access->level; } @@ -1165,12 +1165,12 @@ void update_cs_lastseen(User * user, ChannelInfo * ci) { ChanAccess *access; - if (!ci || !user || !user->nc) + if (!ci || !user || !user->Account()) return; - if (IsFounder(user, ci) || nick_identified(user) + if (IsFounder(user, ci) || user->IsIdentified() || (user->IsRecognized() && !ci->HasFlag(CI_SECURE))) - if ((access = ci->GetAccess(user->nc))) + if ((access = ci->GetAccess(user->Account()))) access->last_seen = time(NULL); } diff --git a/src/commands.c b/src/commands.c index 4e3b36e7a..ba97c931a 100644 --- a/src/commands.c +++ b/src/commands.c @@ -68,7 +68,7 @@ void mod_run_cmd(const std::string &service, User * u, CommandHash * cmdTable[], if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED)) { // Command requires registered users only - if (!nick_identified(u)) + if (!u->IsIdentified()) { notice_lang(service, u, NICK_IDENTIFY_REQUIRED, Config.s_NickServ); Alog() << "Access denied for unregistered user " << u->nick << " with service " << service << " and command " << cmd; @@ -150,7 +150,7 @@ void mod_run_cmd(const std::string &service, User * u, CommandHash * cmdTable[], // If the command requires a permission, and they aren't registered or don't have the required perm, DENIED if (!c->permission.empty()) { - if (!u->nc->HasCommand(c->permission)) + if (!u->Account()->HasCommand(c->permission)) { notice_lang(service, u, ACCESS_DENIED); Alog() << "Access denied for user " << u->nick << " with service " << service << " and command " << cmd; @@ -198,10 +198,10 @@ void mod_help_cmd(char *service, User * u, CommandHash * cmdTable[], const char notice_lang(service, u, COMMAND_REQUIRES_PERM, c->permission.c_str()); /* User isn't identified and needs to be to use this command */ - if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED) && !nick_identified(u)) + if (!c->HasFlag(CFLAG_ALLOW_UNREGISTERED) && !u->IsIdentified()) notice_lang(service, u, COMMAND_IDENTIFY_REQUIRED); /* User doesn't have the proper permission to use this command */ - else if (!c->permission.empty() && (!u->nc || (!u->nc->HasCommand(c->permission)))) + else if (!c->permission.empty() && (!u->Account() || (!u->Account()->HasCommand(c->permission)))) notice_lang(service, u, COMMAND_CANNOT_USE); /* User can use this command */ else diff --git a/src/core/bs_assign.c b/src/core/bs_assign.c index af2ad87f9..d518a6a9b 100644 --- a/src/core/bs_assign.c +++ b/src/core/bs_assign.c @@ -43,13 +43,13 @@ class CommandBSAssign : public Command ci = cs_findchan(chan); - if (ci->botflags.HasFlag(BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !u->nc->HasPriv("botserv/administration"))) + if (ci->botflags.HasFlag(BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !u->Account()->HasPriv("botserv/administration"))) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; } - if (bi->HasFlag(BI_PRIVATE) && !u->nc->HasCommand("botserv/assign/private")) + if (bi->HasFlag(BI_PRIVATE) && !u->Account()->HasCommand("botserv/assign/private")) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; diff --git a/src/core/bs_badwords.c b/src/core/bs_badwords.c index e71438183..9c13560ad 100644 --- a/src/core/bs_badwords.c +++ b/src/core/bs_badwords.c @@ -184,7 +184,7 @@ class CommandBSBadwords : public Command ci = cs_findchan(chan); - if (!check_access(u, ci, CA_BADWORDS) && (!need_args || !u->nc->HasPriv("botserv/administration"))) + if (!check_access(u, ci, CA_BADWORDS) && (!need_args || !u->Account()->HasPriv("botserv/administration"))) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; diff --git a/src/core/bs_bot.c b/src/core/bs_bot.c index 56be53b33..cfaafac23 100644 --- a/src/core/bs_bot.c +++ b/src/core/bs_bot.c @@ -334,7 +334,7 @@ class CommandBSBot : public Command if (cmd == "ADD") { // ADD nick user host real - 5 - if (!u->nc->HasCommand("botserv/bot/add")) + if (!u->Account()->HasCommand("botserv/bot/add")) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; @@ -357,7 +357,7 @@ class CommandBSBot : public Command { // CHANGE oldn newn user host real - 6 // but only oldn and newn are required - if (!u->nc->HasCommand("botserv/bot/change")) + if (!u->Account()->HasCommand("botserv/bot/change")) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; @@ -374,7 +374,7 @@ class CommandBSBot : public Command else if (cmd == "DEL") { // DEL nick - if (!u->nc->HasCommand("botserv/bot/del")) + if (!u->Account()->HasCommand("botserv/bot/del")) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; diff --git a/src/core/bs_botlist.c b/src/core/bs_botlist.c index 8e3ca925a..fbae61911 100644 --- a/src/core/bs_botlist.c +++ b/src/core/bs_botlist.c @@ -43,7 +43,7 @@ class CommandBSBotList : public Command } } - if (u->nc->HasCommand("botserv/botlist") && count < nbots) { + if (u->Account()->HasCommand("botserv/botlist") && count < nbots) { notice_lang(Config.s_BotServ, u, BOT_BOTLIST_PRIVATE_HEADER); for (i = 0; i < 256; i++) { diff --git a/src/core/bs_info.c b/src/core/bs_info.c index 8d1a00c9a..ac4c21f92 100644 --- a/src/core/bs_info.c +++ b/src/core/bs_info.c @@ -75,12 +75,12 @@ class CommandBSInfo : public Command notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_OPTIONS, getstring(u, (bi->HasFlag(BI_PRIVATE) ? BOT_INFO_OPT_PRIVATE : BOT_INFO_OPT_NONE))); notice_lang(Config.s_BotServ, u, BOT_INFO_BOT_USAGE, bi->chancount); - if (u->nc->HasPriv("botserv/administration")) + if (u->Account()->HasPriv("botserv/administration")) this->send_bot_channels(u, bi); } else if ((ci = cs_findchan(query))) { - if (!IsFounder(u, ci) && !u->nc->HasPriv("botserv/administration")) + if (!IsFounder(u, ci) && !u->Account()->HasPriv("botserv/administration")) { notice_lang(Config.s_BotServ, u, ACCESS_DENIED); return MOD_CONT; diff --git a/src/core/bs_kick.c b/src/core/bs_kick.c index be0815a29..7bce96b56 100644 --- a/src/core/bs_kick.c +++ b/src/core/bs_kick.c @@ -37,7 +37,7 @@ class CommandBSKick : public Command syntax_error(Config.s_BotServ, u, "KICK", BOT_KICK_SYNTAX); else if (value != "ON" && value != "OFF") syntax_error(Config.s_BotServ, u, "KICK", BOT_KICK_SYNTAX); - else if (!check_access(u, ci, CA_SET) && !u->nc->HasPriv("botserv/administration")) + else if (!check_access(u, ci, CA_SET) && !u->Account()->HasPriv("botserv/administration")) notice_lang(Config.s_BotServ, u, ACCESS_DENIED); else if (!ci->bi) notice_help(Config.s_BotServ, u, BOT_NOT_ASSIGNED); diff --git a/src/core/bs_set.c b/src/core/bs_set.c index b8cc3ae12..69c6612f7 100644 --- a/src/core/bs_set.c +++ b/src/core/bs_set.c @@ -36,7 +36,7 @@ class CommandBSSet : public Command return MOD_CONT; } - if (u->nc->HasCommand("botserv/set/private") && option == "PRIVATE") + if (u->Account()->HasCommand("botserv/set/private") && option == "PRIVATE") { BotInfo *bi; @@ -63,7 +63,7 @@ class CommandBSSet : public Command return MOD_CONT; } else if (!(ci = cs_findchan(chan))) notice_lang(Config.s_BotServ, u, CHAN_X_NOT_REGISTERED, chan); - else if (!u->nc->HasPriv("botserv/administration") && !check_access(u, ci, CA_SET)) + else if (!u->Account()->HasPriv("botserv/administration") && !check_access(u, ci, CA_SET)) notice_lang(Config.s_BotServ, u, ACCESS_DENIED); else { if (option == "DONTKICKOPS") { @@ -114,7 +114,7 @@ class CommandBSSet : public Command syntax_error(Config.s_BotServ, u, "SET GREET", BOT_SET_GREET_SYNTAX); } - } else if (u->nc->HasCommand("botserv/set/nobot") && option == "NOBOT") { + } else if (u->Account()->HasCommand("botserv/set/nobot") && option == "NOBOT") { if (value == "ON") { ci->botflags.SetFlag(BS_NOBOT); if (ci->bi) @@ -150,7 +150,7 @@ class CommandBSSet : public Command if (subcommand.empty()) { notice_help(Config.s_BotServ, u, BOT_HELP_SET); - if (u->nc && u->nc->IsServicesOper()) + if (u->Account() && u->Account()->IsServicesOper()) notice_help(Config.s_BotServ, u, BOT_SERVADMIN_HELP_SET); } else if (subcommand == "DONTKICKOPS") diff --git a/src/core/bs_unassign.c b/src/core/bs_unassign.c index a29f0099f..0505b8ea6 100644 --- a/src/core/bs_unassign.c +++ b/src/core/bs_unassign.c @@ -30,7 +30,7 @@ class CommandBSUnassign : public Command if (readonly) notice_lang(Config.s_BotServ, u, BOT_ASSIGN_READONLY); - else if (!u->nc->HasPriv("botserv/administration") && !check_access(u, ci, CA_ASSIGN)) + else if (!u->Account()->HasPriv("botserv/administration") && !check_access(u, ci, CA_ASSIGN)) notice_lang(Config.s_BotServ, u, ACCESS_DENIED); else if (!ci->bi) notice_help(Config.s_BotServ, u, BOT_NOT_ASSIGNED); diff --git a/src/core/cs_access.c b/src/core/cs_access.c index 808141aa0..d26891d73 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -20,7 +20,7 @@ static int access_del(User * u, ChannelInfo *ci, ChanAccess * access, int *perm, char *nick; if (!access->in_use) return 0; - if (uacc <= access->level && !u->nc->HasPriv("chanserv/access/modify")) + if (uacc <= access->level && !u->Account()->HasPriv("chanserv/access/modify")) { (*perm)++; return 0; @@ -97,7 +97,7 @@ static int access_view(User *u, int index, ChannelInfo *ci, int *sent_header) } memset(&timebuf, 0, sizeof(timebuf)); - if (ci->c && u->nc && nc_on_chan(ci->c, u->nc)) + if (ci->c && u->Account() && nc_on_chan(ci->c, u->Account())) sprintf(timebuf, "Now"); else if (access->last_seen == 0) sprintf(timebuf, "Never"); @@ -163,9 +163,9 @@ class CommandCSAccess : public Command notice_lang(Config.s_ChanServ, u, CHAN_ACCESS_XOP, Config.s_ChanServ); } else if (( - (is_list && !check_access(u, ci, CA_ACCESS_LIST) && !u->nc->HasCommand("chanserv/access/list")) + (is_list && !check_access(u, ci, CA_ACCESS_LIST) && !u->Account()->HasCommand("chanserv/access/list")) || - (!is_list && !check_access(u, ci, CA_ACCESS_CHANGE) && !u->nc->HasPriv("chanserv/access/modify")) + (!is_list && !check_access(u, ci, CA_ACCESS_CHANGE) && !u->Account()->HasPriv("chanserv/access/modify")) )) notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); else if (cmd == "ADD") @@ -179,7 +179,7 @@ class CommandCSAccess : public Command level = atoi(s); ulev = get_access(u, ci); - if (level >= ulev && !u->nc->HasPriv("chanserv/access/modify")) + if (level >= ulev && !u->Account()->HasPriv("chanserv/access/modify")) { notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); return MOD_CONT; @@ -213,7 +213,7 @@ class CommandCSAccess : public Command if (access) { /* Don't allow lowering from a level >= ulev */ - if (access->level >= ulev && !u->nc->HasPriv("chanserv/access/modify")) + if (access->level >= ulev && !u->Account()->HasPriv("chanserv/access/modify")) { notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); return MOD_CONT; @@ -305,7 +305,7 @@ class CommandCSAccess : public Command notice_lang(Config.s_ChanServ, u, CHAN_ACCESS_NOT_FOUND, nick, chan); return MOD_CONT; } - if (get_access(u, ci) <= access->level && !u->nc->HasPriv("chanserv/access/modify")) + if (get_access(u, ci) <= access->level && !u->Account()->HasPriv("chanserv/access/modify")) { deleted = 0; notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); @@ -396,7 +396,7 @@ class CommandCSAccess : public Command return MOD_CONT; } - if (!IsFounder(u, ci) && !u->nc->HasPriv("chanserv/access/modify")) + if (!IsFounder(u, ci) && !u->Account()->HasPriv("chanserv/access/modify")) { notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); return MOD_CONT; @@ -454,7 +454,7 @@ class CommandCSLevels : public Command this->OnSyntaxError(u, cmd); else if (ci->HasFlag(CI_XOP)) notice_lang(Config.s_ChanServ, u, CHAN_LEVELS_XOP); - else if (!IsFounder(u, ci) && !u->nc->HasPriv("chanserv/access/modify")) + else if (!IsFounder(u, ci) && !u->Account()->HasPriv("chanserv/access/modify")) notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); else if (cmd == "SET") { level = strtol(s, &error, 10); diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c index 2a45cd83c..355dd09ee 100644 --- a/src/core/cs_akick.c +++ b/src/core/cs_akick.c @@ -522,7 +522,7 @@ class CommandCSAKick : public Command if (mask.empty() && (cmd == "ADD" || cmd == "STICK" || cmd == "UNSTICK" || cmd == "DEL")) this->OnSyntaxError(u, cmd); - else if (!check_access(u, ci, CA_AKICK) && !u->nc->HasPriv("chanserv/access/modify")) + else if (!check_access(u, ci, CA_AKICK) && !u->Account()->HasPriv("chanserv/access/modify")) notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); |
