add field for access restrictions by document status

This commit is contained in:
Uwe Steinmann 2016-04-12 12:21:55 +02:00
parent 7a84ffee5e
commit 0511d06d63

View File

@ -44,6 +44,13 @@ class SeedDMS_Core_Role { /* {{{ */
*/ */
var $_role; var $_role;
/**
* @var array list of status without access
*
* @access protected
*/
var $_noaccess;
/** /**
* @var object reference to the dms instance this user belongs to * @var object reference to the dms instance this user belongs to
* *
@ -55,10 +62,11 @@ class SeedDMS_Core_Role { /* {{{ */
const role_admin = '1'; const role_admin = '1';
const role_guest = '2'; const role_guest = '2';
function SeedDMS_Core_Role($id, $name, $role) { /* {{{ */ function SeedDMS_Core_Role($id, $name, $role, $noaccess=array()) { /* {{{ */
$this->_id = $id; $this->_id = $id;
$this->_name = $name; $this->_name = $name;
$this->_role = $role; $this->_role = $role;
$this->_noaccess = $noaccess;
$this->_dms = $role; $this->_dms = $role;
} /* }}} */ } /* }}} */
@ -91,7 +99,7 @@ class SeedDMS_Core_Role { /* {{{ */
$resArr = $resArr[0]; $resArr = $resArr[0];
$role = new self($resArr["id"], $resArr["name"], $resArr["role"]); $role = new self($resArr["id"], $resArr["name"], $resArr["role"], $resArr['noaccess'] ? explode(',', $resArr['noaccess']) : array());
$role->setDMS($dms); $role->setDMS($dms);
return $role; return $role;
} /* }}} */ } /* }}} */
@ -111,7 +119,7 @@ class SeedDMS_Core_Role { /* {{{ */
$roles = array(); $roles = array();
for ($i = 0; $i < count($resArr); $i++) { for ($i = 0; $i < count($resArr); $i++) {
$role = new self($resArr[$i]["id"], $resArr[$i]["name"], $resArr[$i]["role"]); $role = new self($resArr[$i]["id"], $resArr[$i]["name"], $resArr[$i]["role"], explode(',', $resArr[$i]['noaccess']));
$role->setDMS($dms); $role->setDMS($dms);
$roles[$i] = $role; $roles[$i] = $role;
} }
@ -156,6 +164,19 @@ class SeedDMS_Core_Role { /* {{{ */
return true; return true;
} /* }}} */ } /* }}} */
function getNoAccess() { return $this->_noaccess; }
function setNoAccess($noaccess) { /* {{{ */
$db = $this->_dms->getDB();
$queryStr = "UPDATE tblRoles SET noaccess = " . $db->qstr(implode(',',$noaccess)) . " WHERE id = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
$this->_noaccess = $noaccess;
return true;
} /* }}} */
/** /**
* Delete role * Delete role
* *