diff options
| author | Adam <Adam@anope.org> | 2014-11-24 14:27:23 -0500 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2014-11-24 14:27:23 -0500 |
| commit | 42238034490fb5479d787bd1695750387d508200 (patch) | |
| tree | c93c62e0e1c936e656ae5b9ee1b62380ce2a194c /modules/commands/cs_unban.cpp | |
| parent | d492923610d9c9146b2a2b63de38deab2cfd4ca7 (diff) | |
Rewrite serializable to have field level granularity
Represent serializable objects in a digraph, and as a result made most
object relationships implicitly defined, and use the graph to trace
references between objects to determine relationships. Edges may
also be marked as having a dependency of the object they point to,
which allows for automatic cleanup and deletion of most objects when
no longer needed.
Additionally, this allows not having to require in-memory copies of
everything when using external databases. db_sql has been rewritten
for this and now always requires a database to function. db_sql with
MySQL now requires InnoDB to make use of transactions and foreign
key constraints.
Diffstat (limited to 'modules/commands/cs_unban.cpp')
| -rw-r--r-- | modules/commands/cs_unban.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/modules/commands/cs_unban.cpp b/modules/commands/cs_unban.cpp index 8937b8142..73391ac30 100644 --- a/modules/commands/cs_unban.cpp +++ b/modules/commands/cs_unban.cpp @@ -34,14 +34,10 @@ class CommandCSUnban : public Command if (!source.GetUser()) return; - std::deque<ChanServ::Channel *> queue; - source.GetAccount()->GetChannelReferences(queue); - unsigned count = 0; - for (unsigned i = 0; i < queue.size(); ++i) - { - ChanServ::Channel *ci = queue[i]; + for (ChanServ::Channel *ci : source.GetAccount()->GetRefs<ChanServ::Channel *>(ChanServ::channel)) + { if (!ci->c || !source.AccessFor(ci).HasPriv("UNBAN")) continue; @@ -66,13 +62,13 @@ class CommandCSUnban : public Command if (ci->c == NULL) { - source.Reply(_("Channel \002{0}\002 doesn't exist."), ci->name); + source.Reply(_("Channel \002{0}\002 doesn't exist."), ci->GetName()); return; } if (!source.AccessFor(ci).HasPriv("UNBAN") && !source.HasPriv("chanserv/kick")) { - source.Reply(_("Access denied. You do not have privilege \002{0}\002 on \002{1}\002."), "UNBAN", ci->name); + source.Reply(_("Access denied. You do not have privilege \002{0}\002 on \002{1}\002."), "UNBAN", ci->GetName()); return; } |
