diff --git a/lib/Alternc/Api/Object/Policy.php b/lib/Alternc/Api/Object/Policy.php new file mode 100644 index 00000000..dad883ca --- /dev/null +++ b/lib/Alternc/Api/Object/Policy.php @@ -0,0 +1,66 @@ +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; + } + + /** API Method from legacy class method admin->editPolicy($policy,$minsize,$maxsize,$classcount,$allowlogin) + * @param $options a hash with parameters transmitted to legacy call + * mandatory parameters: policy minsize maxsize classcount allowlogin + * @return Alternc_Api_Response TRUE if the password policy has been updated + */ + function update($options) { + $mandatory = array("policy", "minsize", "maxsize", "classcount", "allowlogin"); + $missing = ""; + foreach ($mandatory as $key) { + if (!isset($options[$key])) { + $missing.=$key . " "; + } + } + if ($missing) { + return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: " . $missing)); + } + $result = $this->admin->editPolicy($options["policy"], + $options["minsize"], $options["maxsize"], $options["classcount"], $options["allowlogin"]); + if (!$result) { + return $this->alterncLegacyErrorManager(); + } else { + return new Alternc_Api_Response(array("content" => true)); + } + } + + /** API Method from legacy class method admin->listPasswordPolicies() + * @param $options a hash with parameters transmitted to legacy call + * no options is used. + * @return Alternc_Api_Response An array with all password policies + */ + function find($options) { + $result = $this->admin->listPasswordPolicies(); + + if (!$result) { + return $this->alterncLegacyErrorManager(); + } else { + return new Alternc_Api_Response(array("content" => $result)); + } + } + +} + +// class Alternc_Api_Object_Account \ No newline at end of file