mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-13 05:01:43 +00:00
Merge branch 'develop' into seeddms-5.1.x
This commit is contained in:
commit
1a35ef9cc3
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
$EXT_CONF['example'] = array(
|
$EXT_CONF['example'] = array(
|
||||||
'title' => 'Example Extension',
|
'title' => 'Example Extension',
|
||||||
'description' => 'This sample extension demonstrate the use of various hooks',
|
'description' => 'This sample extension demonstrates the use of various hooks',
|
||||||
'disable' => true,
|
'disable' => true,
|
||||||
'version' => '1.0.0',
|
'version' => '1.0.0',
|
||||||
'releasedate' => '2013-05-03',
|
'releasedate' => '2013-05-03',
|
||||||
|
|
|
@ -92,6 +92,8 @@ $theme = $resArr["theme"];
|
||||||
$lang = $resArr["language"];
|
$lang = $resArr["language"];
|
||||||
|
|
||||||
$dms->setUser($user);
|
$dms->setUser($user);
|
||||||
|
$role = $user->getRole();
|
||||||
|
$dms->noReadForStatus = $role->getNoAccess();
|
||||||
|
|
||||||
$notifier = new SeedDMS_NotificationService();
|
$notifier = new SeedDMS_NotificationService();
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@ CREATE TABLE `tblRoles` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`name` varchar(50) default NULL,
|
`name` varchar(50) default NULL,
|
||||||
`role` smallint(1) NOT NULL default '0',
|
`role` smallint(1) NOT NULL default '0',
|
||||||
|
`noaccess` varchar(30) NOT NULL default '',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
@ -51,6 +51,7 @@ CREATE TABLE `tblRoles` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`name` varchar(50) default NULL,
|
`name` varchar(50) default NULL,
|
||||||
`role` INTEGER NOT NULL default '0',
|
`role` INTEGER NOT NULL default '0',
|
||||||
|
`noaccess` varchar(30) NOT NULL default '',
|
||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,7 @@ CREATE TABLE `tblRoles` (
|
||||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
`name` varchar(50) default NULL,
|
`name` varchar(50) default NULL,
|
||||||
`role` INTEGER NOT NULL default '0',
|
`role` INTEGER NOT NULL default '0',
|
||||||
|
`noaccess` varchar(30) NOT NULL default '',
|
||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,7 @@ CREATE TABLE `tblRoles` (
|
||||||
`id` int(11) NOT NULL auto_increment,
|
`id` int(11) NOT NULL auto_increment,
|
||||||
`name` varchar(50) default NULL,
|
`name` varchar(50) default NULL,
|
||||||
`role` smallint(1) NOT NULL default '0',
|
`role` smallint(1) NOT NULL default '0',
|
||||||
|
`noaccess` varchar(30) NOT NULL default '',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE (`name`)
|
UNIQUE (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
|
@ -116,11 +116,13 @@ else if ($action == "editrole") {
|
||||||
|
|
||||||
$name = $_POST["name"];
|
$name = $_POST["name"];
|
||||||
$role = preg_replace('/[^0-2]+/', '', $_POST["role"]);
|
$role = preg_replace('/[^0-2]+/', '', $_POST["role"]);
|
||||||
|
$noaccess = isset($_POST['noaccess']) ? $_POST['noaccess'] : null;
|
||||||
|
|
||||||
if ($editedRole->getName() != $name)
|
if ($editedRole->getName() != $name)
|
||||||
$editedRole->setName($name);
|
$editedRole->setName($name);
|
||||||
if ($editedRole->getRole() != $role)
|
if ($editedRole->getRole() != $role)
|
||||||
$editedRole->setRole($role);
|
$editedRole->setRole($role);
|
||||||
|
$editedRole->setNoAccess($noaccess);
|
||||||
|
|
||||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_edit_role')));
|
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_edit_role')));
|
||||||
add_log_line(".php&action=editrole&roleid=".$roleid);
|
add_log_line(".php&action=editrole&roleid=".$roleid);
|
||||||
|
|
|
@ -143,6 +143,7 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSe
|
||||||
foreach($hits as $hit) {
|
foreach($hits as $hit) {
|
||||||
if($tmp = $dms->getDocument($hit['document_id'])) {
|
if($tmp = $dms->getDocument($hit['document_id'])) {
|
||||||
if($tmp->getAccessMode($user) >= M_READ) {
|
if($tmp->getAccessMode($user) >= M_READ) {
|
||||||
|
if($tmp->getLatestContent()) {
|
||||||
$tmp->verifyLastestContentExpriry();
|
$tmp->verifyLastestContentExpriry();
|
||||||
$entries[] = $tmp;
|
$entries[] = $tmp;
|
||||||
$dcount++;
|
$dcount++;
|
||||||
|
@ -150,6 +151,7 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$limit = 20;
|
$limit = 20;
|
||||||
if($pageNumber != 'all' && count($entries) > $limit) {
|
if($pageNumber != 'all' && count($entries) > $limit) {
|
||||||
$totalPages = (int) (count($entries)/$limit);
|
$totalPages = (int) (count($entries)/$limit);
|
||||||
|
@ -383,12 +385,14 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSe
|
||||||
if($resArr['docs']) {
|
if($resArr['docs']) {
|
||||||
foreach ($resArr['docs'] as $entry) {
|
foreach ($resArr['docs'] as $entry) {
|
||||||
if ($entry->getAccessMode($user) >= M_READ) {
|
if ($entry->getAccessMode($user) >= M_READ) {
|
||||||
|
if($entry->getLatestContent()) {
|
||||||
$entry->verifyLastestContentExpriry();
|
$entry->verifyLastestContentExpriry();
|
||||||
$entries[] = $entry;
|
$entries[] = $entry;
|
||||||
$dcount++;
|
$dcount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(isset($_GET['export']) && $_GET['export']) {
|
if(isset($_GET['export']) && $_GET['export']) {
|
||||||
include("../inc/inc.ClassDownloadMgr.php");
|
include("../inc/inc.ClassDownloadMgr.php");
|
||||||
$downmgr = new SeedDMS_Download_Mgr();
|
$downmgr = new SeedDMS_Download_Mgr();
|
||||||
|
|
|
@ -149,6 +149,18 @@ $(document).ready( function() {
|
||||||
<td><?php printMLText("role_type");?>:</td>
|
<td><?php printMLText("role_type");?>:</td>
|
||||||
<td><select name="role"><option value="<?php echo SeedDMS_Core_Role::role_user ?>"><?php printMLText("role_user"); ?></option><option value="<?php echo SeedDMS_Core_Role::role_admin ?>" <?php if($currRole && $currRole->getRole() == SeedDMS_Core_Role::role_admin) echo "selected"; ?>><?php printMLText("role_admin"); ?></option><option value="<?php echo SeedDMS_Core_Role::role_guest ?>" <?php if($currRole && $currRole->getRole() == SeedDMS_Core_Role::role_guest) echo "selected"; ?>><?php printMLText("role_guest"); ?></option></select></td>
|
<td><select name="role"><option value="<?php echo SeedDMS_Core_Role::role_user ?>"><?php printMLText("role_user"); ?></option><option value="<?php echo SeedDMS_Core_Role::role_admin ?>" <?php if($currRole && $currRole->getRole() == SeedDMS_Core_Role::role_admin) echo "selected"; ?>><?php printMLText("role_admin"); ?></option><option value="<?php echo SeedDMS_Core_Role::role_guest ?>" <?php if($currRole && $currRole->getRole() == SeedDMS_Core_Role::role_guest) echo "selected"; ?>><?php printMLText("role_guest"); ?></option></select></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<?php
|
||||||
|
if($currRole && $currRole->getRole() == SeedDMS_Core_Role::role_user) {
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td>".getMLText('restrict_access')."</td>";
|
||||||
|
echo "<td>";
|
||||||
|
foreach(array(S_DRAFT_REV, S_DRAFT_APP, S_IN_WORKFLOW, S_REJECTED, S_RELEASED, S_IN_REVISION, S_DRAFT, S_OBSOLETE) as $status) {
|
||||||
|
echo "<input type=\"checkbox\" name=\"noaccess[]\" value=\"".$status."\" ".(in_array($status, $currRole->getNoAccess()) ? "checked" : "")."> ".getOverallStatusText($status)."<br />";
|
||||||
|
}
|
||||||
|
echo "</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td><button type="submit" class="btn"><i class="icon-save"></i> <?php printMLText($currRole ? "save" : "add_role")?></button></td>
|
<td><button type="submit" class="btn"><i class="icon-save"></i> <?php printMLText($currRole ? "save" : "add_role")?></button></td>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user