diff options
| author | Adam <Adam@anope.org> | 2015-10-27 18:57:37 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2015-10-27 18:58:48 -0400 |
| commit | 64dac60071fab652745a6e7a06cf6b7bdbbd3625 (patch) | |
| tree | f8f30161150451672b381f6370a8fdcab654bbb8 /modules/pseudoclients/chanserv | |
| parent | 162fdbe5815bbdf187f549fefac94ff476d72e62 (diff) | |
| parent | 830361e97d03c74e54cb1cf1bbf329dffdeb66f7 (diff) | |
Merge branch '2.0' into 2.1
Diffstat (limited to 'modules/pseudoclients/chanserv')
| -rw-r--r-- | modules/pseudoclients/chanserv/channel.cpp | 17 | ||||
| -rw-r--r-- | modules/pseudoclients/chanserv/channel.h | 4 |
2 files changed, 15 insertions, 6 deletions
diff --git a/modules/pseudoclients/chanserv/channel.cpp b/modules/pseudoclients/chanserv/channel.cpp index 8b349dc1f..b24edcc0c 100644 --- a/modules/pseudoclients/chanserv/channel.cpp +++ b/modules/pseudoclients/chanserv/channel.cpp @@ -194,7 +194,7 @@ ChanServ::ChanAccess *ChannelImpl::GetAccess(unsigned index) return a.size() > index ? a[index] : nullptr; } -ChanServ::AccessGroup ChannelImpl::AccessFor(const User *u) +ChanServ::AccessGroup ChannelImpl::AccessFor(const User *u, bool updateLastUsed) { ChanServ::AccessGroup group; @@ -223,7 +223,8 @@ ChanServ::AccessGroup ChannelImpl::AccessFor(const User *u) if (group.founder || !group.empty()) { - this->SetLastUsed(Anope::CurTime); + if (updateLastUsed) + this->SetLastUsed(Anope::CurTime); for (unsigned i = 0; i < group.size(); ++i) group[i]->SetLastSeen(Anope::CurTime); @@ -232,7 +233,7 @@ ChanServ::AccessGroup ChannelImpl::AccessFor(const User *u) return group; } -ChanServ::AccessGroup ChannelImpl::AccessFor(NickServ::Account *nc) +ChanServ::AccessGroup ChannelImpl::AccessFor(NickServ::Account *nc, bool updateLastUsed) { ChanServ::AccessGroup group; @@ -248,7 +249,8 @@ ChanServ::AccessGroup ChannelImpl::AccessFor(NickServ::Account *nc) } if (group.founder || !group.empty()) - this->SetLastUsed(Anope::CurTime); + if (updateLastUsed) + this->SetLastUsed(Anope::CurTime); /* don't update access last seen here, this isn't the user requesting access */ @@ -362,6 +364,13 @@ void ChannelImpl::SetLevel(const Anope::string &priv, int16_t level) return; } + ChanServ::Privilege *p = ChanServ::service ? ChanServ::service->FindPrivilege(priv) : nullptr; + if (!p) + { + Log(LOG_DEBUG) << "Unknown privilege " + priv; + return; + } + ChanServ::Level *l = ChanServ::level.Create(); l->SetChannel(this); l->SetName(priv); diff --git a/modules/pseudoclients/chanserv/channel.h b/modules/pseudoclients/chanserv/channel.h index 18a4be5d6..86e42a8f9 100644 --- a/modules/pseudoclients/chanserv/channel.h +++ b/modules/pseudoclients/chanserv/channel.h @@ -50,8 +50,8 @@ class ChannelImpl : public ChanServ::Channel void SetSuccessor(NickServ::Account *nc) override; NickServ::Account *GetSuccessor() override; ChanServ::ChanAccess *GetAccess(unsigned index) /*const*/ override; - ChanServ::AccessGroup AccessFor(const User *u) override; - ChanServ::AccessGroup AccessFor(NickServ::Account *nc) override; + ChanServ::AccessGroup AccessFor(const User *u, bool = true) override; + ChanServ::AccessGroup AccessFor(NickServ::Account *nc, bool = true) override; unsigned GetAccessCount()/* const*/ override; unsigned GetDeepAccessCount() const override; void ClearAccess() override; |
