/** * Merge groupwfs data * * @param array $arrayGroupwfsData Data groupwfs * @param array $arrayData Data for merge * @param string $groupUidFieldNameInArrayData Field name of unique id * * return array Return an array with all groupwfs data */ public function groupwfsMerge(array $arrayGroupwfsData, array $arrayData, $groupUidFieldNameInArrayData = "GRP_UID") { try { $arrayUid = array(); foreach ($arrayGroupwfsData as $value) { $record = $value; $arrayUid[] = $record["GRP_UID"]; } //Merge $groupwf = new Groupwf(); foreach ($arrayData as $value) { $record = $value; if (isset($record[$groupUidFieldNameInArrayData]) && !in_array($record[$groupUidFieldNameInArrayData], $arrayUid)) { $arrayGroupwfsData[] = $groupwf->Load($record[$groupUidFieldNameInArrayData]); } } //Return return $arrayGroupwfsData; } catch (Exception $e) { throw $e; } }
G::header('location: ../login/login'); die; break; case -2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die; break; default: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } } if (($RBAC_Response = $RBAC->userCanAccess("PM_USERS")) != 1) { return $RBAC_Response; } G::LoadClass('groups'); $G_MAIN_MENU = 'wf.login'; $G_MENU_SELECTED = ''; $group = new Groupwf(); if ($_POST['form']['GRP_UID'] === '') { $grpRow = $_POST['form']; unset($grpRow['GRP_UID']); $group->create($grpRow); //$_POST['form']['GRP_UID']=$group->getGrpUid(); //$group->update($_POST['form']); } else { $group->update($_POST['form']); }
/** * Get groups list * * @param $params httpdata object */ public function getGroups($params) { require_once 'classes/model/Groupwf.php'; $search = isset($params->search) ? $params->search : null; return Groupwf::getAll($params->start, $params->limit, $search); }
public function getGroups($params) { require_once 'classes/model/Groupwf.php'; $search = isset($params['search']) ? $params['search'] : null; $groups = Groupwf::getAll($params['start'], $params['limit'], $search); print G::json_encode($groups); }
case -1: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; case -2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die; break; default: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } } if (($RBAC_Response = $RBAC->userCanAccess("PM_USERS")) != 1) { return $RBAC_Response; } G::LoadClass('groups'); $group = new Groupwf(); if (!isset($_POST['GRP_UID'])) { return; } $group->remove(urldecode($_POST['GRP_UID'])); require_once 'classes/model/TaskUser.php'; $oProcess = new TaskUser(); $oCriteria = new Criteria('workflow'); $oCriteria->add(TaskUserPeer::USR_UID, $_POST['GRP_UID']); TaskUserPeer::doDelete($oCriteria);
/** * Set a user to group * * @param string $GrpUid, $UsrUid * @return array */ public function addUserToGroup($GrpUid, $UsrUid) { try { $oGrp = GroupUserPeer::retrieveByPk($GrpUid, $UsrUid); if (is_object($oGrp) && get_class($oGrp) == 'GroupUser') { return true; } else { $oGrp = new GroupUser(); $oGrp->setGrpUid($GrpUid); $oGrp->setUsrUid($UsrUid); $oGrp->Save(); $oGrpwf = new Groupwf(); $grpName = $oGrpwf->loadByGroupUid($GrpUid); $oUsr = new Users(); $usrName = $oUsr->load($UsrUid); G::auditLog("AssignUserToGroup", "Assign user " . $usrName['USR_USERNAME'] . " (" . $UsrUid . ") to group " . $grpName['CON_VALUE'] . " (" . $GrpUid . ") "); } } catch (exception $oError) { throw $oError; } }
/** * Get all users assigned to Group * * @param string $gprUid * @return array $rows */ public function getAllGroupUser($gprUid) { $oCriteria = new Criteria('workflow'); $oCriteria->add(GroupUserPeer::GRP_UID, $gprUid); $oDataset = GroupUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rows = array(); while ($oDataset->next()) { $row = $oDataset->getRow(); $g = new Groupwf(); try { $grpRow = $g->load($row['GRP_UID']); $row = array_merge($row, $grpRow); $rows[] = $row; } catch (Exception $e) { continue; } } return $rows; }
public function getExtTaskUsersAdHocCriteria($start, $limit, $sTaskUID = '', $iType = 1) { try { $aUsers = array(); $aUsers[] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer'); $sDelimiter = DBAdapter::getStringDelimiter(); $oCriteria = new Criteria('workflow'); $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE'); $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID); $oCriteria->addSelectColumn(TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE); $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION); $oCriteria->addAlias('C', 'CONTENT'); $aConditions = array(); $aConditions[] = array(TaskUserPeer::USR_UID, 'C.CON_ID'); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter); $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID); $oCriteria->add(TaskUserPeer::TU_TYPE, $iType); $oCriteria->add(TaskUserPeer::TU_RELATION, 2); $this->tmpCriteria = clone $oCriteria; if ($start != '') { $oCriteria->setOffset($start); } if ($limit != '') { $oCriteria->setLimit($limit); } $oDataset = TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $c = 0; while ($aRow = $oDataset->getRow()) { $c++; $oGroup = new Groupwf(); $aFields = $oGroup->load($aRow['USR_UID']); if ($aFields['GRP_STATUS'] == 'ACTIVE') { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER'); $oCriteria->add(GroupUserPeer::GRP_UID, $aRow['USR_UID']); $oDataset2 = GroupUserPeer::doSelectRS($oCriteria); $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset2->next(); $aRow2 = $oDataset2->getRow(); } else { $aRow2['GROUP_INACTIVE'] = '<strong>(' . G::LoadTranslation('ID_GROUP_INACTIVE') . ')</strong>'; } $aUsers[] = array('LABEL' => !isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . ' <a href="#" onclick="usersGroup(\'' . $aRow['USR_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE'], 'TAS_UID' => $aRow['TAS_UID'], 'USR_UID' => $aRow['USR_UID'], 'TU_TYPE' => $aRow['TU_TYPE'], 'TU_RELATION' => $aRow['TU_RELATION']); $oDataset->next(); } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID); $oCriteria->addSelectColumn(TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE); $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION); $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID); $oCriteria->add(TaskUserPeer::TU_TYPE, $iType); $oCriteria->add(TaskUserPeer::TU_RELATION, 1); $oDataset = TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $aUsers[] = array('LABEL' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'], 'TAS_UID' => $aRow['TAS_UID'], 'USR_UID' => $aRow['USR_UID'], 'TU_TYPE' => $aRow['TU_TYPE'], 'TU_RELATION' => $aRow['TU_RELATION']); $oDataset->next(); } global $_DBArray; $_DBArray = isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''; $_DBArray['taskUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; G::LoadClass('ArrayPeer'); $oCriteria = new Criteria('dbarray'); $oCriteria->setDBArrayTable('taskUsers'); $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION); $oCriteria->addAscendingOrderByColumn('LABEL'); return $oCriteria; } catch (Exception $oError) { throw $oError; } }
/** * Get Task User Rows from an array of data * * @param array $aTaskUser * @return array $aStepTrigger */ public function createGroupRow($aGroupwf) { foreach ($aGroupwf as $key => $row) { $oGroupwf = new Groupwf(); if ($oGroupwf->GroupwfExists($row['GRP_UID'])) { $oGroupwf->remove($row['GRP_UID']); } $res = $oGroupwf->create($row); } }
/** * Validates all modified columns of given Groupwf object. * If parameter $columns is either a single column name or an array of column names * than only those columns are validated. * * NOTICE: This does not apply to primary or foreign keys for now. * * @param Groupwf $obj The object to validate. * @param mixed $cols Column name or array of column names. * * @return mixed TRUE if all columns are valid or the error message of the first invalid column. */ public static function doValidate(Groupwf $obj, $cols = null) { $columns = array(); if ($cols) { $dbMap = Propel::getDatabaseMap(GroupwfPeer::DATABASE_NAME); $tableMap = $dbMap->getTable(GroupwfPeer::TABLE_NAME); if (!is_array($cols)) { $cols = array($cols); } foreach ($cols as $colName) { if ($tableMap->containsColumn($colName)) { $get = 'get' . $tableMap->getColumn($colName)->getPhpName(); $columns[$colName] = $obj->{$get}(); } } } else { if ($obj->isNew() || $obj->isColumnModified(GroupwfPeer::GRP_STATUS)) { $columns[GroupwfPeer::GRP_STATUS] = $obj->getGrpStatus(); } } return BasePeer::doValidate(GroupwfPeer::DATABASE_NAME, GroupwfPeer::TABLE_NAME, $columns); }
/** * Delete Group * * @param string $groupUid Unique id of Group * * return void */ public function delete($groupUid) { try { //Verify data $this->throwExceptionIfNotExistsGroup($groupUid, $this->arrayFieldNameForException["groupUid"]); $arrayTotalTasksByGroup = $this->getTotalTasksByGroup($groupUid); if (isset($arrayTotalTasksByGroup[$groupUid]) && $arrayTotalTasksByGroup[$groupUid] > 0) { throw new \Exception(\G::LoadTranslation("ID_GROUP_CANNOT_DELETE_WHILE_ASSIGNED_TO_TASK")); } //Delete $group = new \Groupwf(); $result = $group->remove($groupUid); //Delete assignments of tasks $criteria = new \Criteria("workflow"); $criteria->add(\TaskUserPeer::USR_UID, $groupUid); \TaskUserPeer::doDelete($criteria); //Delete permissions $criteria = new \Criteria("workflow"); $criteria->add(\ObjectPermissionPeer::USR_UID, $groupUid); \ObjectPermissionPeer::doDelete($criteria); //Delete assignments of supervisors $criteria = new \Criteria("workflow"); $criteria->add(\ProcessUserPeer::USR_UID, $groupUid); $criteria->add(\ProcessUserPeer::PU_TYPE, "GROUP_SUPERVISOR"); \ProcessUserPeer::doDelete($criteria); } catch (\Exception $e) { throw $e; } }
/** * Validate Group Uid * @var string $grp_uid. Uid for group * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia * * @return string */ public function validateGrpUid($grp_uid) { $grp_uid = trim($grp_uid); if ($grp_uid == '') { throw new \Exception(\G::LoadTranslation("ID_GROUP_NOT_EXIST", array('grp_uid', ''))); } $oGroup = new \Groupwf(); if (!$oGroup->GroupwfExists($grp_uid)) { throw new \Exception(\G::LoadTranslation("ID_GROUP_NOT_EXIST", array('grp_uid', $grp_uid))); } return $grp_uid; }
G::header('location: ../login/login'); die; break; case -2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die; break; default: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } } if (($RBAC_Response = $RBAC->userCanAccess("PM_USERS")) != 1) { return $RBAC_Response; } G::LoadClass('groups'); $dbc = new DBConnection(); $ses = new DBSession($dbc); $group = new Groupwf(); $GrpUid = isset($_GET['UID']) ? urldecode($_GET['UID']) : ''; if ($GrpUid) { $aFields = $group->Load($GrpUid); } else { $aFields = array(); } $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_Edit', '', $aFields, 'groups_Save'); G::RenderPage("publish", "raw");
require_once PATH_CORE . '/classes/model/Groupwf.php'; $obj = new Groupwf(); $t = new lime_test(10, new lime_output_color()); $t->diag('class Groupwf'); $t->isa_ok($obj, 'Groupwf', 'class Groupwf created'); //method load //#2 $t->can_ok($obj, 'getGrpTitle', 'getGrpTitle() is callable'); //#3 $t->can_ok($obj, 'setGrpTitle', 'setGrpTitle() is callable'); //#4 $t->can_ok($obj, 'create', 'create() is callable'); //#5 $t->can_ok($obj, 'update', 'update() is callable'); //#6 $t->can_ok($obj, 'load', 'load() is callable'); //#7 $t->can_ok($obj, 'remove', 'remove() is callable'); //getGrpUid //#8 $t->is($obj->getGrpUid(), '', 'getGrpUid() return empty, when the instance doesnt have any row'); //getGrpTitle try { $obj = new Groupwf(); $res = $obj->getGrpTitle(); } catch (Exception $e) { //#9 $t->isa_ok($e, 'Exception', 'getGrpTitle() return error when GRP_UID is not defined'); //#10 $t->is($e->getMessage(), "Error in getGrpTitle, the GRP_UID can't be blank", 'getGrpTitle() return Error in getGrpTitle, the GRP_UID cant be blank'); }
/** * create Group * * @param string $groupName * @return $result will return an object */ public function createGroup ($groupName) { try { if (trim( $groupName ) == '') { $result = new wsCreateGroupResponse( 25, G::loadTranslation( 'ID_GROUP_NAME_REQUIRED' ), '' ); return $result; } $group = new Groupwf(); $grpRow['GRP_TITLE'] = $groupName; $groupId = $group->create( $grpRow ); $data['GROUP_NAME'] = $groupName; $result = new wsCreateGroupResponse( 0, G::loadTranslation( 'ID_GROUP_CREATED_SUCCESSFULLY', SYS_LANG, $data ), $groupId ); return $result; } catch (Exception $e) { $result = wsCreateGroupResponse( 100, $e->getMessage(), '' ); return $result; } }
public function getDashletsInstances($start = null, $limit = null) { try { $dashletsInstances = array(); $criteria = new Criteria('workflow'); $criteria->addSelectColumn('*'); $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN); if (!is_null($start)) { $criteria->setOffset($start); } if (!is_null($limit)) { $criteria->setLimit($limit); } $dataset = DashletInstancePeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); $row['DAS_INS_STATUS_LABEL'] = $row['DAS_INS_STATUS'] == '1' ? G::LoadTranslation('ID_ACTIVE') : G::LoadTranslation('ID_INACTIVE'); $row['DAS_INS_TITLE'] = isset($arrayField['DAS_INS_TITLE']) && !empty($arrayField['DAS_INS_TITLE']) ? $arrayField['DAS_INS_TITLE'] : ''; if (!class_exists($row['DAS_CLASS'])) { self::setIncludePath(); require_once 'classes' . PATH_SEP . 'class.' . $row['DAS_CLASS'] . '.php'; } eval("\$row['DAS_VERSION'] = defined('" . $row['DAS_CLASS'] . "::version') ? " . $row['DAS_CLASS'] . "::version : \$row['DAS_VERSION'];"); switch ($row['DAS_INS_OWNER_TYPE']) { case 'EVERYBODY': $row['DAS_INS_OWNER_TITLE'] = G::LoadTranslation('ID_ALL_USERS'); break; case 'USER': require_once 'classes/model/Users.php'; $userInstance = new Users(); try { $user = $userInstance->load($row['DAS_INS_OWNER_UID']); $row['DAS_INS_OWNER_TITLE'] = $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME']; } catch (Exception $error) { $this->remove($row['DAS_INS_UID']); $row['DAS_INS_UID'] = ''; } break; case 'DEPARTMENT': require_once 'classes/model/Department.php'; $departmentInstance = new Department(); try { $department = $departmentInstance->load($row['DAS_INS_OWNER_UID']); $row['DAS_INS_OWNER_TITLE'] = $department['DEPO_TITLE']; } catch (Exception $error) { $this->remove($row['DAS_INS_UID']); $row['DAS_INS_UID'] = ''; } break; case 'GROUP': require_once 'classes/model/Groupwf.php'; $groupInstance = new Groupwf(); try { $group = $groupInstance->load($row['DAS_INS_OWNER_UID']); $row['DAS_INS_OWNER_TITLE'] = $group['GRP_TITLE']; } catch (Exception $error) { $this->remove($row['DAS_INS_UID']); $row['DAS_INS_UID'] = ''; } break; default: $row['DAS_INS_OWNER_TITLE'] = $row['DAS_INS_OWNER_TYPE']; break; } if ($row['DAS_INS_UID'] != '') { $dashletsInstances[] = $row; } $dataset->next(); } return $dashletsInstances; } catch (Exception $error) { throw $error; } }
die; break; default: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } } if (($RBAC_Response = $RBAC->userCanAccess("PM_USERS")) != 1) { return $RBAC_Response; } $G_MAIN_MENU = 'processmaker'; $G_SUB_MENU = 'users'; $G_ID_MENU_SELECTED = 'USERS'; $G_ID_SUB_MENU_SELECTED = 'GROUPS'; $G_PUBLISH = new Publisher(); $oHeadPublisher =& headPublisher::getSingleton(); $oHeadPublisher->addExtJsScript('groups/groupsMembers', false); //adding a javascript file .js $oHeadPublisher->addContent('groups/groupsMembers'); //adding a html file .html. $labels = G::getTranslations(array('ID_GROUPS', 'ID_GROUP_NAME', 'ID_BACK', 'ID_ASSIGN_ALL_MEMBERS', 'ID_REMOVE_ALL_MEMBERS', 'ID_MSG_AJAX_FAILURE', 'ID_PROCESSING', 'ID_ENTER_SEARCH_TERM', 'ID_FIRST_NAME', 'ID_LAST_NAME', 'ID_USER_NAME', 'ID_AVAILABLE_MEMBERS', 'ID_ASSIGNED_MEMBERS')); G::LoadClass('groups'); $oGroup = new Groupwf(); $oGroup->load($_REQUEST['GRP_UID']); $groups['GRP_UID'] = $_REQUEST['GRP_UID']; $groups['GRP_TITLE'] = $oGroup->getGrpTitle(); //$oHeadPublisher->assign('TRANSLATIONS', $labels); $oHeadPublisher->assign('GROUPS', $groups); G::RenderPage('publish', 'extJs');
if ($access != 1) { switch ($access) { case -1: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; case -2: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels'); G::header('location: ../login/login'); die; break; default: G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); G::header('location: ../login/login'); die; break; } } if (($RBAC_Response = $RBAC->userCanAccess("PM_USERS")) != 1) { return $RBAC_Response; } G::LoadClass('groups'); $oGroups = new Groups(); $oGroup = new Groupwf(); $aFields = $oGroup->load($_GET['UID']); $G_PUBLISH = new Publisher(); //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_UsersListTitle', '', array('GRP_NAME' => $aFields['GRP_TITLE'])); $G_PUBLISH->AddContent('propeltable', 'groups/paged-table', 'groups/groups_AvailableUsers', $oGroups->getAvailableUsersCriteria($_GET['UID'])); //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_SelectUsers','', '','save' ); G::RenderPage('publish', 'raw');