[enh] formatting + adding LOCK and UNLOCK on accounts
This commit is contained in:
parent
0407b65bae
commit
afbed13686
|
@ -5,155 +5,189 @@
|
|||
*/
|
||||
class Alternc_Api_Object_Account extends Alternc_Api_Legacyobject {
|
||||
|
||||
const ERR_NOT_FOUND = 1115103;
|
||||
const ERR_NOT_FOUND = 1115103;
|
||||
|
||||
|
||||
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);
|
||||
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->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;
|
||||
}
|
||||
// We store the global $cuid to AlternC legacy classes
|
||||
$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;
|
||||
}
|
||||
|
||||
/** API Method from legacy class method admin->add_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: login, pass, nom, prenom, mail,
|
||||
* non-mandatory: canpass, type, duration, notes, force, create_dom, db_server_id
|
||||
* @return Alternc_Api_Response whose content is the newly created UID
|
||||
*/
|
||||
function add($options) {
|
||||
$mandatory = array("login", "pass", "nom", "prenom", "mail");
|
||||
$defaults = array("canpass" => 1, "type" => "default", "duration" => 0, "notes" => "", "force" => 0, "create_dom" => "");
|
||||
$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));
|
||||
}
|
||||
foreach ($defaults as $key => $value) {
|
||||
if (!isset($options[$key])) {
|
||||
$options[$key] = $value;
|
||||
}
|
||||
}
|
||||
if (!isset($options["db_server_id"])) {
|
||||
$stmt = $this->db->prepare("SELECT MIN(db_servers.id) AS id FROM db_servers;");
|
||||
$stmt->execute();
|
||||
$me = $stmt->fetch(PDO::FETCH_OBJ);
|
||||
$options["db_server_id"] = $me->id;
|
||||
}
|
||||
$uid = $this->admin->add_mem($options["login"], $options["pass"], $options["nom"], $options["prenom"], $options["mail"], $options["canpass"], $options["type"], $options["duration"], $options["notes"], $options["force"], $options["create_dom"], $options["db_server_id"]);
|
||||
if (!$uid) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response(array("content" => $uid));
|
||||
}
|
||||
}
|
||||
|
||||
/** API Method from legacy class method admin->add_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: login, pass, nom, prenom, mail,
|
||||
* non-mandatory: canpass, type, duration, notes, force, create_dom, db_server_id
|
||||
* @return Alternc_Api_Response whose content is the newly created UID
|
||||
*/
|
||||
function add($options) {
|
||||
$mandatory=array("login","pass","nom","prenom","mail");
|
||||
$defaults=array("canpass"=>1, "type"=>"default","duration"=>0, "notes"=>"", "force"=>0, "create_dom"=>"");
|
||||
$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) );
|
||||
}
|
||||
foreach ($defaults as $key => $value) {
|
||||
if (!isset($options[$key])) {
|
||||
$options[$key]=$value;
|
||||
}
|
||||
}
|
||||
if (!isset($options["db_server_id"])) {
|
||||
$stmt = $this->db->prepare("SELECT MIN(db_servers.id) AS id FROM db_servers;");
|
||||
$stmt->execute();
|
||||
$me=$stmt->fetch(PDO::FETCH_OBJ);
|
||||
$options["db_server_id"]=$me->id;
|
||||
}
|
||||
$uid=$this->admin->add_mem($options["login"], $options["pass"], $options["nom"], $options["prenom"], $options["mail"],
|
||||
$options["canpass"], $options["type"], $options["duration"], $options["notes"], $options["force"],
|
||||
$options["create_dom"], $options["db_server_id"]);
|
||||
if (!$uid) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response( array("content" => $uid ) );
|
||||
}
|
||||
}
|
||||
/** API Method from legacy class method admin->update_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: nom, prenom, mail,
|
||||
* non-mandatory: pass, canpass, type, duration, notes, force, create_dom, db_server_id
|
||||
* @return Alternc_Api_Response whose content is the updated UID
|
||||
*/
|
||||
function update($options) {
|
||||
$defaults = array("nom", "prenom", "mail", "canpass", "enabled", "type", "duration", "notes");
|
||||
if (!isset($options["uid"])) {
|
||||
return new Alternc_Api_Response(array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: UID"));
|
||||
}
|
||||
$uid = intval($options["uid"]);
|
||||
$old = $this->admin->get($uid);
|
||||
if (!$old) {
|
||||
return new Alternc_Api_Response(array("code" => self::ERR_NOT_FOUND, "message" => "User not found"));
|
||||
}
|
||||
|
||||
foreach ($defaults as $key) {
|
||||
if (!isset($options[$key])) {
|
||||
$options[$key] = $old[$key];
|
||||
}
|
||||
}
|
||||
if (!isset($options["pass"]))
|
||||
$options["pass"] = "";
|
||||
$uid = $this->admin->update_mem($uid, $options["mail"], $options["nom"], $options["prenom"], $options["pass"], $options["enabled"], $options["canpass"], $options["type"], $options["duration"], $options["notes"]);
|
||||
if (!$uid) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response(array("content" => $uid));
|
||||
}
|
||||
}
|
||||
|
||||
/** API Method from legacy class method admin->update_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: nom, prenom, mail,
|
||||
* non-mandatory: pass, canpass, type, duration, notes, force, create_dom, db_server_id
|
||||
* @return Alternc_Api_Response whose content is the updated UID
|
||||
*/
|
||||
function update($options) {
|
||||
$defaults=array("nom","prenom","mail","canpass", "enabled","type","duration", "notes");
|
||||
if (!isset($options["uid"])) {
|
||||
return new Alternc_Api_Response( array("code" => self::ERR_INVALID_ARGUMENT, "message" => "Missing or invalid argument: UID") );
|
||||
}
|
||||
$uid=intval($options["uid"]);
|
||||
$old=$this->admin->get($uid);
|
||||
if (!$old) {
|
||||
return new Alternc_Api_Response( array("code" => self::ERR_NOT_FOUND, "message" => "User not found") );
|
||||
}
|
||||
/** API Method from legacy class method admin->del_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: uid
|
||||
* @return Alternc_Api_Response TRUE if the account has been deleted.
|
||||
*/
|
||||
function del($options) {
|
||||
if (!isset($options["uid"])) {
|
||||
return new Alternc_Api_Response(array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "Missing or invalid argument: UID"));
|
||||
}
|
||||
$result = $this->admin->del_mem(intval($options["uid"]));
|
||||
if (!$result) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response(array("content" => true));
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($defaults as $key) {
|
||||
if (!isset($options[$key])) {
|
||||
$options[$key]=$old[$key];
|
||||
}
|
||||
}
|
||||
if (!isset($options["pass"])) $options["pass"]="";
|
||||
$uid=$this->admin->update_mem($uid, $options["mail"], $options["nom"], $options["prenom"], $options["pass"],
|
||||
$options["enabled"], $options["canpass"], $options["type"], $options["duration"], $options["notes"]);
|
||||
if (!$uid) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response( array("content" => $uid ) );
|
||||
}
|
||||
}
|
||||
/** API Method from legacy class method admin->lock_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: uid
|
||||
* @return Alternc_Api_Response TRUE if the account has been locked
|
||||
*/
|
||||
function lock($options) {
|
||||
if (!isset($options["uid"])) {
|
||||
return new Alternc_Api_Response(array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "Missing or invalid argument: UID"));
|
||||
}
|
||||
$result = $this->admin->lock_mem(intval($options["uid"]));
|
||||
if (!$result) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response(array("content" => true));
|
||||
}
|
||||
}
|
||||
|
||||
/** API Method from legacy class method admin->unlock_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: uid
|
||||
* @return Alternc_Api_Response TRUE if the account has been unlocked
|
||||
*/
|
||||
function unlock($options) {
|
||||
if (!isset($options["uid"])) {
|
||||
return new Alternc_Api_Response(array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "Missing or invalid argument: UID"));
|
||||
}
|
||||
$result = $this->admin->unlock_mem(intval($options["uid"]));
|
||||
if (!$result) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response(array("content" => true));
|
||||
}
|
||||
}
|
||||
|
||||
/** API Method from legacy class method admin->del_mem()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* mandatory parameters: uid
|
||||
* @return Alternc_Api_Response TRUE if the account has been deleted.
|
||||
*/
|
||||
function del($options) {
|
||||
if (!isset($options["uid"])) {
|
||||
return new Alternc_Api_Response( array("code" => self::ERR_ALTERNC_FUNCTION, "message" => "Missing or invalid argument: UID") );
|
||||
}
|
||||
$result=$this->admin->del_mem(intval($options["uid"]));
|
||||
if (!$result) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
return new Alternc_Api_Response( array("content" => true ) );
|
||||
}
|
||||
}
|
||||
/** API Method from legacy class method admin->get_list()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* non-mandatory parameters: ONE OF:
|
||||
* uid(strict), login(like %%), domain(like %%), creator(strict, by uid),
|
||||
* Any of: offset(int=0), count(int=+inf)
|
||||
* @return Alternc_Api_Response An array with all matching users informations as hashes
|
||||
*/
|
||||
function find($options) {
|
||||
$result = false;
|
||||
if (!$result && isset($options["uid"])) {
|
||||
$result = $this->admin->get(intval($options["uid"]));
|
||||
if ($result)
|
||||
$result = array($result);
|
||||
}
|
||||
if (!$result && isset($options["login"])) {
|
||||
$result = $this->admin->get_list(1/* ALL */, "", $options["login"], "login");
|
||||
}
|
||||
if (!$result && isset($options["domain"])) {
|
||||
$result = $this->admin->get_list(1/* ALL */, "", $options["domain"], "domaine");
|
||||
}
|
||||
if (!$result && isset($options["creator"])) {
|
||||
$result = $this->admin->get_list(1/* ALL */, intval($options["creator"]));
|
||||
}
|
||||
if (!$result) { // everybody
|
||||
$result = $this->admin->get_list(1/* ALL */, "");
|
||||
}
|
||||
|
||||
if (!$result) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
$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 > count($result))
|
||||
$offset = 0;
|
||||
if ($count < 0 || $count > 1000)
|
||||
$count = 1000;
|
||||
$result = array_slice($result, $offset, $count);
|
||||
}
|
||||
return new Alternc_Api_Response(array("content" => $result));
|
||||
}
|
||||
}
|
||||
|
||||
/** API Method from legacy class method admin->get_list()
|
||||
* @param $options a hash with parameters transmitted to legacy call
|
||||
* non-mandatory parameters: ONE OF:
|
||||
* uid(strict), login(like %%), domain(like %%), creator(strict, by uid),
|
||||
* Any of: offset(int=0), count(int=+inf)
|
||||
* @return Alternc_Api_Response An array with all matching users informations as hashes
|
||||
*/
|
||||
function find($options) {
|
||||
$result=false;
|
||||
if (!$result && isset($options["uid"])) {
|
||||
$result=$this->admin->get(intval($options["uid"]));
|
||||
if ($result) $result=array($result);
|
||||
}
|
||||
if (!$result && isset($options["login"])) {
|
||||
$result=$this->admin->get_list(1/*ALL*/, "", $options["login"], "login");
|
||||
}
|
||||
if (!$result && isset($options["domain"])) {
|
||||
$result=$this->admin->get_list(1/*ALL*/, "", $options["domain"], "domaine");
|
||||
}
|
||||
if (!$result && isset($options["creator"])) {
|
||||
$result=$this->admin->get_list(1/*ALL*/, intval($options["creator"]));
|
||||
}
|
||||
if (!$result) { // everybody
|
||||
$result=$this->admin->get_list(1/*ALL*/, "");
|
||||
}
|
||||
}
|
||||
|
||||
if (!$result) {
|
||||
return $this->alterncLegacyErrorManager();
|
||||
} else {
|
||||
$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>count($result)) $offset=0;
|
||||
if ($count<0 || $count>1000) $count=1000;
|
||||
$result= array_slice($result, $offset, $count);
|
||||
}
|
||||
return new Alternc_Api_Response( array("content" =>$result) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // class Alternc_Api_Object_Account
|
||||
// class Alternc_Api_Object_Account
|
Loading…
Reference in New Issue