/** * Executes index action * */ public function executeIndex() { $u_id = sfContext::getInstance()->getUser()->getAttribute('subscriber_id', '-1', 'subscriber'); if ($u_id <= 0) { $this->subscribe = null; if ($this->getRequest()->getMethod() == sfRequest::POST) { try { $newUser = $this->getRequestParameter('email'); $this->subscribe = 'Thanks, we will contact you shortly at the email address you have provided'; /*$connection = new Swift_Connection_SMTP('smtp.gmail.com', 465, Swift_Connection_SMTP::ENC_SSL); $connection->setUsername('*****@*****.**'); $connection->setPassword('bRb061626'); $mailer = new Swift($connection); $message = new Swift_Message('USER REQUEST-'.$email); // Send $mailer->send($message, '*****@*****.**', '*****@*****.**'); $mailer->disconnect(); */ $email = new CycleBrainEmail(); $email->sendEmail('*****@*****.**', '*****@*****.**', 'BETA USER', $newUser); } catch (Exception $e) { echo 'MainActions:Index Caught exception: ', $e->getMessage(), "\n"; } } } else { $this->user = UsersPeer::retrieveByPK($u_id); } }
public function userNameFormat($username, $fullname, $usrUid = '') { $aux = ''; if ($usrUid != '') { $oUser = UsersPeer::retrieveByPK($usrUid); $aux = str_replace('@userName', trim($username), $this->UserConfig['format']); $aux = str_replace('@firstName', $oUser->getUsrFirstname(), $aux); $aux = str_replace('@lastName', $oUser->getUsrLastname(), $aux); } return $aux; }
public function uxUserUpdate($httpData) { require_once 'classes/model/Users.php'; $data = G::json_decode($httpData->users); $list = array(); if (!is_array($data)) { $list[0] = (array) $data; } else { $list = $data; } $rows = array(); foreach ($list as $value) { $value = (array) $value; $user = UsersPeer::retrieveByPK($value['USR_UID']); $user->setUsrUx($value['USR_UX']); $user->save(); $row = $user->toArray(BasePeer::TYPE_FIELDNAME); $uxList = self::getUxTypesList(); $row['USR_UX'] = $uxList[$user->getUsrUx()]; $rows[] = $row; } if (count($rows) == 1) { $retRow = $rows[0]; } else { $retRow = $rows; } return array('success' => true, 'message' => 'done', 'users' => $retRow); }
public function uxUserUpdate($httpData) { require_once 'classes/model/Users.php'; $data = G::json_decode($httpData->users); $list = array(); if (!is_array($data)) { $list[0] = (array) $data; } else { $list = $data; } $oRoles = new Roles(); $rows = array(); foreach ($list as $value) { $value = (array) $value; $user = UsersPeer::retrieveByPK($value['USR_UID']); $user->setUsrUx($value['USR_UX']); $user->save(); $row = $user->toArray(BasePeer::TYPE_FIELDNAME); try { $uRole = $oRoles->loadByCode($row['USR_ROLE']); } catch (exception $oError) { $uRole['ROL_NAME'] = G::loadTranslation('ID_DELETED'); } $row['USR_ROLE_ID'] = $row['USR_ROLE']; $row['USR_ROLE'] = isset($uRole['ROL_NAME']) ? $uRole['ROL_NAME'] != '' ? $uRole['ROL_NAME'] : $uRole['USR_ROLE'] : $uRole['USR_ROLE']; $uxList = self::getUxTypesList(); $row['USR_UX'] = $uxList[$user->getUsrUx()]; $rows[] = $row; } if (count($rows) == 1) { $retRow = $rows[0]; } else { $retRow = $rows; } return array('success' => true, 'message' => 'done', 'users' => $retRow); }
/** * @method * * Returns a list or user. * * @name PMFGetUserEmailAddress * @label PMF Get User Email Address * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFGetUserEmailAddress.28.29 * * @param string(32) or Array | $id | Case ID | Id of the case. * @param string(32) | $APP_UID = null | Application ID | Id of the Application. * @param string(32) | $prefix = "usr" | prefix | Id of the task. * @return array | $aRecipient | Array of the Recipient | Return an Array of the Recipient. * */ function PMFGetUserEmailAddress($id, $APP_UID = null, $prefix = 'usr') { require_once 'classes/model/UsersPeer.php'; require_once 'classes/model/AppDelegation.php'; G::LoadClass('case'); if (is_string($id) && trim($id) == "") { return false; } if (is_array($id) && count($id) == 0) { return false; } //recipient to store the email addresses $aRecipient = array(); $aItems = array(); /* * First at all the $id user input can be by example erik@colosa.com * 2.this $id param can be a array by example Array('000000000001','000000000002') in this case $prefix is necessary * 3.this same param can be a array by example Array('usr|000000000001', 'usr|-1', 'grp|2245141479413131441') */ /* * The second thing is that the return type will be configurated depend of the input type (using $retType) */ if (is_array($id)) { $aItems = $id; $retType = 'array'; } else { $retType = 'string'; if (strpos($id, ",") !== false) { $aItems = explode(',', $id); } else { array_push($aItems, $id); } } foreach ($aItems as $sItem) { //cleaning for blank spaces into each array item $sItem = trim($sItem); if (strpos($sItem, "|") !== false) { // explode the parameter because always will be compose with pipe separator to indicate // the type (user or group) and the target mai list($sType, $sID) = explode('|', $sItem); $sType = trim($sType); $sID = trim($sID); } else { $sType = $prefix; $sID = $sItem; } switch ($sType) { case 'ext': if (G::emailAddress($sID)) { array_push($aRecipient, $sID); } break; case 'usr': if ($sID == '-1') { // -1: Curent user, load from user record if (isset($APP_UID)) { $oAppDelegation = new AppDelegation(); $aAppDel = $oAppDelegation->getLastDeleration($APP_UID); if (isset($aAppDel)) { $oUserRow = UsersPeer::retrieveByPK($aAppDel['USR_UID']); if (isset($oUserRow)) { $sID = $oUserRow->getUsrEmail(); } else { throw new Exception('User with ID ' . $oAppDelegation->getUsrUid() . 'doesn\'t exist'); } if (G::emailAddress($sID)) { array_push($aRecipient, $sID); } } } } else { $oUserRow = UsersPeer::retrieveByPK($sID); if ($oUserRow != null) { $sID = $oUserRow->getUsrEmail(); if (G::emailAddress($sID)) { array_push($aRecipient, $sID); } } } break; case 'grp': G::LoadClass('groups'); $oGroups = new Groups(); $oCriteria = $oGroups->getUsersGroupCriteria($sID); $oDataset = GroupwfPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $aGroup = $oDataset->getRow(); //to validate email address if (G::emailAddress($aGroup['USR_EMAIL'])) { array_push($aRecipient, $aGroup['USR_EMAIL']); } } break; case 'dyn': $oCase = new Cases(); $aFields = $oCase->loadCase($APP_UID); $aFields['APP_DATA'] = array_merge($aFields['APP_DATA'], G::getSystemConstants()); //to validate email address if (isset($aFields['APP_DATA'][$sID]) && G::emailAddress($aFields['APP_DATA'][$sID])) { array_push($aRecipient, $aFields['APP_DATA'][$sID]); } break; } } switch ($retType) { case 'array': return $aRecipient; break; case 'string': return implode(',', $aRecipient); break; default: return $aRecipient; } }
} } } else { $lang = $frm['USER_LANG']; } } } else { if (defined("SYS_LANG") && SYS_LANG != "") { $lang = SYS_LANG; } else { $lang = 'en'; } } /*----------------------------------********---------------------------------*/ //Set User Time Zone $user = UsersPeer::retrieveByPK($_SESSION['USER_LOGGED']); if (!is_null($user)) { $userTimeZone = $user->getUsrTimeZone(); if (trim($userTimeZone) == '') { $arraySystemConfiguration = System::getSystemConfiguration('', '', SYS_SYS); $userTimeZone = $arraySystemConfiguration['time_zone']; } $_SESSION['USR_TIME_ZONE'] = $userTimeZone; } /*----------------------------------********---------------------------------*/ //Set data $aUser = $RBAC->userObj->load($_SESSION['USER_LOGGED']); $RBAC->loadUserRolePermission($RBAC->sSystem, $_SESSION['USER_LOGGED']); //$rol = $RBAC->rolesObj->load($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_UID']); $_SESSION['USR_FULLNAME'] = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME']; //$_SESSION['USR_ROLENAME'] = $rol['ROL_NAME'];
function checkReplacedByUser ($user) { if (is_string( $user )) { $userInstance = UsersPeer::retrieveByPK( $user ); } else { $userInstance = $user; } if (! is_object( $userInstance )) { throw new Exception( "The user with the UID '$user' doesn't exist." ); } if ($userInstance->getUsrStatus() == 'ACTIVE') { return $userInstance->getUsrUid(); } else { $userReplace = trim( $userInstance->getUsrReplacedBy() ); if ($userReplace != '') { return $this->checkReplacedByUser( UsersPeer::retrieveByPK( $userReplace ) ); } else { return ''; } } }
/** * New feature - User Experience Redirector * * @author Erik Amaru Ortiz <*****@*****.**> */ public function _getUXLocation() { require_once 'classes/model/Users.php'; $u = UsersPeer::retrieveByPK($this->usrID); $url = ''; $uxType = $u->getUsrUx(); $_SESSION['user_experience'] = 'NORMAL'; // find a group setting if ($uxType == '' || $uxType == 'NORMAL') { require_once 'classes/model/GroupUser.php'; $gu = new GroupUser(); $ugList = $gu->getAllUserGroups($this->usrID); foreach ($ugList as $row) { if ($row['GRP_UX'] != 'NORMAL' && $row['GRP_UX'] != '') { $uxType = $row['GRP_UX']; break; } } } switch ($uxType) { case 'SIMPLIFIED': case 'SWITCHABLE': case 'SINGLE': $_SESSION['user_experience'] = $uxType; $_SESSION['user_last_skin'] = SYS_SKIN; $url = '/sys' . SYS_SYS . '/' . $this->lang . '/uxs/' . 'home'; break; } return $url; }
public function getAllInformation ($userUid) { if (! isset( $userUid ) || $userUid == "") { throw (new Exception( "$userUid is empty." )); } try { require_once ("classes/model/IsoCountry.php"); require_once ("classes/model/IsoLocation.php"); require_once ("classes/model/IsoSubdivision.php"); require_once ("classes/model/Language.php"); G::LoadClass( "calendar" ); $aFields = $this->load( $userUid ); $c = new Criteria( "workflow" ); $c->add( IsoCountryPeer::IC_UID, $aFields["USR_COUNTRY"] ); $rs = IsoCountryPeer::doSelectRS( $c ); $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $rs->next(); $rowC = $rs->getRow(); $c->clearSelectColumns(); $c->add( IsoSubdivisionPeer::IC_UID, $aFields["USR_COUNTRY"] ); $c->add( IsoSubdivisionPeer::IS_UID, $aFields["USR_CITY"] ); $rs = IsoSubdivisionPeer::doSelectRS( $c ); $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $rs->next(); $rowS = $rs->getRow(); $c->clearSelectColumns(); $c->add( IsoLocationPeer::IC_UID, $aFields["USR_COUNTRY"] ); $c->add( IsoLocationPeer::IL_UID, $aFields["USR_LOCATION"] ); $rs = IsoLocationPeer::doSelectRS( $c ); $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $rs->next(); $rowL = $rs->getRow(); //Calendar $calendar = new Calendar(); $calendarInfo = $calendar->getCalendarFor( $userUid, $userUid, $userUid ); $aFields["USR_CALENDAR"] = ($calendarInfo["CALENDAR_APPLIED"] != "DEFAULT") ? $calendarInfo["CALENDAR_UID"] : ""; //Photo $pathPhoto = PATH_IMAGES_ENVIRONMENT_USERS . $userUid . ".gif"; if (! file_exists( $pathPhoto )) { $pathPhoto = PATH_HOME . "public_html" . PATH_SEP . "images" . PATH_SEP . "user.gif"; } //Data $arrayData = array (); $arrayData["username"] = $aFields["USR_USERNAME"]; $arrayData["firstname"] = $aFields["USR_FIRSTNAME"]; $arrayData["lastname"] = $aFields["USR_LASTNAME"]; $arrayData["mail"] = $aFields["USR_EMAIL"]; $arrayData["address"] = $aFields["USR_ADDRESS"]; $arrayData["zipcode"] = $aFields["USR_ZIP_CODE"]; $arrayData["country"] = $rowC["IC_NAME"]; $arrayData["state"] = $rowS["IS_NAME"]; $arrayData["location"] = $rowL["IL_NAME"]; $arrayData["phone"] = $aFields["USR_PHONE"]; $arrayData["fax"] = $aFields["USR_FAX"]; $arrayData["cellular"] = $aFields["USR_CELLULAR"]; $arrayData["birthday"] = $aFields["USR_BIRTHDAY"]; $arrayData["position"] = $aFields["USR_POSITION"]; $arrayData["replacedby"] = $aFields["USR_REPLACED_BY"]; if(strlen($arrayData["replacedby"] != 0)){ $oUser = UsersPeer::retrieveByPK( $arrayData["replacedby"] ); $arrayData["replacedbyfullname"] = $oUser->getUsrFirstname() . ' ' . $oUser->getUsrLastname(); } $arrayData["duedate"] = $aFields["USR_DUE_DATE"]; $arrayData["calendar"] = $aFields["USR_CALENDAR"]; if(strlen($aFields["USR_CALENDAR"] != 0)){ $arrayData["calendarname"] = $calendar->calendarName( $aFields["USR_CALENDAR"] ); } $arrayData["status"] = $aFields["USR_STATUS"]; $arrayData["department"] = $aFields["DEP_UID"]; if (strlen($arrayData["department"]) != 0) { $oDepart = DepartmentPeer::retrieveByPk( $arrayData["department"] ); $arrayData["departmentname"] = $oDepart->getDepTitle(); } $arrayData["reportsto"] = $aFields["USR_REPORTS_TO"]; $arrayData["userexperience"] = $aFields["USR_UX"]; $arrayData["photo"] = $pathPhoto; return $arrayData; } catch (Exception $e) { throw $e; } }
/** * Assign a supervisor of a process * * @param string $sProcessUID * @param string $sUsrUID * @param string $sTypeUID * @access public */ public function addProcessSupervisor($sProcessUID, $sUsrUID, $sTypeUID) { $sPuUIDT = array(); $oProcessUser = new \ProcessUser ( ); $oTypeAssigneeG = \GroupwfPeer::retrieveByPK( $sUsrUID ); $oTypeAssigneeU = \UsersPeer::retrieveByPK( $sUsrUID ); if (is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) { throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_CORRESPOND_TYPE", array($sUsrUID, $sTypeUID))); } if (is_null( $oTypeAssigneeG ) && ! is_null( $oTypeAssigneeU) ) { if ( "SUPERVISOR"!= $sTypeUID ) { throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_CORRESPOND_TYPE", array($sUsrUID, $sTypeUID))); } } if (! is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) { if ( "GROUP_SUPERVISOR" != $sTypeUID ) { throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_CORRESPOND_TYPE", array($sUsrUID, $sTypeUID))); } } // validate Groups $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID); $oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID); $oCriteria->addAsColumn('GRP_TITLE', \ContentPeer::CON_VALUE); $aConditions [] = array(\ProcessUserPeer::USR_UID, \ContentPeer::CON_ID); $aConditions [] = array(\ContentPeer::CON_CATEGORY, \DBAdapter::getStringDelimiter().'GRP_TITLE'.\DBAdapter::getStringDelimiter()); $aConditions [] = array(\ContentPeer::CON_LANG, \DBAdapter::getStringDelimiter().SYS_LANG.\DBAdapter::getStringDelimiter()); $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); $oCriteria->add(\ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR'); $oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID); $oCriteria->add(\ProcessUserPeer::USR_UID, $sUsrUID); $oCriteria->addAscendingOrderByColumn(\ContentPeer::CON_VALUE); $oDataset = \ProcessUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $sPuUIDT = $aRow['PU_UID']; $oDataset->next(); } // validate Users $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID); $oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID); $oCriteria->addJoin(\ProcessUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->add(\ProcessUserPeer::PU_TYPE, 'SUPERVISOR'); $oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID); $oCriteria->add(\ProcessUserPeer::USR_UID, $sUsrUID); $oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME); $oDataset = \ProcessUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $sPuUIDT = $aRow['PU_UID']; $oDataset->next(); } if (sizeof($sPuUIDT) == 0) { $sPuUID = \G::generateUniqueID(); $oProcessUser->create(array('PU_UID' => $sPuUID, 'PRO_UID' => $sProcessUID, 'USR_UID' => $sUsrUID, 'PU_TYPE' => $sTypeUID)); $oCriteria = $this->getProcessSupervisor($sProcessUID, $sPuUID); return $oCriteria; } else { throw new \Exception(\G::LoadTranslation("ID_RELATION_EXIST")); } }
/** * Access verification method. * * API access will be denied when this method returns false * * @return boolean true when api access is allowed; false otherwise */ public function __isAllowed() { $request = \OAuth2\Request::createFromGlobals(); $allowed = $this->server->verifyResourceRequest($request); $token = $this->server->getAccessTokenData($request); self::$userId = $token['user_id']; // Session handling to prevent session lose in other places like, home, admin, etc // when user is using the new designer that have not session because it is using only the API if ($allowed && $token['client_id'] == self::getPmClientId()) { $pmAccessToken = new \PmoauthUserAccessTokens(); $session = $pmAccessToken->getSessionData($token['ACCESS_TOKEN']); if ($session !== false && array_key_exists($session->getSessionName(), $_COOKIE)) { // increase the timeout for local php session cookie $config = \Bootstrap::getSystemConfiguration(); if (isset($config['session.gc_maxlifetime'])) { $lifetime = $config['session.gc_maxlifetime']; } else { $lifetime = ini_get('session.gc_maxlifetime'); } if (empty($lifetime)) { $lifetime = 1440; } setcookie($session->getSessionName(), $_COOKIE[$session->getSessionName()], time() + $lifetime, "/", null, false, true); } //Set User Time Zone $user = \UsersPeer::retrieveByPK(self::$userId); if (!is_null($user)) { $userTimeZone = $user->getUsrTimeZone(); if (trim($userTimeZone) == '') { $arraySystemConfiguration = \System::getSystemConfiguration('', '', SYS_SYS); $userTimeZone = $arraySystemConfiguration['time_zone']; } $_SESSION['USR_TIME_ZONE'] = $userTimeZone; } } return $allowed; }
public function loadDetailed ($UsrUid) { try { $result = array (); $oUser = UsersPeer::retrieveByPK( $UsrUid ); if (! is_null( $oUser )) { $aFields = $oUser->toArray( BasePeer::TYPE_FIELDNAME ); $this->fromArray( $aFields, BasePeer::TYPE_FIELDNAME ); $this->setNew( false ); $aIsoCountry = IsoCountry::findById( $aFields['USR_COUNTRY'] ); $aIsoSubdivision = IsoSubdivision::findById( $aFields['USR_COUNTRY'], $aFields['USR_CITY'] ); $aIsoLocation = IsoLocation::findById( $aFields['USR_COUNTRY'], $aFields['USR_CITY'], $aFields['USR_LOCATION'] ); $aFields["USR_COUNTRY_NAME"] = (!empty($aIsoCountry["IC_NAME"]))? $aIsoCountry["IC_NAME"] : ""; $aFields["USR_CITY_NAME"] = (!empty($aIsoSubdivision["IS_NAME"]))? $aIsoSubdivision["IS_NAME"] : ""; $aFields["USR_LOCATION_NAME"] = (!empty($aIsoLocation["IL_NAME"]))? $aIsoLocation["IL_NAME"] : ""; require_once PATH_RBAC . "model/Roles.php"; $roles = new Roles(); $role = $roles->loadByCode($aFields['USR_ROLE']); $aFields['USR_ROLE_NAME'] = $role['ROL_NAME']; $result = $aFields; return $result; } else { //return $result; throw (new Exception(G::LoadTranslation("ID_USER_UID_DOESNT_EXIST", SYS_LANG, array("USR_UID" => $UsrUid)))); } } catch (Exception $oError) { throw ($oError); } }
/** * Implementation for 'DELETE' method for Rest API * * @param mixed $usrUid Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function delete($usrUid) { $conn = Propel::getConnection(UsersPeer::DATABASE_NAME); try { $conn->begin(); $obj = UsersPeer::retrieveByPK($usrUid); if (!is_object($obj)) { throw new RestException(412, G::LoadTranslation('ID_RECORD_DOES_NOT_EXIST')); } $obj->delete(); $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw new RestException(412, $e->getMessage()); } }
public function executeEdit($request) { $userId = sfContext::getInstance()->getUser()->getAttribute('subscriber_id', null, 'subscriber'); $this->miles = true; $this->kilo = false; if ($userId) { $this->user = UsersPeer::retrieveByPK($userId); } $this->forward404Unless($this->user); if ($this->user) { $profile = UserProfilePeer::retrieveByPK($this->user->getUserId()); if ($profile->getMiles() == 1) { $this->miles = true; $this->kilo = false; } else { $this->miles = false; $this->kilo = true; } } if (!$profile) { $profile = new UserProfile(); $profile->setUserId($this->user->getUserId()); $profile->setMiles(1); } $this->user->setUserProfile($profile); if ($request->isMethod('post')) { $userName = $this->getRequestParameter('userName'); $fname = $this->getRequestParameter('fname'); $lname = $this->getRequestParameter('lname'); $email = $this->getRequestParameter('email'); $bday = join("/", $this->getRequestParameter('bday')); $weight = $this->getRequestParameter('weight'); $height = $this->getRequestParameter('height'); $zip = $this->getRequestParameter('zip'); $units = $this->getRequestParameter('units'); $country = $this->getRequestParameter('country'); $city = $this->getRequestParameter('city'); $state = $this->getRequestParameter('state'); // sfContext::getInstance()->getLogger()->info($message); //make sure have profile if (!$this->user->getUserProfile()) { $profile = UserProfilePeer::retrieveByPK($user->getUserId()); if ($profile) { $this->user->setUserProfile($profile); } else { $profile = new UserProfile(); $profile->setUserId($user->getUserId()); $profile->setMiles(1); $profile->save(); $this->user->setUserProfile($profile); } } // pre-populate country, state and city in order to filter select boxes $profile = $this->user->getUserProfile(); //set up profile data $profile->setBirthdate($bday); $profile->setWeight($weight); $profile->setHeight($height); $profile->setZip($zip); $profile->setCountry($country); $profile->setState($state); $profile->setCity($city); if ($units && count($units) > 0) { $u = $units[0]; if ($u == "kilo") { $profile->setMiles(0); } else { $profile->setMiles(1); } } else { $profile->setMiles(1); } //set up user $this->user->setUsername($userName); $this->user->setFname($fname); $this->user->setLname($lname); $this->user->setEmail($email); $this->user->setUserProfile($profile); $this->user->save(); $profile->save(); //set mileage preference $this->getUser()->setAttribute('mileage', $profile->getMiles(), 'subscriber'); return $this->redirect('users/profile'); } }
/** * editObjectPermission * * @param string $sOP_UID * @param string $sProcessUID * @return void */ public function editExtObjectPermission($sProcessUID, $sOP_UID) { $oCriteria = new Criteria(); $oCriteria->add(ObjectPermissionPeer::OP_UID, $sOP_UID); $oDataset = ObjectPermissionPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRows = $oDataset->getRow(); $oCriteria = new Criteria(); $oCriteria->add(GroupwfPeer::GRP_UID, $aRows['USR_UID']); if (GroupwfPeer::doCount($oCriteria) == 1) { $user = '******' . $aRows['USR_UID']; } $oCriteria = new Criteria(); $oCriteria->add(UsersPeer::USR_UID, $aRows['USR_UID']); if (UsersPeer::doCount($oCriteria) == 1) { $user = '******' . $aRows['USR_UID']; } $aFields['LANG'] = SYS_LANG; $aFields['OP_UID'] = $aRows['OP_UID']; $aFields['PRO_UID'] = $aRows['PRO_UID']; $aFields['OP_CASE_STATUS'] = $aRows['OP_CASE_STATUS']; $aFields['TAS_UID'] = $aRows['TAS_UID']; $aFields['OP_GROUP_USER'] = $user; $aFields['OP_TASK_SOURCE'] = $aRows['OP_TASK_SOURCE']; $aFields['OP_PARTICIPATE'] = $aRows['OP_PARTICIPATE']; $aFields['OP_OBJ_TYPE'] = $aRows['OP_OBJ_TYPE']; $aFields['OP_ACTION'] = $aRows['OP_ACTION']; $lang = defined('SYS_LANG') ? SYS_LANG : 'en'; $aFields['TASK_TARGET_NAME'] = Content::load('TAS_TITLE', '', $aRows['TAS_UID'], $lang); $aFields['TASK_SOURCE_NAME'] = Content::load('TAS_TITLE', '', $aRows['OP_TASK_SOURCE'], $lang); $oUser = UsersPeer::retrieveByPK($aRows['USR_UID']); if (!is_null($oUser)) { $aFields['USR_FULLNAME'] = $oUser->getUsrFirstname() . ' ' . $oUser->getUsrLastname(); } else { throw new Exception("The row '" . $aRows['USR_UID'] . "' in table USER doesn't exist!"); } switch ($aRows['OP_OBJ_TYPE']) { /* case 'ANY': $aFields['OP_OBJ_TYPE'] = ''; break; */ case 'DYNAFORM': $aFields['DYNAFORM'] = $aRows['OP_OBJ_UID']; $aFields['DYNAFORM_NAME'] = Content::load('DYN_TITLE', '', $aRows['OP_OBJ_UID'], $lang); break; case 'INPUT': $aFields['INPUT'] = $aRows['OP_OBJ_UID']; $aFields['INPUT_NAME'] = Content::load('INP_DOC_TITLE', '', $aRows['OP_OBJ_UID'], $lang); break; case 'OUTPUT': $aFields['OUTPUT'] = $aRows['OP_OBJ_UID']; $aFields['OUTPUT_NAME'] = Content::load('OUT_DOC_TITLE', '', $aRows['OP_OBJ_UID'], $lang); break; } return $aFields; }
/** * Update case scheduler for a project * @param string $sProcessUID * @param array $caseSchedulerData * @param string $userUID * @param string $sSchUID * * @access public */ public function updateCaseScheduler($sProcessUID, $caseSchedulerData, $userUID, $sSchUID = '') { try { require_once PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "CaseScheduler.php"; $caseSchedulerData = array_change_key_case($caseSchedulerData, CASE_UPPER); if (empty($caseSchedulerData)) { die(\G::LoadTranslation("ID_INFORMATION_EMPTY")); } $oCaseScheduler = new \CaseScheduler(); $aFields = $oCaseScheduler->Load($sSchUID); if ($caseSchedulerData['SCH_OPTION'] == null) { $sOption = $aFields['SCH_OPTION']; $caseSchedulerData['SCH_OPTION'] = $sOption; } else { $sOption = $caseSchedulerData['SCH_OPTION']; } $caseSchedulerData['sch_repeat_stop_if_running'] = '0'; $caseSchedulerData['case_sh_plugin_uid'] = null; $caseSchedulerData = array_change_key_case($caseSchedulerData, CASE_UPPER); $arrayTaskUid = $this->getTaskUid($caseSchedulerData['TAS_UID']); if (empty($arrayTaskUid)) { throw new \Exception(\G::LoadTranslation("ID_TASK_NOT_FOUND", array($caseSchedulerData['TAS_UID']))); } if ($caseSchedulerData['SCH_NAME'] == '') { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_EMPTY", array('sch_name'))); } if ($this->existsNameUpdate($sProcessUID, $sSchUID, $caseSchedulerData['SCH_NAME'])) { throw new \Exception(\G::LoadTranslation("ID_CASE_SCHEDULER_DUPLICATE")); } $mUser = $this->getUser($caseSchedulerData['SCH_DEL_USER_NAME'], $caseSchedulerData['TAS_UID']); $oUser = \UsersPeer::retrieveByPK($mUser); if (is_null($oUser)) { throw new \Exception($mUser); } $oUserPass = $oUser->getUsrPassword(); $caseSchedulerData['SCH_DEL_USER_PASS'] = $oUserPass; if ($sOption != '5') { $pattern = "/^([0-1][0-9]|[2][0-3])[\\:]([0-5][0-9])\$/"; if (!preg_match($pattern, $caseSchedulerData['SCH_START_TIME'])) { throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_START_TIME")); } } $patternDate = "/^[0-9]{4}-[0-9]{2}-[0-9]{2}\$/"; if ($sOption == '1' || $sOption == '2' || $sOption == '3') { if (!preg_match($patternDate, $caseSchedulerData['SCH_START_DATE'])) { throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_START_DATE")); } if ($caseSchedulerData['SCH_START_DATE'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_date'))); } } if ($sOption == '2') { $caseSchedulerData['SCH_EVERY_DAYS'] = 1; } else { $caseSchedulerData['SCH_EVERY_DAYS'] = 0; } $oCaseScheduler = new \CaseScheduler(); $caseSchedulerData['SCH_UID'] = $sSchUID; $caseSchedulerData['PRO_UID'] = $sProcessUID; if ($caseSchedulerData['SCH_STATE'] == "" || $caseSchedulerData['SCH_STATE'] == null) { throw new \Exception('sch_state can not be null'); } else { if ($caseSchedulerData['SCH_STATE'] == 'ACTIVE') { $caseSchedulerData['SCH_LAST_STATE'] = 'CREATED'; } else { $caseSchedulerData['SCH_LAST_STATE'] = 'ACTIVE'; } } $caseSchedulerData['USR_UID'] = $userUID; $caseSchedulerData['SCH_DEL_USER_UID'] = $caseSchedulerData['USR_UID']; $sTimeTmp = $caseSchedulerData['SCH_START_TIME']; $nActualTime = $caseSchedulerData['SCH_START_TIME']; // time(); $sValue = ''; $sDaysPerformTask = ''; $sWeeks = ''; $sMonths = ''; $sStartDay = ''; $caseSchedulerData['SCH_DAYS_PERFORM_TASK'] = ''; switch ($sOption) { case '1': // If the option is zero, set by default 1 $caseSchedulerData['SCH_DAYS_PERFORM_TASK'] = '1'; $sValue = $caseSchedulerData['SCH_DAYS_PERFORM_TASK']; switch ($sValue) { case '1': $caseSchedulerData['SCH_DAYS_PERFORM_TASK'] = $caseSchedulerData['SCH_DAYS_PERFORM_TASK'] . '|1'; $caseSchedulerData['SCH_MONTHS'] = '0|0|0|0|0|0|0|0|0|0|0|0'; $caseSchedulerData['SCH_WEEK_DAYS'] = '0|0|0|0|0|0|0'; break; case '2': $caseSchedulerData['SCH_OPTION'] = '2'; $caseSchedulerData['SCH_EVERY_DAYS'] = '1'; //check $caseSchedulerData['SCH_WEEK_DAYS'] = '1|2|3|4|5|'; //check break; case '3': // Every [n] Days $sDaysPerformTask = $caseSchedulerData['SCH_DAYS_PERFORM_TASK']; $caseSchedulerData['SCH_DAYS_PERFORM_TASK'] = $caseSchedulerData['SCH_DAYS_PERFORM_TASK']; break; } break; case '2': // If the option is zero, set by default 1 if ($caseSchedulerData['SCH_WEEK_DAYS'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_week_days'))); } else { $weeks = $caseSchedulerData['SCH_WEEK_DAYS']; $weeks = explode("|", $weeks); foreach ($weeks as $row) { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5" || $row == "6" || $row == "7") { $caseSchedulerData['SCH_WEEK_DAYS'] = $caseSchedulerData['SCH_WEEK_DAYS']; } else { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('sch_week_days'))); } } } $caseSchedulerData['SCH_MONTHS'] = '0|0|0|0|0|0|0|0|0|0|0|0'; if (empty($caseSchedulerData['SCH_EVERY_DAYS'])) { $nEveryDays = 1; } else { $nEveryDays = $caseSchedulerData['SCH_EVERY_DAYS']; } $caseSchedulerData['SCH_EVERY_DAYS'] = $nEveryDays; if (!empty($caseSchedulerData['SCH_WEEK_DAYS'])) { $aWeekDays = $caseSchedulerData['SCH_WEEK_DAYS']; } $sStartTime = $caseSchedulerData['SCH_START_TIME']; $sWeeks = $caseSchedulerData['SCH_WEEK_DAYS'] . '|'; break; case '3': $nStartDay = $caseSchedulerData['SCH_START_DAY']; if ($nStartDay == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_day'))); } if ($nStartDay == 1) { if ($caseSchedulerData['SCH_START_DAY_OPT_1'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_day_opt_1'))); } $temp = $caseSchedulerData['SCH_START_DAY_OPT_1']; $temp = (int) $temp; if ($temp >= 1 && $temp <= 31) { $caseSchedulerData['SCH_START_DAY_OPT_1'] = $caseSchedulerData['SCH_START_DAY_OPT_1']; } else { throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_START_DAY_1")); } $caseSchedulerData['SCH_START_DAY'] = $nStartDay . '|' . $caseSchedulerData['SCH_START_DAY_OPT_1']; } else { if ($caseSchedulerData['SCH_START_DAY_OPT_2'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_day_opt_2'))); } $caseSchedulerData['SCH_START_DAY'] = $nStartDay . '|' . $caseSchedulerData['SCH_START_DAY_OPT_2']; $optionTwo = $caseSchedulerData['SCH_START_DAY_OPT_2'][0]; if ($optionTwo == "1" || $optionTwo == "2" || $optionTwo == "3" || $optionTwo == "4" || $optionTwo == "5") { $caseSchedulerData['SCH_START_DAY_OPT_2'] = $caseSchedulerData['SCH_START_DAY_OPT_2']; } else { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('sch_start_day_opt_2'))); } $pipelineTwo = $caseSchedulerData['SCH_START_DAY_OPT_2'][1]; if ($pipelineTwo == "|") { $caseSchedulerData['SCH_START_DAY_OPT_2'] = $caseSchedulerData['SCH_START_DAY_OPT_2']; } else { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('sch_start_day_opt_2'))); } $dayTwo = $caseSchedulerData['SCH_START_DAY_OPT_2'][2]; if ($dayTwo == "1" || $dayTwo == "2" || $dayTwo == "3" || $dayTwo == "4" || $dayTwo == "5" || $dayTwo == "6" || $dayTwo == "7") { $caseSchedulerData['SCH_START_DAY_OPT_2'] = $caseSchedulerData['SCH_START_DAY_OPT_2']; } else { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('sch_start_day_opt_2'))); } } if ($nStartDay == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_start_day'))); } if ($caseSchedulerData['SCH_MONTHS'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_months'))); } if (!empty($caseSchedulerData['SCH_MONTHS'])) { $aMonths = $caseSchedulerData['SCH_MONTHS']; $aMonths = explode("|", $aMonths); foreach ($aMonths as $row) { if ($row == "1" || $row == "2" || $row == "3" || $row == "4" || $row == "5" || $row == "6" || $row == "7" || $row == "8" || $row == "9" || $row == "10" || $row == "11" || $row == "12") { $caseSchedulerData['SCH_MONTHS'] = $caseSchedulerData['SCH_MONTHS']; } else { throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('sch_months'))); } } } $sMonths = $caseSchedulerData['SCH_MONTHS']; $sStartDay = $caseSchedulerData['SCH_START_DAY']; $sValue = $nStartDay; break; } if ($sOption != '1' && $sOption != '4' && $sOption != '5') { if ($sStartDay == '') { $sStartDay = date('Y-m-d'); } else { $size = strlen($caseSchedulerData['SCH_START_DAY']); if ($size > 4) { $aaStartDay = explode("|", $caseSchedulerData['SCH_START_DAY']); $aaStartDay[0] = $aaStartDay[0]; $aaStartDay[1] = $aaStartDay[1]; $aaStartDay[2] = $aaStartDay[2] == 7 ? 1 : $aaStartDay[2]; $sStartDay = $aaStartDay[0] . '|' . $aaStartDay[1] . '|' . $aaStartDay[2]; } } $dCurrentDay = date("d"); $dCurrentMonth = date("m"); $aStartDay = explode("|", $caseSchedulerData['SCH_START_DAY']); $sDateTmp = ''; if ($sOption == '3' && $aStartDay[0] == '1') { $monthsArray = explode("|", $sMonths); foreach ($monthsArray as $row) { if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) { $startTime = $caseSchedulerData['SCH_START_TIME'] . ":00"; $caseSchedulerData['SCH_TIME_NEXT_RUN'] = date('Y') . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime; break; } else { $caseSchedulerData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun($sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp); } } } else { $caseSchedulerData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun($sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp); } } else { if ($sOption == '4') { $sDateTmp = date('Y-m-d'); $caseSchedulerData['SCH_START_TIME'] = date('Y-m-d', strtotime($sDateTmp)) . ' ' . date('H:i:s', strtotime($sTimeTmp)); $caseSchedulerData['SCH_START_DATE'] = $caseSchedulerData['SCH_START_TIME']; $caseSchedulerData['SCH_END_DATE'] = $caseSchedulerData['SCH_START_TIME']; } $caseSchedulerData['SCH_TIME_NEXT_RUN'] = $caseSchedulerData['SCH_START_TIME']; if ($sOption == '5') { if ($caseSchedulerData['SCH_START_DATE'] != '') { $sDateTmp = $caseSchedulerData['SCH_START_DATE']; } else { $sDateTmp = date('Y-m-d'); $caseSchedulerData['SCH_START_DATE'] = $sDateTmp; } $caseSchedulerData['SCH_START_TIME'] = time(); $caseSchedulerData['SCH_START_DATE'] = $caseSchedulerData['SCH_START_TIME']; if ($caseSchedulerData['SCH_REPEAT_EVERY'] == "") { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('sch_repeat_every'))); } $patternHour = "/^([0-9]|0[0-9]|1[0-9]|2[0-3]).[0-5][0-9]\$/"; if (!preg_match($patternHour, $caseSchedulerData['SCH_REPEAT_EVERY'])) { throw new \Exception(\G::LoadTranslation("ID_INVALID_SCH_REPEAT")); } $nextRun = $caseSchedulerData['SCH_REPEAT_EVERY'] * 60 * 60; $caseSchedulerData['SCH_REPEAT_EVERY'] = $caseSchedulerData['SCH_REPEAT_EVERY']; $date = $caseSchedulerData['SCH_START_TIME']; $date += $nextRun; $date = date("Y-m-d H:i", $date); $caseSchedulerData['SCH_TIME_NEXT_RUN'] = $date; } } if (!empty($caseSchedulerData['SCH_REPEAT_TASK_CHK'])) { if (trim($caseSchedulerData['SCH_END_DATE']) != '') { $caseSchedulerData['SCH_END_DATE'] = $caseSchedulerData['SCH_END_DATE']; } } if (!empty($caseSchedulerData['SCH_REPEAT_TASK_CHK'])) { $nOptEvery = $caseSchedulerData['SCH_REPEAT_EVERY_OPT']; if ($nOptEvery == 2) { $caseSchedulerData['SCH_REPEAT_EVERY'] = $caseSchedulerData['SCH_REPEAT_EVERY'] * 60; } else { $caseSchedulerData['SCH_REPEAT_EVERY'] = $caseSchedulerData['SCH_REPEAT_EVERY']; } } if (isset($caseSchedulerData['CASE_SH_PLUGIN_UID']) && $caseSchedulerData['CASE_SH_PLUGIN_UID'] != "") { $caseSchedulerData['CASE_SH_PLUGIN_UID'] = $caseSchedulerData['CASE_SH_PLUGIN_UID']; } // check this data $caseSchedulerData['SCH_REPEAT_UNTIL'] = ''; $caseSchedulerData['SCH_REPEAT_STOP_IF_RUNNING'] = '0'; $caseSchedulerData['CASE_SH_PLUGIN_UID'] = null; // $oCaseScheduler->Update($caseSchedulerData); $oCriteria = $this->getCaseScheduler($sProcessUID, $sSchUID); return $oCriteria; } catch (\Exception $e) { throw $e; } }
function getAllUsersFromAnyTask($sTasUid) { $users = array(); $c = new Criteria('workflow'); $c->clearSelectColumns(); $c->addSelectColumn(TaskUserPeer::USR_UID); $c->addSelectColumn(TaskUserPeer::TU_RELATION); $c->add(TaskUserPeer::TAS_UID, $sTasUid); $c->add(TaskUserPeer::TU_TYPE, 1); $rs = TaskUserPeer::DoSelectRs($c); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); $row = $rs->getRow(); while (is_array($row)) { if ($row['TU_RELATION'] == '2') { $cGrp = new Criteria('workflow'); $cGrp->add(GroupwfPeer::GRP_STATUS, 'ACTIVE'); $cGrp->add(GroupUserPeer::GRP_UID, $row['USR_UID']); $cGrp->addJoin(GroupUserPeer::GRP_UID, GroupwfPeer::GRP_UID, Criteria::LEFT_JOIN); $cGrp->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $cGrp->add(UsersPeer::USR_STATUS, 'ACTIVE'); $rsGrp = GroupUserPeer::DoSelectRs($cGrp); $rsGrp->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rsGrp->next(); $rowGrp = $rsGrp->getRow(); while (is_array($rowGrp)) { $users[$rowGrp['USR_UID']] = $rowGrp['USR_UID']; $rsGrp->next(); $rowGrp = $rsGrp->getRow(); } } else { //filter to users that is in vacation or has an inactive estatus, and others $oUser = UsersPeer::retrieveByPK($row['USR_UID']); if ($oUser->getUsrStatus() == 'ACTIVE') { $users[$row['USR_UID']] = $row['USR_UID']; } else { if ($oUser->getUsrStatus() == 'VACATION') { //this a litle hook for this issue,... //TODO if the user in getUsrReplacedBy() is not assignet to the same task,. will have problems,.... $UsrReplace = $oUser->getUsrReplacedBy(); if (trim($UsrReplace) != '') { //$users[$UsrReplace] = $UsrReplace; } } } } $rs->next(); $row = $rs->getRow(); } //to do: different types of sort sort($users); return $users; }
/** * Verify if does not exist the User in table USERS * * @param string $userUid Unique id of Email Server * @param string $fieldNameForException Field name for the exception * * return void Throw exception if does not exist the User in table USERS */ public function throwExceptionIfNotExistsUser($userUid, $fieldNameForException) { try { $obj = \UsersPeer::retrieveByPK($userUid); if (is_null($obj) || $obj->getUsrUsername() == "") { throw new \Exception(\G::LoadTranslation("ID_USER_DOES_NOT_EXIST", array($fieldNameForException, $userUid))); } } catch (\Exception $e) { throw $e; } }
public function userNameFormat($username, $fullname, $usrUid = '') { $aux = ''; if ($usrUid != '') { $oUser = UsersPeer::retrieveByPK($usrUid); $aux = str_replace('@userName', trim($username), $this->UserConfig['format']); $theFormat = $this->UserConfig['format']; $fname = $oUser->getUsrFirstname(); $lname = $oUser->getUsrLastname(); if (strpos($theFormat, ',') !== false && ( trim($fname) == '' || trim($lname) == '')) { $theFormat = str_replace(',', '', $theFormat); } $aux = str_replace('@userName', trim($username), $theFormat); $aux = str_replace('@firstName', $oUser->getUsrFirstname(), $aux); $aux = str_replace('@lastName', $oUser->getUsrLastname(), $aux); } return $aux; }
public function loadDetailed($UsrUid) { try { $result = array(); $oUser = UsersPeer::retrieveByPK($UsrUid); if (!is_null($oUser)) { $aFields = $oUser->toArray(BasePeer::TYPE_FIELDNAME); $this->fromArray($aFields, BasePeer::TYPE_FIELDNAME); $this->setNew(false); $aIsoCountry = IsoCountry::findById($aFields['USR_COUNTRY']); $aIsoSubdivision = IsoSubdivision::findById($aFields['USR_COUNTRY'], $aFields['USR_CITY']); $aIsoLocation = IsoLocation::findById($aFields['USR_COUNTRY'], $aFields['USR_CITY'], $aFields['USR_LOCATION']); $aFields["USR_COUNTRY_NAME"] = !empty($aIsoCountry["IC_NAME"]) ? $aIsoCountry["IC_NAME"] : ""; $aFields["USR_CITY_NAME"] = !empty($aIsoSubdivision["IS_NAME"]) ? $aIsoSubdivision["IS_NAME"] : ""; $aFields["USR_LOCATION_NAME"] = !empty($aIsoLocation["IL_NAME"]) ? $aIsoLocation["IL_NAME"] : ""; $result = $aFields; return $result; } else { //return $result; throw new Exception("The row '" . $UsrUid . "' in table USER doesn't exist!"); } } catch (Exception $oError) { throw $oError; } }
/** * Assign a Adhoc user or group to an activity * * @param string $sProcessUID {@min 32} {@max 32} * @param string $sTaskUID {@min 32} {@max 32} * @param string $sAssigneeUID {@min 32} {@max 32} * @param string $assType {@choice user,group} * * return array * * @access public */ public function addTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID, $assType) { try { Validator::proUid($sProcessUID, '$prj_uid'); $this->validateActUid($sTaskUID); $iType = 2; $iRelation = ''; $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION); $oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID); $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID); $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType); $oTaskUser = \TaskUserPeer::doSelectRS($oCriteria); $oTaskUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($oTaskUser->next()) { $aRow = $oTaskUser->getRow(); $iRelation = $aRow['TU_RELATION']; } $oTaskUser = \TaskUserPeer::retrieveByPK($sTaskUID, $sAssigneeUID, $iType, $iRelation); if (!is_null($oTaskUser)) { throw new \Exception(\G::LoadTranslation("ID_ALREADY_ASSIGNED", array($sAssigneeUID, $sTaskUID))); } else { $oTypeAssigneeG = \GroupwfPeer::retrieveByPK($sAssigneeUID); $oTypeAssigneeU = \UsersPeer::retrieveByPK($sAssigneeUID); if (is_null($oTypeAssigneeG) && is_null($oTypeAssigneeU)) { throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType))); } if (is_null($oTypeAssigneeG) && !is_null($oTypeAssigneeU)) { $type = "user"; if ($type != $assType) { throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType))); } } if (!is_null($oTypeAssigneeG) && is_null($oTypeAssigneeU)) { $type = "group"; if ($type != $assType) { throw new \Exception(\G::LoadTranslation("ID_DOES_NOT_CORRESPOND", array($sAssigneeUID, $assType))); } } $oTaskUser = new \TaskUser(); if ($assType == "user") { $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => 1)); } else { $oTaskUser->create(array('TAS_UID' => $sTaskUID, 'USR_UID' => $sAssigneeUID, 'TU_TYPE' => $iType, 'TU_RELATION' => 2)); } $task = new \Task(); $result = $task->update(array("TAS_UID" => $sTaskUID, "TAS_TYPE" => "ADHOC")); } } catch (\Exception $e) { throw $e; } }
/** * Implementation for 'DELETE' method for Rest API * * @param mixed $usrUid Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function delete($usrUid) { $conn = Propel::getConnection(UsersPeer::DATABASE_NAME); try { $conn->begin(); $obj = UsersPeer::retrieveByPK($usrUid); if (!is_object($obj)) { throw new RestException(412, 'Record does not exist.'); } $obj->delete(); $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw new RestException(412, $e->getMessage()); } }