mirror of
https://github.com/anope/anope.git
synced 2026-07-03 09:33:12 +02:00
Windows
This commit is contained in:
+35
-1
@@ -71,7 +71,7 @@ AccessProvider::~AccessProvider()
|
||||
{
|
||||
}
|
||||
|
||||
ChanAccess::ChanAccess(AccessProvider *p) : provider(p)
|
||||
ChanAccess::ChanAccess(AccessProvider *p) : Serializable("ChanAccess"), provider(p)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -79,6 +79,40 @@ ChanAccess::~ChanAccess()
|
||||
{
|
||||
}
|
||||
|
||||
Serializable::serialized_data ChanAccess::serialize()
|
||||
{
|
||||
serialized_data data;
|
||||
|
||||
data["provider"] << this->provider->name;
|
||||
data["ci"] << this->ci->name;
|
||||
data["mask"] << this->mask;
|
||||
data["creator"] << this->creator;
|
||||
data["last_seen"].setType(Serialize::DT_INT) << this->last_seen;
|
||||
data["created"].setType(Serialize::DT_INT) << this->created;
|
||||
data["data"] << this->Serialize();
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void ChanAccess::unserialize(serialized_data &data)
|
||||
{
|
||||
service_reference<AccessProvider> aprovider(data["provider"].astr());
|
||||
ChannelInfo *ci = cs_findchan(data["ci"].astr());
|
||||
if (!aprovider || !ci)
|
||||
return;
|
||||
|
||||
ChanAccess *access = aprovider->Create();
|
||||
access->provider = aprovider;
|
||||
access->ci = ci;
|
||||
data["mask"] >> access->mask;
|
||||
data["creator"] >> access->creator;
|
||||
data["last_seen"] >> access->last_seen;
|
||||
data["created"] >> access->created;
|
||||
access->Unserialize(data["data"].astr());
|
||||
|
||||
ci->AddAccess(access);
|
||||
}
|
||||
|
||||
bool ChanAccess::operator>(ChanAccess &other)
|
||||
{
|
||||
const std::vector<Privilege> &privs = PrivilegeManager::GetPrivileges();
|
||||
|
||||
Reference in New Issue
Block a user