getReadAccess() returns right list of users

doesn't return users anymore which have no read access
because the group has no read access
This commit is contained in:
Uwe Steinmann 2015-12-09 18:01:27 +01:00
parent ff267948e9
commit 666fc944ff

View File

@ -1955,7 +1955,7 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
(strlen($userIDs) == 0 ? "" : " OR (`tblUsers`.`id` IN (". $userIDs ."))"). (strlen($userIDs) == 0 ? "" : " OR (`tblUsers`.`id` IN (". $userIDs ."))").
") ORDER BY `login`"; ") ORDER BY `login`";
} }
/* If default access is equal or greate then read, $userIDs and /* If default access is equal or greater then M_READ, $userIDs and
* $groupIDs contains a list of user without read access * $groupIDs contains a list of user without read access
*/ */
else { else {
@ -1965,16 +1965,22 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
"WHERE `tblGroupMembers`.`groupID` NOT IN (". $groupIDs .")". "WHERE `tblGroupMembers`.`groupID` NOT IN (". $groupIDs .")".
"AND `tblUsers`.`role` != ".SeedDMS_Core_User::role_guest." ". "AND `tblUsers`.`role` != ".SeedDMS_Core_User::role_guest." ".
(strlen($userIDs) == 0 ? "" : " AND (`tblUsers`.`id` NOT IN (". $userIDs ."))")." UNION "; (strlen($userIDs) == 0 ? "" : " AND (`tblUsers`.`id` NOT IN (". $userIDs ."))")." UNION ";
} else {
$queryStr .=
"SELECT `tblUsers`.* FROM `tblUsers` ".
"WHERE `tblUsers`.`role` != ".SeedDMS_Core_User::role_guest." ".
(strlen($userIDs) == 0 ? "" : " AND (`tblUsers`.`id` NOT IN (". $userIDs ."))")." UNION ";
} }
$queryStr .= $queryStr .=
"SELECT `tblUsers`.* FROM `tblUsers` ". "SELECT `tblUsers`.* FROM `tblUsers` ".
"WHERE (`tblUsers`.`id` = ". $this->_ownerID . ") ". "WHERE (`tblUsers`.`id` = ". $this->_ownerID . ") ".
"OR (`tblUsers`.`role` = ".SeedDMS_Core_User::role_admin.") ". "OR (`tblUsers`.`role` = ".SeedDMS_Core_User::role_admin.") ".
"UNION ". // "UNION ".
"SELECT `tblUsers`.* FROM `tblUsers` ". // "SELECT `tblUsers`.* FROM `tblUsers` ".
"WHERE `tblUsers`.`role` != ".SeedDMS_Core_User::role_guest." ". // "WHERE `tblUsers`.`role` != ".SeedDMS_Core_User::role_guest." ".
(strlen($userIDs) == 0 ? "" : " AND (`tblUsers`.`id` NOT IN (". $userIDs ."))"). // (strlen($userIDs) == 0 ? "" : " AND (`tblUsers`.`id` NOT IN (". $userIDs ."))").
" ORDER BY `login`"; " ORDER BY `login`";
echo $queryStr;
} }
$resArr = $db->getResultArray($queryStr); $resArr = $db->getResultArray($queryStr);
if (!is_bool($resArr)) { if (!is_bool($resArr)) {