Merge branch '2.0-dev' of git.colosa.net:processmaker into 2.0-dev
This commit is contained in:
@@ -107,20 +107,39 @@ class PMDashlet extends DashletInstance implements DashletInterface {
|
||||
|
||||
public function getDashletsInstancesForUser($userUid) {
|
||||
try {
|
||||
$dashletsInstances = array();
|
||||
// Include required classes
|
||||
//
|
||||
require_once 'classes/model/Department.php';
|
||||
// Check for "public" dashlets
|
||||
// ToDo: Next release
|
||||
// Check for the direct assignments
|
||||
// ToDo: Next release
|
||||
// Check for department assigments
|
||||
//
|
||||
$departmentInstance = new Department();
|
||||
$departments = $departmentInstance->getDepartmentsForUser($userUid);
|
||||
foreach ($departments as $depUid => $department) {
|
||||
$criteria = new Criteria('workflow');
|
||||
$criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID);
|
||||
$criteria->addSelectColumn(DashletPeer::DAS_TITLE);
|
||||
$criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'DEPARTMENT');
|
||||
$criteria->add(DashletInstancePeer::DAS_INS_OWNER_UID, $depUid);
|
||||
$dataset = DashletInstancePeer::doSelectRS($criteria);
|
||||
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$dataset->next();
|
||||
while ($row = $dataset->getRow()) {
|
||||
if (!isset($dashletsInstances[$row['DAS_INS_UID']])) {
|
||||
$dashletsInstances[$row['DAS_INS_UID']] = $row;
|
||||
}
|
||||
$dataset->next();
|
||||
}
|
||||
}
|
||||
// Check for group assignments
|
||||
// ToDo: Next release
|
||||
// Check for role assigments
|
||||
// ToDo: Next release
|
||||
// Check for permission assigments
|
||||
// ToDo: Next release
|
||||
return array_values($dashletsInstances);
|
||||
}
|
||||
catch (Exception $error) {
|
||||
throw $error;
|
||||
|
||||
@@ -591,4 +591,31 @@ function getDepartments( $DepParent ) {
|
||||
return $aRows;
|
||||
}
|
||||
|
||||
function getDepartmentsForUser($userUid) {
|
||||
$criteria = new Criteria('workflow');
|
||||
$criteria->addSelectColumn(UsersPeer::DEP_UID);
|
||||
$criteria->addAsColumn('DEP_TITLE', 'C.CON_VALUE');
|
||||
$criteria->addAlias('C', 'CONTENT');
|
||||
$criteria->addJoin(UsersPeer::DEP_UID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN);
|
||||
$delimiter = DBAdapter::getStringDelimiter();
|
||||
$conditions = array();
|
||||
$conditions [] = array(DepartmentPeer::DEP_UID, 'C.CON_ID');
|
||||
$conditions [] = array('C.CON_CATEGORY', $delimiter . 'DEPO_TITLE' . $delimiter);
|
||||
$conditions [] = array('C.CON_LANG', $delimiter . SYS_LANG . $delimiter);
|
||||
$criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
|
||||
$criteria->add(UsersPeer::USR_UID, $userUid);
|
||||
$criteria->add(UsersPeer::DEP_UID, '', Criteria::NOT_EQUAL);
|
||||
$dataset = DepartmentPeer::doSelectRS($criteria);
|
||||
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$dataset->next();
|
||||
$departments = array();
|
||||
while ($row = $dataset->getRow()) {
|
||||
if (!isset($departments[$row['DEP_UID']])) {
|
||||
$departments[$row['DEP_UID']] = $row;
|
||||
}
|
||||
$dataset->next();
|
||||
}
|
||||
return $departments;
|
||||
}
|
||||
|
||||
} // Department
|
||||
|
||||
Reference in New Issue
Block a user