Example #1
0
 /**
  * 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;
 }
Example #3
0
 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);
 }
Example #4
0
 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'];
Example #7
0
    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 '';

            }

        }

    }
Example #8
0
 /**
  * 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;
 }
Example #9
0
    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"));
     }
 }
Example #11
0
 /**
  * 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;
 }
Example #12
0
    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);
        }
    }
Example #13
0
 /**
  * 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());
     }
 }
Example #14
0
 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;
 }
Example #16
0
 /**
  * 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;
     }
 }
Example #17
0
 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;
 }
Example #18
0
    /**

     * 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;

        }

    }
Example #19
0
    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;
    }
Example #20
0
 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;
     }
 }
Example #21
0
 /**
  * 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;
     }
 }
Example #22
0
 /**
  * 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());
     }
 }