mirror of
https://git.code.sf.net/p/seeddms/code
synced 2026-01-24 01:59:14 +00:00
add class SeedDMS_Core_ApiKey
This commit is contained in:
parent
0bdf51be40
commit
2781cbd8de
|
|
@ -229,6 +229,194 @@ class SeedDMS_Core_Role { /* {{{ */
|
|||
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Class to represent an apikey in the document management system
|
||||
*
|
||||
* @category DMS
|
||||
* @package SeedDMS_Core
|
||||
* @author Uwe Steinmann <uwe@steinmann.cx>
|
||||
* @copyright Copyright (C) 2016 Uwe Steinmann
|
||||
* @version Release: @package_version@
|
||||
*/
|
||||
class SeedDMS_Core_ApiKey { /* {{{ */
|
||||
/**
|
||||
* @var integer id of apikey
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
var $_id;
|
||||
|
||||
/**
|
||||
* @var string name of key
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
var $_apikey;
|
||||
|
||||
/**
|
||||
* @var boolean disabled
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
var $_disabled;
|
||||
|
||||
/**
|
||||
* @var date expires at end of this date
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
var $_expires;
|
||||
|
||||
/**
|
||||
* @var object reference to the user this apikey belongs to
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
var $_user;
|
||||
|
||||
/**
|
||||
* @var object reference to the dms instance this user belongs to
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
var $_dms;
|
||||
|
||||
function __construct($id, $apikey, $disabled=false, $expires=null) { /* {{{ */
|
||||
$this->_id = $id;
|
||||
$this->_apikey = $apikey;
|
||||
$this->_disabled = $disabled;
|
||||
$this->_expires = $expires;
|
||||
$this->_dms = null;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Create an instance of a role object
|
||||
*
|
||||
* @param string|integer $id Id, login name, or email of user, depending
|
||||
* on the 3rd parameter.
|
||||
* @param object $dms instance of dms
|
||||
* @param string $by search by [name|email]. If 'name' is passed, the method
|
||||
* will check for the 4th paramater and also filter by email. If this
|
||||
* parameter is left empty, the user will be search by its Id.
|
||||
* @param string $email optional email address if searching for name
|
||||
* @return object instance of class SeedDMS_Core_User
|
||||
*/
|
||||
public static function getInstance($id, $dms, $by='') { /* {{{ */
|
||||
$db = $dms->getDB();
|
||||
|
||||
switch($by) {
|
||||
case 'apikey':
|
||||
$queryStr = "SELECT * FROM `tblApiKeys` WHERE `apikey` = ".$db->qstr($id);
|
||||
break;
|
||||
default:
|
||||
$queryStr = "SELECT * FROM `tblApiKeys` WHERE id = " . (int) $id;
|
||||
}
|
||||
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
if (is_bool($resArr) && $resArr == false) return false;
|
||||
if (count($resArr) != 1) return false;
|
||||
|
||||
$resArr = $resArr[0];
|
||||
|
||||
$apikey = new self($resArr["id"], $resArr["apikey"], $resArr["disabled"] == 1, $resArr['expires']);
|
||||
$apikey->setDMS($dms);
|
||||
return $apikey;
|
||||
} /* }}} */
|
||||
|
||||
public static function getAllInstances($orderby, $dms) { /* {{{ */
|
||||
$db = $dms->getDB();
|
||||
|
||||
if($orderby == 'expires')
|
||||
$queryStr = "SELECT * FROM `tblApiKeys` ORDER BY `expires`";
|
||||
else
|
||||
$queryStr = "SELECT * FROM `tblApiKeys` ORDER BY `id`";
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
|
||||
if (is_bool($resArr) && $resArr == false)
|
||||
return false;
|
||||
|
||||
$apikeys = array();
|
||||
|
||||
for ($i = 0; $i < count($resArr); $i++) {
|
||||
$apikey = new self($resArr[$i]["id"], $resArr[$i]["apikey"], $resArr[$i]["disabled"]==1, $resArr[$i]['expires']);
|
||||
$apikey->setDMS($dms);
|
||||
$apikeys[$i] = $apikey;
|
||||
}
|
||||
|
||||
return $apikeys;
|
||||
} /* }}} */
|
||||
|
||||
function setDMS($dms) {
|
||||
$this->_dms = $dms;
|
||||
}
|
||||
|
||||
function getID() { return $this->_id; }
|
||||
|
||||
function getApiKey() { return $this->_apikey; }
|
||||
|
||||
function setName($newApiKey) { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
||||
$queryStr = "UPDATE `tblApiKeys` SET `apikey` =".$db->qstr($newApiKey)." WHERE `id` = " . $this->_id;
|
||||
$res = $db->getResult($queryStr);
|
||||
if (!$res)
|
||||
return false;
|
||||
|
||||
$this->_name = $newApiKey;
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
function isDisabled() { return ($this->_disabled); }
|
||||
|
||||
function getExpires() { return $this->_expires; }
|
||||
|
||||
function setExpires($newexpires) { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
||||
$queryStr = "UPDATE `tblApiKeys` SET `expires` = " . $newexpires . " WHERE `id` = " . $this->_id;
|
||||
if (!$db->getResult($queryStr))
|
||||
return false;
|
||||
|
||||
$this->_expires = $newexpires;
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Delete apikey
|
||||
*
|
||||
* @return boolean true on success or false in case of an error
|
||||
*/
|
||||
function remove() { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
||||
$queryStr = "DELETE FROM `tblApiKeys` WHERE `id` = " . $this->_id;
|
||||
if (!$db->getResult($queryStr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
function getUser() { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
||||
if (!isset($this->_user)) {
|
||||
$queryStr = "SELECT `b`.* FROM `tblApiKeys`i `a` LEFT JOIN `tblUsers` `b` ON `a`.`user`=`b`.`id` WHERE `a`.`id`=".$this->_id;
|
||||
$resArr = $db->getResultArray($queryStr);
|
||||
if (is_bool($resArr) && $resArr == false)
|
||||
return false;
|
||||
|
||||
$this->_user = null;
|
||||
$row = $resArr[0];
|
||||
$classname = $this->_dms->getClassname('user');
|
||||
$this->_user = new $classname($row["id"], $row["login"], $row["pwd"], $row["fullName"], $row["email"], $row["language"], $row["theme"], $row["comment"], $role, $row['hidden']);
|
||||
$this->_user->setDMS($this->_dms);
|
||||
}
|
||||
return $this->_user;
|
||||
} /* }}} */
|
||||
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Class to represent a user in the document management system
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user