function checkCredentials($params) { require_once 'classes/model/Event.php'; require_once 'classes/model/Users.php'; require_once 'classes/model/TaskUser.php'; require_once 'classes/model/GroupUser.php'; $sPRO_UID = $params->PRO_UID; $sEVN_UID = $params->EVN_UID; //$sDYNAFORM = $params->DYN_UID; $sWS_USER = trim($params->WS_USER); $sWS_PASS = trim($params->WS_PASS); if (G::is_https()) { $http = 'https://'; } else { $http = 'http://'; } $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2'; @($client = new SoapClient($endpoint)); $user = $sWS_USER; $pass = $sWS_PASS; $parameters = array('userid' => $user, 'password' => $pass); $result = $client->__SoapCall('login', array($parameters)); $fields['status_code'] = $result->status_code; $fields['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message; $fields['version'] = $result->version; $fields['time_stamp'] = $result->timestamp; $messageCode = true; $message = $result->message; G::LoadClass('Task'); //G::LoadClass ( 'Event' ); G::LoadClass('User'); G::LoadClass('TaskUser'); G::LoadClass('Groupwf'); $event = new Event(); $event->load($sEVN_UID); $sTASKS = $event->getEvnTasUidTo(); $task = new Task(); $task->load($sTASKS); $sTASKS_SEL = $task->getTasTitle(); if (!class_exists('GroupUser')) { G::LoadClass('GroupUser'); } // if the user has been authenticated, then check if has the rights or // permissions to create the webentry if ($result->status_code == 0) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID); $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); //$oCriteria->add(TaskUserPeer::TU_RELATION,1); $userIsAssigned = TaskUserPeer::doCount($oCriteria); // if the user is not assigned directly, maybe a have the task a group with the user if ($userIsAssigned < 1) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addJoin(UsersPeer::USR_UID, GroupUserPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->addJoin(GroupUserPeer::GRP_UID, TaskUserPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); $userIsAssigned = GroupUserPeer::doCount($oCriteria); if (!($userIsAssigned >= 1)) { $messageCode = false; $message = "The User \"" . $sWS_USER . "\" doesn't have the task \"" . $sTASKS_SEL . "\" assigned."; } } } else { $messageCode = false; } $this->success = $messageCode; $this->msg = $message; }
*/ if (!class_exists('GroupUser')) { G::LoadClass('GroupUser'); } // if the user has been authenticated, then check if has the rights or // permissions to create the webentry if ($result->status_code == 0) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID); $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); //$oCriteria->add(TaskUserPeer::TU_RELATION,1); $userIsAssigned = TaskUserPeer::doCount($oCriteria); // if the user is not assigned directly, maybe a have the task a group with the user if ($userIsAssigned < 1) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addJoin(UsersPeer::USR_UID, GroupUserPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->addJoin(GroupUserPeer::GRP_UID, TaskUserPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); $userIsAssigned = GroupUserPeer::doCount($oCriteria); if (!($userIsAssigned >= 1)) { $messageCode = "The User \"" . $sWS_USER . "\" doesn't have the task \"" . $sTASKS_SEL . "\" assigned"; } } } else { $messageCode = $result->message;
/** * Checks if the user exists * * @param string $userName Name * @param string $sTaskUID Task * * return message */ public function getUser($userName, $sTaskUID) { try { $sTASKS = $sTaskUID; $sWS_USER = trim($userName); $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\UsersPeer::USR_UID); $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->add(\TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(\UsersPeer::USR_USERNAME, $sWS_USER); $userIsAssigned = \TaskUserPeer::doCount($oCriteria); if ($userIsAssigned < 1) { $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\UsersPeer::USR_UID); $oCriteria->addJoin(\UsersPeer::USR_UID, \GroupUserPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\GroupUserPeer::GRP_UID, \TaskUserPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->add(\TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(\UsersPeer::USR_USERNAME, $sWS_USER); $userIsAssigned = \GroupUserPeer::doCount($oCriteria); if (!($userIsAssigned >= 1)) { throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_HAVE_ACTIVITY_ASSIGNED", array($sWS_USER, $sTASKS))); } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $messageCode = $aRow['USR_UID']; $oDataset->next(); } return $messageCode; } catch (\Exception $e) { throw $e; } }
public function countTaskUsers($criteria = null, $distinct = false, $con = null) { include_once 'lib/model/om/BaseTaskUserPeer.php'; if ($criteria === null) { $criteria = new Criteria(); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } $criteria->add(TaskUserPeer::USER_ID, $this->getId()); return TaskUserPeer::doCount($criteria, $distinct, $con); }
/** * Return the user that can start a task * * @param string $sProcessUID {@min 32} {@max 32} * @param string $sActivityUID {@min 32} {@max 32} * @param array $oData * * return array * * @access public */ public function projectWsUserCanStartTask($sProcessUID, $sActivityUID, $oData) { try { Validator::proUid($sProcessUID, '$prj_uid'); /** * process_webEntryValidate * validates if the username and password are valid data and if the user assigned * to the webentry has the rights and persmissions required */ $sTASKS = $sActivityUID; $sWS_USER = trim($oData['username']); $sWS_PASS = trim($oData['password']); if (\G::is_https()) { $http = 'https://'; } else { $http = 'http://'; } $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2'; @($client = new \SoapClient($endpoint)); $user = $sWS_USER; $pass = $sWS_PASS; $params = array('userid' => $user, 'password' => $pass); $result = $client->__SoapCall('login', array($params)); $fields['status_code'] = $result->status_code; $fields['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message; $fields['version'] = $result->version; $fields['time_stamp'] = $result->timestamp; $messageCode = 1; \G::LoadClass('Task'); \G::LoadClass('User'); \G::LoadClass('TaskUser'); \G::LoadClass('Groupwf'); /** * note added by gustavo cruz gustavo-at-colosa-dot-com * This is a little check to see if the GroupUser class has been declared or not. * Seems that the problem its present in a windows installation of PM however. * It's seems that could be replicated in a Linux server easily. * I recomend that in some way check already if a imported class is declared * somewhere else or maybe delegate the task to the G Class LoadClass method. */ if (!class_exists('GroupUser')) { \G::LoadClass('GroupUser'); } // if the user has been authenticated, then check if has the rights or // permissions to create the webentry if ($result->status_code == 0) { $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\UsersPeer::USR_UID); $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(\TaskPeer::PRO_UID); $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); if ($sTASKS) { $oCriteria->add(\TaskUserPeer::TAS_UID, $sTASKS); } $oCriteria->add(\UsersPeer::USR_USERNAME, $sWS_USER); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $userIsAssigned = \TaskUserPeer::doCount($oCriteria); // if the user is not assigned directly, maybe a have the task a group with the user if ($userIsAssigned < 1) { $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\UsersPeer::USR_UID); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addJoin(\UsersPeer::USR_UID, \GroupUserPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\GroupUserPeer::GRP_UID, \TaskUserPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); if ($sTASKS) { $oCriteria->add(\TaskUserPeer::TAS_UID, $sTASKS); } $oCriteria->add(\UsersPeer::USR_USERNAME, $sWS_USER); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $userIsAssigned = \GroupUserPeer::doCount($oCriteria); if (!($userIsAssigned >= 1)) { if ($sTASKS) { throw new \Exception(\G::LoadTranslation("ID_USER_NOT_ID_ACTIVITY", array($sWS_USER, $sTASKS))); } else { throw new \Exception(\G::LoadTranslation("ID_USER_NOT_ACTIVITY", array($sWS_USER))); } } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $messageCode = array('usr_uid' => $aRow['USR_UID'], 'usr_username' => $aRow['USR_USERNAME'], 'usr_firstname' => $aRow['USR_FIRSTNAME'], 'usr_lastname' => $aRow['USR_LASTNAME']); $oDataset->next(); } } else { throw new \Exception($result->message); } return $messageCode; } catch (Exception $e) { throw $e; } }