<?php /** * Any Legacy AlternC Api should use this class as a parent * to be able to handle properly the access rights & error messages * * @author benjamin */ class Alternc_Api_Legacyobject { protected $admin; // m_admin instance protected $cuid; // current user id protected $isAdmin; // is it an Admin account? protected $db; // PDO DB access to AlternC's database. const ERR_INVALID_ARGUMENT = 111201; const ERR_ALTERNC_FUNCTION = 111202; const ERR_NOT_FOUND = 111203; function __construct($service) { global $admin, $cuid; if (!($service instanceof Alternc_Api_Service)) { throw new \Exception("Bad argument: service is not an Alternc_Api_Service", self::ERR_INVALID_ARGUMENT); } // We store the global $cuid to AlternC legacy classes $this->db = $service->db; $this->cuid = $cuid = $service->token->uid; $this->isAdmin = $service->token->isAdmin; // We use the global $admin from AlternC legacy classes $this->admin = $admin; // Set the legacy rights: $this->admin->enabled = $this->isAdmin; } /** return a proper Alternc_Api_Response from an error class and error string * from AlternC legacy class */ protected function alterncLegacyErrorManager() { global $err; return new Alternc_Api_Response(array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "[" . $err->clsid . "] " . $err->error)); } /** ensure that offset & count are set properly from $options. */ protected function offsetAndCount($options, $max) { $offset = -1; $count = -1; if (isset($options["count"])) $count = intval($options["count"]); if (isset($options["offset"])) $offset = intval($options["offset"]); if ($offset != -1 || $count != -1) { if ($offset < 0 || $offset > $max) $offset = 0; if ($count < 0 || $count > 1000) $count = 1000; } return array($offset, $count); } } // Aternc_Api_Legacyobject