From df321a118e7dd44dcd3a389f8ee75e9ff915b55e Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 14 May 2014 19:10:23 -0400 Subject: Fix access lists showing the wrong mask if the display nick for a group expires but the group still exists. This can cause access entries for nicks to not be deleted whenever the nicks are deleted. --- include/access.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/access.h b/include/access.h index 57229abab..323dc814d 100644 --- a/include/access.h +++ b/include/access.h @@ -74,6 +74,10 @@ class CoreExport AccessProvider : public Service /* Represents one entry of an access list on a channel. */ class CoreExport ChanAccess : public Serializable { + Anope::string mask; + /* account this access entry is for, if any */ + Serialize::Reference nc; + public: typedef std::multimap Set; /* shows the 'path' taken to determine if an access entry matches a user @@ -86,9 +90,6 @@ class CoreExport ChanAccess : public Serializable AccessProvider *provider; /* Channel this access entry is on */ Serialize::Reference ci; - /* account this access entry is for, if any */ - Serialize::Reference nc; - Anope::string mask; Anope::string creator; time_t last_seen; time_t created; @@ -96,6 +97,10 @@ class CoreExport ChanAccess : public Serializable ChanAccess(AccessProvider *p); virtual ~ChanAccess(); + void SetMask(const Anope::string &mask, ChannelInfo *ci); + const Anope::string &Mask() const; + NickCore *GetAccount() const; + void Serialize(Serialize::Data &data) const anope_override; static Serializable* Unserialize(Serializable *obj, Serialize::Data &); -- cgit