2010-11-24 15:43:08 +00:00
< ? php
2010-11-30 12:23:46 +00:00
/**
* Implementation of the group object in the document management system
*
* @ category DMS
2013-02-14 11:10:53 +00:00
* @ package SeedDMS_Core
2010-11-30 12:23:46 +00:00
* @ license GPL 2
* @ version @ version @
* @ author Uwe Steinmann < uwe @ steinmann . cx >
* @ copyright Copyright ( C ) 2002 - 2005 Markus Westphal , 2006 - 2008 Malcolm Cowe ,
* 2010 Uwe Steinmann
* @ version Release : @ package_version @
*/
2010-11-24 15:43:08 +00:00
2010-11-30 12:23:46 +00:00
/**
* Class to represent a user group in the document management system
*
* @ category DMS
2013-02-14 11:10:53 +00:00
* @ package SeedDMS_Core
2010-11-30 12:23:46 +00:00
* @ author Markus Westphal , Malcolm Cowe , Uwe Steinmann < uwe @ steinmann . cx >
* @ copyright Copyright ( C ) 2002 - 2005 Markus Westphal , 2006 - 2008 Malcolm Cowe , 2010 Uwe Steinmann
* @ version Release : @ package_version @
*/
2016-07-27 06:29:52 +00:00
class SeedDMS_Core_Group { /* {{{ */
2010-11-30 12:23:46 +00:00
/**
* The id of the user group
*
* @ var integer
*/
2013-01-24 08:26:52 +00:00
protected $_id ;
2010-11-30 12:23:46 +00:00
/**
* The name of the user group
*
* @ var string
*/
2013-01-24 08:26:52 +00:00
protected $_name ;
2010-11-30 12:23:46 +00:00
2018-02-08 08:25:45 +00:00
/**
* @ var SeedDMS_Core_User []
*/
2017-11-08 12:54:49 +00:00
protected $_users ;
2016-07-28 06:05:40 +00:00
/**
* The comment of the user group
*
* @ var string
*/
protected $_comment ;
2010-11-30 12:23:46 +00:00
/**
* Back reference to DMS this user group belongs to
*
2017-11-08 12:54:49 +00:00
* @ var SeedDMS_Core_DMS
2010-11-30 12:23:46 +00:00
*/
2013-01-24 08:26:52 +00:00
protected $_dms ;
2010-11-24 15:43:08 +00:00
2016-03-22 14:08:36 +00:00
function __construct ( $id , $name , $comment ) { /* {{{ */
2010-11-24 15:43:08 +00:00
$this -> _id = $id ;
$this -> _name = $name ;
$this -> _comment = $comment ;
$this -> _dms = null ;
} /* }}} */
2015-04-16 12:11:14 +00:00
/**
2017-12-22 12:02:14 +00:00
* Return an instance of a group object
2015-04-16 12:11:14 +00:00
*
* @ param string | integer $id Id , name of group , depending
* on the 3 rd parameter .
2017-11-08 12:54:49 +00:00
* @ param SeedDMS_Core_DMS $dms instance of dms
2015-04-16 12:11:14 +00:00
* @ param string $by search by group name if set to 'name' .
* Search by Id of group if left empty .
2018-02-08 08:25:45 +00:00
* @ return SeedDMS_Core_Group | bool instance of class SeedDMS_Core_Group if group was
* found , null if group was not found , false in case of error
2015-04-16 12:11:14 +00:00
*/
2015-04-14 17:37:06 +00:00
public static function getInstance ( $id , $dms , $by = '' ) { /* {{{ */
$db = $dms -> getDB ();
switch ( $by ) {
case 'name' :
2015-04-16 12:11:14 +00:00
$queryStr = " SELECT * FROM `tblGroups` WHERE `name` = " . $db -> qstr ( $id );
2015-04-14 17:37:06 +00:00
break ;
default :
2017-02-10 07:04:19 +00:00
$queryStr = " SELECT * FROM `tblGroups` WHERE `id` = " . ( int ) $id ;
2015-04-14 17:37:06 +00:00
}
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
else if ( count ( $resArr ) != 1 ) //wenn, dann wohl eher 0 als > 1 ;-)
2017-12-22 12:02:14 +00:00
return null ;
2015-04-14 17:37:06 +00:00
$resArr = $resArr [ 0 ];
$group = new self ( $resArr [ " id " ], $resArr [ " name " ], $resArr [ " comment " ]);
$group -> setDMS ( $dms );
return $group ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ param $orderby
* @ param SeedDMS_Core_DMS $dms
* @ return array | bool
*/
2015-04-14 17:37:06 +00:00
public static function getAllInstances ( $orderby , $dms ) { /* {{{ */
$db = $dms -> getDB ();
switch ( $orderby ) {
default :
2017-02-10 07:04:19 +00:00
$queryStr = " SELECT * FROM `tblGroups` ORDER BY `name` " ;
2015-04-14 17:37:06 +00:00
}
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
$groups = array ();
for ( $i = 0 ; $i < count ( $resArr ); $i ++ ) {
$group = new self ( $resArr [ $i ][ " id " ], $resArr [ $i ][ " name " ], $resArr [ $i ][ " comment " ]);
$group -> setDMS ( $dms );
$groups [ $i ] = $group ;
}
return $groups ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ param SeedDMS_Core_DMS $dms
*/
2010-11-24 15:43:08 +00:00
function setDMS ( $dms ) { /* {{{ */
2010-11-15 21:08:07 +00:00
$this -> _dms = $dms ;
2010-11-24 15:43:08 +00:00
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ return int
*/
2010-11-24 15:43:08 +00:00
function getID () { return $this -> _id ; }
2018-02-08 08:25:45 +00:00
/**
* @ return string
*/
2010-11-24 15:43:08 +00:00
function getName () { return $this -> _name ; }
2018-02-08 08:25:45 +00:00
/**
* @ param $newName
* @ return bool
*/
2010-11-24 15:43:08 +00:00
function setName ( $newName ) { /* {{{ */
$db = $this -> _dms -> getDB ();
2017-02-10 07:04:19 +00:00
$queryStr = " UPDATE `tblGroups` SET `name` = " . $db -> qstr ( $newName ) . " WHERE `id` = " . $this -> _id ;
2010-11-24 15:43:08 +00:00
if ( ! $db -> getResult ( $queryStr ))
return false ;
$this -> _name = $newName ;
return true ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ return string
*/
2010-11-24 15:43:08 +00:00
function getComment () { return $this -> _comment ; }
2018-02-08 08:25:45 +00:00
/**
* @ param $newComment
* @ return bool
*/
2010-11-24 15:43:08 +00:00
function setComment ( $newComment ) { /* {{{ */
$db = $this -> _dms -> getDB ();
2017-02-10 07:04:19 +00:00
$queryStr = " UPDATE `tblGroups` SET `comment` = " . $db -> qstr ( $newComment ) . " WHERE `id` = " . $this -> _id ;
2010-11-24 15:43:08 +00:00
if ( ! $db -> getResult ( $queryStr ))
return false ;
$this -> _comment = $newComment ;
return true ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ return SeedDMS_Core_User [] | bool
*/
2010-11-24 15:43:08 +00:00
function getUsers () { /* {{{ */
$db = $this -> _dms -> getDB ();
if ( ! isset ( $this -> _users )) {
$queryStr = " SELECT `tblUsers`.* FROM `tblUsers` " .
" LEFT JOIN `tblGroupMembers` ON `tblGroupMembers`.`userID`=`tblUsers`.`id` " .
" WHERE `tblGroupMembers`.`groupID` = ' " . $this -> _id . " ' " ;
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
$this -> _users = array ();
2015-07-15 06:20:27 +00:00
$classname = $this -> _dms -> getClassname ( 'user' );
2010-11-24 15:43:08 +00:00
foreach ( $resArr as $row ) {
2018-02-08 08:25:45 +00:00
/** @var SeedDMS_Core_User $user */
2015-07-15 06:20:27 +00:00
$user = new $classname ( $row [ " id " ], $row [ " login " ], $row [ " pwd " ], $row [ " fullName " ], $row [ " email " ], $row [ " language " ], $row [ " theme " ], $row [ " comment " ], $row [ " role " ], $row [ 'hidden' ]);
2020-09-23 09:39:00 +00:00
$user -> setDMS ( $this -> _dms );
2010-11-24 15:43:08 +00:00
array_push ( $this -> _users , $user );
}
}
return $this -> _users ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ return SeedDMS_Core_User [] | bool
*/
2011-10-07 16:15:08 +00:00
function getManagers () { /* {{{ */
$db = $this -> _dms -> getDB ();
$queryStr = " SELECT `tblUsers`.* FROM `tblUsers` " .
" LEFT JOIN `tblGroupMembers` ON `tblGroupMembers`.`userID`=`tblUsers`.`id` " .
2017-02-13 11:47:15 +00:00
" WHERE `tblGroupMembers`.`groupID` = ' " . $this -> _id . " ' AND `tblGroupMembers`.`manager` = 1 " ;
2011-10-07 16:15:08 +00:00
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
$managers = array ();
2015-07-15 06:20:27 +00:00
$classname = $this -> _dms -> getClassname ( 'user' );
2011-10-07 16:15:08 +00:00
foreach ( $resArr as $row ) {
2018-02-08 08:25:45 +00:00
/** @var SeedDMS_Core_User $user */
2015-07-15 06:20:27 +00:00
$user = new $classname ( $row [ " id " ], $row [ " login " ], $row [ " pwd " ], $row [ " fullName " ], $row [ " email " ], $row [ " language " ], $row [ " theme " ], $row [ " comment " ], $row [ " role " ], $row [ 'hidden' ]);
2020-09-23 09:39:00 +00:00
$user -> setDMS ( $this -> _dms );
2011-10-07 16:15:08 +00:00
array_push ( $managers , $user );
}
return $managers ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ param SeedDMS_Core_User $user
* @ param bool $asManager
* @ return bool
*/
2010-11-24 15:43:08 +00:00
function addUser ( $user , $asManager = false ) { /* {{{ */
$db = $this -> _dms -> getDB ();
2017-02-10 07:04:19 +00:00
$queryStr = " INSERT INTO `tblGroupMembers` (`groupID`, `userID`, `manager`) VALUES ( " . $this -> _id . " , " . $user -> getID () . " , " . ( $asManager ? " 1 " : " 0 " ) . " ) " ;
2010-10-29 13:19:51 +00:00
$res = $db -> getResult ( $queryStr );
2010-11-24 15:43:08 +00:00
2016-02-15 07:04:38 +00:00
if ( ! $res ) return false ;
2010-11-24 15:43:08 +00:00
unset ( $this -> _users );
return true ;
} /* }}} */
2018-02-08 08:25:45 +00:00
/**
* @ param SeedDMS_Core_User $user
* @ return bool
*/
2010-11-24 15:43:08 +00:00
function removeUser ( $user ) { /* {{{ */
$db = $this -> _dms -> getDB ();
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblGroupMembers` WHERE `groupID` = " . $this -> _id . " AND `userID` = " . $user -> getID ();
2010-10-29 13:19:51 +00:00
$res = $db -> getResult ( $queryStr );
2010-11-24 15:43:08 +00:00
2016-02-15 07:04:38 +00:00
if ( ! $res ) return false ;
2010-11-24 15:43:08 +00:00
unset ( $this -> _users );
return true ;
} /* }}} */
2010-10-29 13:19:51 +00:00
2016-07-28 06:05:40 +00:00
/**
* Check if user is member of group
*
2017-11-08 12:54:49 +00:00
* @ param SeedDMS_Core_User $user user to be checked
2016-07-28 06:05:40 +00:00
* @ param boolean $asManager also check whether user is manager of group if
* set to true , otherwise does not care about manager status
* @ return boolean true if user is member , otherwise false
*/
2010-11-24 15:43:08 +00:00
function isMember ( $user , $asManager = false ) { /* {{{ */
if ( isset ( $this -> _users ) &&! $asManager ) {
foreach ( $this -> _users as $usr )
if ( $usr -> getID () == $user -> getID ())
return true ;
return false ;
}
$db = $this -> _dms -> getDB ();
2017-02-10 07:04:19 +00:00
if ( $asManager ) $queryStr = " SELECT * FROM `tblGroupMembers` WHERE `groupID` = " . $this -> _id . " AND `userID` = " . $user -> getID () . " AND `manager` = 1 " ;
else $queryStr = " SELECT * FROM `tblGroupMembers` WHERE `groupID` = " . $this -> _id . " AND `userID` = " . $user -> getID ();
2010-10-29 13:19:51 +00:00
$resArr = $db -> getResultArray ( $queryStr );
2010-11-24 15:43:08 +00:00
if ( is_bool ( $resArr ) && $resArr == false ) return false ;
2010-10-29 13:19:51 +00:00
if ( count ( $resArr ) != 1 ) return false ;
2010-11-24 15:43:08 +00:00
return true ;
} /* }}} */
2016-07-28 06:05:40 +00:00
/**
* Toggle manager status of user
*
2017-11-08 12:54:49 +00:00
* @ param SeedDMS_Core_User $user
2016-07-28 06:05:40 +00:00
* @ return boolean true if operation was successful , otherwise false
*/
2010-11-24 15:43:08 +00:00
function toggleManager ( $user ) { /* {{{ */
$db = $this -> _dms -> getDB ();
2010-10-29 13:19:51 +00:00
if ( ! $this -> isMember ( $user )) return false ;
2010-11-24 15:43:08 +00:00
2017-02-10 07:04:19 +00:00
if ( $this -> isMember ( $user , true )) $queryStr = " UPDATE `tblGroupMembers` SET `manager` = 0 WHERE `groupID` = " . $this -> _id . " AND `userID` = " . $user -> getID ();
else $queryStr = " UPDATE `tblGroupMembers` SET `manager` = 1 WHERE `groupID` = " . $this -> _id . " AND `userID` = " . $user -> getID ();
2010-11-24 15:43:08 +00:00
if ( ! $db -> getResult ( $queryStr )) return false ;
2010-10-29 13:19:51 +00:00
return true ;
2010-11-24 15:43:08 +00:00
} /* }}} */
/**
2010-12-22 19:47:08 +00:00
* Delete user group
* This function deletes the user group and all it references , like access
* control lists , notifications , as a child of other groups , etc .
*
2017-11-08 12:54:49 +00:00
* @ param SeedDMS_Core_User $user the user doing the removal ( needed for entry in
2010-12-22 19:47:08 +00:00
* review log .
* @ return boolean true on success or false in case of an error
2010-11-24 15:43:08 +00:00
*/
2010-12-22 19:47:08 +00:00
function remove ( $user ) { /* {{{ */
2010-11-24 15:43:08 +00:00
$db = $this -> _dms -> getDB ();
2012-10-22 13:33:30 +00:00
$db -> startTransaction ();
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblGroupMembers` WHERE `groupID` = " . $this -> _id ;
2012-10-22 13:33:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
2010-10-29 13:19:51 +00:00
return false ;
2012-10-22 13:33:30 +00:00
}
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblACLs` WHERE `groupID` = " . $this -> _id ;
2012-10-22 13:33:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
2010-10-29 13:19:51 +00:00
return false ;
2012-10-22 13:33:30 +00:00
}
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblNotify` WHERE `groupID` = " . $this -> _id ;
2012-10-22 13:33:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
2010-11-24 15:43:08 +00:00
return false ;
2012-10-22 13:33:30 +00:00
}
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblMandatoryReviewers` WHERE `reviewerGroupID` = " . $this -> _id ;
2012-10-22 13:33:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
2010-11-24 15:43:08 +00:00
return false ;
2012-10-22 13:33:30 +00:00
}
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblMandatoryApprovers` WHERE `approverGroupID` = " . $this -> _id ;
2012-10-22 13:33:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
return false ;
}
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblWorkflowTransitionGroups` WHERE `groupid` = " . $this -> _id ;
2013-02-05 10:06:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
return false ;
}
2017-02-10 07:04:19 +00:00
$queryStr = " DELETE FROM `tblGroups` WHERE `id` = " . $this -> _id ;
2012-10-22 13:33:30 +00:00
if ( ! $db -> getResult ( $queryStr )) {
$db -> rollbackTransaction ();
2010-11-24 15:43:08 +00:00
return false ;
2012-10-22 13:33:30 +00:00
}
2010-11-24 15:43:08 +00:00
2010-10-29 13:19:51 +00:00
// TODO : update document status if reviewer/approver has been deleted
2010-11-24 15:43:08 +00:00
$reviewStatus = $this -> getReviewStatus ();
foreach ( $reviewStatus as $r ) {
$queryStr = " INSERT INTO `tblDocumentReviewLog` (`reviewID`, `status`, `comment`, `date`, `userID`) " .
2015-09-22 05:50:36 +00:00
" VALUES (' " . $r [ " reviewID " ] . " ', '-2', 'Review group removed from process', " . $db -> getCurrentDatetime () . " , ' " . $user -> getID () . " ') " ;
2010-11-24 15:43:08 +00:00
$res = $db -> getResult ( $queryStr );
2012-10-22 13:33:30 +00:00
if ( ! $res ) {
$db -> rollbackTransaction ();
return false ;
}
2010-11-24 15:43:08 +00:00
}
$approvalStatus = $this -> getApprovalStatus ();
foreach ( $approvalStatus as $a ) {
$queryStr = " INSERT INTO `tblDocumentApproveLog` (`approveID`, `status`, `comment`, `date`, `userID`) " .
2015-09-22 05:50:36 +00:00
" VALUES (' " . $a [ " approveID " ] . " ', '-2', 'Approval group removed from process', " . $db -> getCurrentDatetime () . " , ' " . $user -> getID () . " ') " ;
2010-11-24 15:43:08 +00:00
$res = $db -> getResult ( $queryStr );
2012-10-22 13:33:30 +00:00
if ( ! $res ) {
$db -> rollbackTransaction ();
return false ;
}
2010-11-24 15:43:08 +00:00
}
2012-10-22 13:33:30 +00:00
$db -> commitTransaction ();
2010-11-24 15:43:08 +00:00
return true ;
} /* }}} */
function getReviewStatus ( $documentID = null , $version = null ) { /* {{{ */
$db = $this -> _dms -> getDB ();
if ( ! $db -> createTemporaryTable ( " ttreviewid " )) {
return false ;
}
$status = array ();
// See if the group is assigned as a reviewer.
$queryStr = " SELECT `tblDocumentReviewers`.*, `tblDocumentReviewLog`.`status`, " .
" `tblDocumentReviewLog`.`comment`, `tblDocumentReviewLog`.`date`, " .
" `tblDocumentReviewLog`.`userID` " .
" FROM `tblDocumentReviewers` " .
" LEFT JOIN `tblDocumentReviewLog` USING (`reviewID`) " .
" LEFT JOIN `ttreviewid` on `ttreviewid`.`maxLogID` = `tblDocumentReviewLog`.`reviewLogID` " .
" WHERE `ttreviewid`.`maxLogID`=`tblDocumentReviewLog`.`reviewLogID` " .
2011-12-01 21:20:58 +00:00
( $documentID == null ? " " : " AND `tblDocumentReviewers`.`documentID` = ' " . ( int ) $documentID . " ' " ) .
( $version == null ? " " : " AND `tblDocumentReviewers`.`version` = ' " . ( int ) $version . " ' " ) .
2010-11-24 15:43:08 +00:00
" AND `tblDocumentReviewers`.`type`='1' " .
" AND `tblDocumentReviewers`.`required`=' " . $this -> _id . " ' " ;
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
if ( count ( $resArr ) > 0 ) {
foreach ( $resArr as $res )
$status [] = $res ;
}
return $status ;
} /* }}} */
function getApprovalStatus ( $documentID = null , $version = null ) { /* {{{ */
$db = $this -> _dms -> getDB ();
if ( ! $db -> createTemporaryTable ( " ttapproveid " )) {
return false ;
}
$status = array ();
// See if the group is assigned as an approver.
$queryStr = " SELECT `tblDocumentApprovers`.*, `tblDocumentApproveLog`.`status`, " .
" `tblDocumentApproveLog`.`comment`, `tblDocumentApproveLog`.`date`, " .
" `tblDocumentApproveLog`.`userID` " .
" FROM `tblDocumentApprovers` " .
" LEFT JOIN `tblDocumentApproveLog` USING (`approveID`) " .
" LEFT JOIN `ttapproveid` on `ttapproveid`.`maxLogID` = `tblDocumentApproveLog`.`approveLogID` " .
" WHERE `ttapproveid`.`maxLogID`=`tblDocumentApproveLog`.`approveLogID` " .
2011-12-01 21:20:58 +00:00
( $documentID == null ? " " : " AND `tblDocumentApprovers`.`documentID` = ' " . ( int ) $documentID . " ' " ) .
( $version == null ? " " : " AND `tblDocumentApprovers`.`version` = ' " . ( int ) $version . " ' " ) .
2010-11-24 15:43:08 +00:00
" AND `tblDocumentApprovers`.`type`='1' " .
" AND `tblDocumentApprovers`.`required`=' " . $this -> _id . " ' " ;
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
if ( count ( $resArr ) > 0 ) {
foreach ( $resArr as $res )
$status [] = $res ;
}
return $status ;
} /* }}} */
2016-02-05 15:47:54 +00:00
2016-02-10 09:32:27 +00:00
/**
* Get a list of documents with a workflow
*
* @ param int $documentID optional document id for which to retrieve the
* reviews
* @ param int $version optional version of the document
2017-11-08 12:54:49 +00:00
* @ return bool | array list of all workflows
2016-02-10 09:32:27 +00:00
*/
function getWorkflowStatus ( $documentID = null , $version = null ) { /* {{{ */
$db = $this -> _dms -> getDB ();
2017-02-10 07:04:19 +00:00
$queryStr = 'select distinct d.*, c.`groupid` from `tblWorkflowTransitions` a left join `tblWorkflows` b on a.`workflow`=b.`id` left join `tblWorkflowTransitionGroups` c on a.`id`=c.`transition` left join `tblWorkflowDocumentContent` d on b.`id`=d.`workflow` where d.`document` is not null and a.`state`=d.`state` and c.`groupid`=' . $this -> _id ;
2016-02-10 09:32:27 +00:00
if ( $documentID ) {
2017-02-10 07:04:19 +00:00
$queryStr .= ' AND d.`document`=' . ( int ) $documentID ;
2016-02-10 09:32:27 +00:00
if ( $version )
2017-02-10 07:04:19 +00:00
$queryStr .= ' AND d.`version`=' . ( int ) $version ;
2016-02-10 09:32:27 +00:00
}
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && $resArr == false )
return false ;
$result = array ();
if ( count ( $resArr ) > 0 ) {
foreach ( $resArr as $res ) {
$result [] = $res ;
}
}
return $result ;
} /* }}} */
2016-02-05 15:47:54 +00:00
/**
* Get all notifications of group
*
* @ param integer $type type of item ( T_DOCUMENT or T_FOLDER )
2017-11-08 12:54:49 +00:00
* @ return SeedDMS_Core_Notification [] | bool array of notifications
2016-02-05 15:47:54 +00:00
*/
2016-03-08 13:56:27 +00:00
function getNotifications ( $type = 0 ) { /* {{{ */
2016-02-05 15:47:54 +00:00
$db = $this -> _dms -> getDB ();
$queryStr = " SELECT `tblNotify`.* FROM `tblNotify` " .
" WHERE `tblNotify`.`groupID` = " . $this -> _id ;
if ( $type ) {
$queryStr .= " AND `tblNotify`.`targetType` = " . ( int ) $type ;
}
$resArr = $db -> getResultArray ( $queryStr );
if ( is_bool ( $resArr ) && ! $resArr )
return false ;
$notifications = array ();
foreach ( $resArr as $row ) {
$not = new SeedDMS_Core_Notification ( $row [ " target " ], $row [ " targetType " ], $row [ " userID " ], $row [ " groupID " ]);
2020-09-23 09:39:00 +00:00
$not -> setDMS ( $this -> _dms );
2016-02-05 15:47:54 +00:00
array_push ( $notifications , $not );
}
return $notifications ;
} /* }}} */
2016-07-27 06:29:52 +00:00
} /* }}} */