Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
            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');
Esempio n. 3
0
 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;
     }
 }
 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;
     }
 }
Esempio n. 5
0
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
 * Coral Gables, FL, 33134, USA, or email info@colosa.com.
 */
if (($RBAC_Response = $RBAC->userCanAccess("PM_USERS")) != 1) {
    return $RBAC_Response;
}
G::LoadInclude('ajax');
$_POST['action'] = get_ajax_value('action');
switch ($_POST['action']) {
    case 'showUsers':
        G::LoadClass('groups');
        $oGroups = new Groups();
        $oGroup = new Groupwf();
        $aFields = $oGroup->load($_POST['sGroupUID']);
        global $G_PUBLISH;
        $G_PUBLISH = new Publisher();
        //$G_PUBLISH->AddContent('xmlform', 'xmlform', 'groups/groups_UsersListTitle', '', array('GRP_NAME' => $aFields['GRP_TITLE']));
        $G_PUBLISH->AddContent('propeltable', 'groups/paged-table2', 'groups/groups_UsersList', $oGroups->getUsersGroupCriteria($_POST['sGroupUID']), array('GRP_UID' => $_POST['sGroupUID'], 'GRP_NAME' => $aFields['GRP_TITLE']));
        $oHeadPublisher =& headPublisher::getSingleton();
        $oHeadPublisher->addScriptCode("groupname=\"{$aFields["GRP_TITLE"]}\";");
        G::RenderPage('publish', 'raw');
        break;
    case 'assignUser':
        G::LoadClass('groups');
        $oGroup = new Groups();
        $oGroup->addUserToGroup($_POST['GRP_UID'], $_POST['USR_UID']);
        break;
    case 'assignAllUsers':
        G::LoadClass('groups');
 /**
  * Get list for Process Permissions
  *
  * @var string $pro_uid. Uid for Process
  * @var string $op_uid. Uid for Process Permission
  *
  * @access public
  * @author Brayan Pereyra (Cochalo) <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @return array
  */
 public function getProcessPermissions($pro_uid, $op_uid = '')
 {
     $pro_uid = $this->validateProUid($pro_uid);
     if ($op_uid != '') {
         $op_uid = $this->validateOpUid($op_uid);
     }
     G::LoadClass('case');
     Cases::verifyTable();
     $aObjectsPermissions = array();
     $oCriteria = new \Criteria('workflow');
     $oCriteria->add(ObjectPermissionPeer::PRO_UID, $pro_uid);
     if ($op_uid != '') {
         $oCriteria->add(ObjectPermissionPeer::OP_UID, $op_uid);
     }
     $oDataset = ObjectPermissionPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     while ($aRow = $oDataset->getRow()) {
         //Obtain task target
         if ($aRow['TAS_UID'] != '' && $aRow['TAS_UID'] != '0') {
             try {
                 $oTask = new \Task();
                 $aFields = $oTask->load($aRow['TAS_UID']);
                 $sTaskTarget = $aFields['TAS_TITLE'];
             } catch (\Exception $oError) {
                 $sTaskTarget = 'All Tasks';
             }
         } else {
             $sTaskTarget = G::LoadTranslation('ID_ANY_TASK');
         }
         //Obtain user or group
         if ($aRow['OP_USER_RELATION'] == 1) {
             $oUser = new \Users();
             $aFields = $oUser->load($aRow['USR_UID']);
             $sUserGroup = $aFields['USR_FIRSTNAME'] . ' ' . $aFields['USR_LASTNAME'] . ' (' . $aFields['USR_USERNAME'] . ')';
         } else {
             $oGroup = new \Groupwf();
             if ($aRow['USR_UID'] != '') {
                 try {
                     $aFields = $oGroup->load($aRow['USR_UID']);
                     $sUserGroup = $aFields['GRP_TITLE'];
                 } catch (\Exception $oError) {
                     $sUserGroup = '(GROUP DELETED)';
                 }
             } else {
                 $sUserGroup = G::LoadTranslation('ID_ANY');
             }
         }
         //Obtain task source
         if ($aRow['OP_TASK_SOURCE'] != '' && $aRow['OP_TASK_SOURCE'] != '0') {
             try {
                 $oTask = new \Task();
                 $aFields = $oTask->load($aRow['OP_TASK_SOURCE']);
                 $sTaskSource = $aFields['TAS_TITLE'];
             } catch (\Exception $oError) {
                 $sTaskSource = 'All Tasks';
             }
         } else {
             $sTaskSource = G::LoadTranslation('ID_ANY_TASK');
         }
         //Obtain object and type
         switch ($aRow['OP_OBJ_TYPE']) {
             case 'ALL':
                 $sObjectType = G::LoadTranslation('ID_ALL');
                 $sObject = G::LoadTranslation('ID_ALL');
                 break;
             case 'ANY':
                 //For backward compatibility (some process with ANY instead of ALL
                 $sObjectType = G::LoadTranslation('ID_ALL');
                 $sObject = G::LoadTranslation('ID_ALL');
                 break;
                 /* case 'ANY_DYNAFORM':
                    $sObjectType = G::LoadTranslation('ID_ANY_DYNAFORM');
                    $sObject     = G::LoadTranslation('ID_ALL');
                    break;
                    case 'ANY_INPUT':
                    $sObjectType = G::LoadTranslation('ID_ANY_INPUT');
                    $sObject     = G::LoadTranslation('ID_ALL');
                    break;
                    case 'ANY_OUTPUT':
                    $sObjectType = G::LoadTranslation('ID_ANY_OUTPUT');
                    $sObject     = G::LoadTranslation('ID_ALL');
                    break; */
             /* case 'ANY_DYNAFORM':
                $sObjectType = G::LoadTranslation('ID_ANY_DYNAFORM');
                $sObject     = G::LoadTranslation('ID_ALL');
                break;
                case 'ANY_INPUT':
                $sObjectType = G::LoadTranslation('ID_ANY_INPUT');
                $sObject     = G::LoadTranslation('ID_ALL');
                break;
                case 'ANY_OUTPUT':
                $sObjectType = G::LoadTranslation('ID_ANY_OUTPUT');
                $sObject     = G::LoadTranslation('ID_ALL');
                break; */
             case 'DYNAFORM':
                 $sObjectType = G::LoadTranslation('ID_DYNAFORM');
                 if ($aRow['OP_OBJ_UID'] != '' && $aRow['OP_OBJ_UID'] != '0') {
                     $oDynaform = new \Dynaform();
                     $aFields = $oDynaform->load($aRow['OP_OBJ_UID']);
                     $sObject = $aFields['DYN_TITLE'];
                 } else {
                     $sObject = G::LoadTranslation('ID_ALL');
                 }
                 break;
             case 'INPUT':
                 $sObjectType = G::LoadTranslation('ID_INPUT_DOCUMENT');
                 if ($aRow['OP_OBJ_UID'] != '' && $aRow['OP_OBJ_UID'] != '0') {
                     $oInputDocument = new \InputDocument();
                     $aFields = $oInputDocument->load($aRow['OP_OBJ_UID']);
                     $sObject = $aFields['INP_DOC_TITLE'];
                 } else {
                     $sObject = G::LoadTranslation('ID_ALL');
                 }
                 break;
             case 'OUTPUT':
                 $sObjectType = G::LoadTranslation('ID_OUTPUT_DOCUMENT');
                 if ($aRow['OP_OBJ_UID'] != '' && $aRow['OP_OBJ_UID'] != '0') {
                     $oOutputDocument = new \OutputDocument();
                     $aFields = $oOutputDocument->load($aRow['OP_OBJ_UID']);
                     $sObject = $aFields['OUT_DOC_TITLE'];
                 } else {
                     $sObject = G::LoadTranslation('ID_ALL');
                 }
                 break;
             case 'CASES_NOTES':
                 $sObjectType = G::LoadTranslation('ID_CASES_NOTES');
                 $sObject = 'N/A';
                 break;
             case 'MSGS_HISTORY':
                 $sObjectType = G::LoadTranslation('MSGS_HISTORY');
                 $sObject = G::LoadTranslation('ID_ALL');
                 break;
             default:
                 $sObjectType = G::LoadTranslation('ID_ALL');
                 $sObject = G::LoadTranslation('ID_ALL');
                 break;
         }
         //Participated
         if ($aRow['OP_PARTICIPATE'] == 0) {
             $sParticipated = G::LoadTranslation('ID_NO');
         } else {
             $sParticipated = G::LoadTranslation('ID_YES');
         }
         //Obtain action (permission)
         $sAction = G::LoadTranslation('ID_' . $aRow['OP_ACTION']);
         //Add to array
         $arrayTemp = array();
         $arrayTemp = array_merge($aRow, array('OP_UID' => $aRow['OP_UID'], 'TASK_TARGET' => $sTaskTarget, 'GROUP_USER' => $sUserGroup, 'TASK_SOURCE' => $sTaskSource, 'OBJECT_TYPE' => $sObjectType, 'OBJECT' => $sObject, 'PARTICIPATED' => $sParticipated, 'ACTION' => $sAction, 'OP_CASE_STATUS' => $aRow['OP_CASE_STATUS']));
         $aObjectsPermissions[] = array_change_key_case($arrayTemp, CASE_LOWER);
         $oDataset->next();
     }
     if ($op_uid != '' && empty($aObjectsPermissions)) {
         throw new \Exception(\G::LoadTranslation("ID_ROW_DOES_NOT_EXIST"));
     } elseif ($op_uid != '' && !empty($aObjectsPermissions)) {
         $aObjectsPermissions = array_change_key_case($aObjectsPermissions, CASE_LOWER);
         return current($aObjectsPermissions);
     }
     $aObjectsPermissions = array_change_key_case($aObjectsPermissions, CASE_LOWER);
     return $aObjectsPermissions;
 }
Esempio n. 7
0
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');