From 8116ad9b2885b69680bd3bed6b784d434b223a5b Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 9 Aug 2011 04:38:35 -0400 Subject: Added forgotten founder checks to cs_access, fixed fantasy replies to come from the right service, and fixed the accessgroup operators to acount for founder/superadmin --- src/access.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src') diff --git a/src/access.cpp b/src/access.cpp index 61536ed81..3559a8209 100644 --- a/src/access.cpp +++ b/src/access.cpp @@ -115,6 +115,10 @@ ChanAccess *AccessGroup::Highest() const bool AccessGroup::operator>(const AccessGroup &other) const { + if (this->SuperAdmin) + return true; + else if (this->Founder && !other.Founder) + return true; for (size_t i = CA_SIZE; i > 0; --i) if (this->HasPriv(static_cast(i - 1)) && !other.HasPriv(static_cast(i - 1))) return true; @@ -123,6 +127,10 @@ bool AccessGroup::operator>(const AccessGroup &other) const bool AccessGroup::operator<(const AccessGroup &other) const { + if (other.SuperAdmin) + return false; + else if (other.Founder && !this->Founder) + return true; for (size_t i = CA_SIZE; i > 0; --i) if (!this->HasPriv(static_cast(i - 1)) && other.HasPriv(static_cast(i - 1))) return true; @@ -131,6 +139,10 @@ bool AccessGroup::operator<(const AccessGroup &other) const bool AccessGroup::operator>=(const AccessGroup &other) const { + if (this->SuperAdmin) + return true; + else if (this->Founder) + return true; for (size_t i = CA_SIZE; i > 0; --i) { bool this_p = this->HasPriv(static_cast(i - 1)), @@ -145,6 +157,10 @@ bool AccessGroup::operator>=(const AccessGroup &other) const bool AccessGroup::operator<=(const AccessGroup &other) const { + if (other.SuperAdmin) + return true; + else if (other.Founder) + return true; for (size_t i = CA_SIZE; i > 0; --i) { bool this_p = this->HasPriv(static_cast(i - 1)), -- cgit