diff options
author | Adam <Adam@anope.org> | 2014-05-14 19:10:23 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2014-05-14 19:10:23 -0400 |
commit | df321a118e7dd44dcd3a389f8ee75e9ff915b55e (patch) | |
tree | f77aa4b3a73884c4a095df12be692292c8694bc0 /include/access.h | |
parent | 1931fcf0e5ffe34005d134e49c55d1b6239d1a6c (diff) |
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.
Diffstat (limited to 'include/access.h')
-rw-r--r-- | include/access.h | 11 |
1 files changed, 8 insertions, 3 deletions
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<NickCore> nc; + public: typedef std::multimap<const ChanAccess *, const ChanAccess *> 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<ChannelInfo> ci; - /* account this access entry is for, if any */ - Serialize::Reference<NickCore> 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 &); |