summaryrefslogtreecommitdiff
path: root/include/access.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-05-14 19:10:23 -0400
committerAdam <Adam@anope.org>2014-05-14 19:10:23 -0400
commitdf321a118e7dd44dcd3a389f8ee75e9ff915b55e (patch)
treef77aa4b3a73884c4a095df12be692292c8694bc0 /include/access.h
parent1931fcf0e5ffe34005d134e49c55d1b6239d1a6c (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.h11
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 &);