예제 #1
1
 /**
  * Create the application document registry
  *
  * @param array $aData
  * @return string
  *
  */
 public function create($aData)
 {
     $oConnection = Propel::getConnection(RoutePeer::DATABASE_NAME);
     try {
         $sRouteUID = G::generateUniqueID();
         $aData['ROU_UID'] = $sRouteUID;
         $oRoute = new Route();
         // validating default values
         $aData['ROU_TO_LAST_USER'] = $this->validateValue(isset($aData['ROU_TO_LAST_USER']) ? $aData['ROU_TO_LAST_USER'] : '', array('TRUE', 'FALSE'), 'FALSE');
         $aData['ROU_OPTIONAL'] = $this->validateValue(isset($aData['ROU_OPTIONAL']) ? $aData['ROU_OPTIONAL'] : '', array('TRUE', 'FALSE'), 'FALSE');
         $aData['ROU_SEND_EMAIL'] = $this->validateValue(isset($aData['ROU_SEND_EMAIL']) ? $aData['ROU_SEND_EMAIL'] : '', array('TRUE', 'FALSE'), 'TRUE');
         $oRoute->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oRoute->validate()) {
             $oConnection->begin();
             $iResult = $oRoute->save();
             $oConnection->commit();
             return $sRouteUID;
         } else {
             $sMessage = '';
             $aValidationFailures = $oRoute->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #2
0
 public function create($aData)
 {
     $oConnection = Propel::getConnection(StagePeer::DATABASE_NAME);
     try {
         if (isset($aData['STG_UID']) && $aData['STG_UID'] == '') {
             unset($aData['STG_UID']);
         }
         if (!isset($aData['STG_UID'])) {
             $aData['STG_UID'] = G::generateUniqueID();
         }
         $oStage = new Stage();
         $oStage->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         $oStage->setStgTitle($aData['STG_TITLE']);
         if ($oStage->validate()) {
             $oConnection->begin();
             $iResult = $oStage->save();
             $oConnection->commit();
             return $aData['STG_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oStage->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #3
0
 public function create($aData)
 {
     $oConnection = Propel::getConnection(GatewayPeer::DATABASE_NAME);
     try {
         $sGatewayUID = G::generateUniqueID();
         $aData['GAT_UID'] = $sGatewayUID;
         $oGateway = new Gateway();
         $oGateway->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oGateway->validate()) {
             $oConnection->begin();
             $iResult = $oGateway->save();
             $oConnection->commit();
             return $sGatewayUID;
         } else {
             $sMessage = '';
             $aValidationFailures = $oGateway->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
 public function createOrUpdate(array $arrayData)
 {
     $cnn = Propel::getConnection(NotificationDevicePeer::DATABASE_NAME);
     try {
         if (!isset($arrayData['DEV_UID'])) {
             $arrayData['DEV_UID'] = G::generateUniqueID();
             $arrayData['DEV_CREATE'] = date('Y-m-d H:i:s');
             $arrayData['DEV_UPDATE'] = date('Y-m-d H:i:s');
             $mNotification = new NotificationDevice();
         } else {
             $arrayData['DEV_UPDATE'] = date('Y-m-d H:i:s');
             $mNotification = NotificationDevicePeer::retrieveByPK($arrayData['DEV_UID'],$arrayData['USR_UID']);
         }
         $mNotification->fromArray($arrayData, BasePeer::TYPE_FIELDNAME);
         if ($mNotification->validate()) {
             $cnn->begin();
             $result = $mNotification->save();
             $cnn->commit();
         } else {
             throw new Exception(G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED"));
         }
     } catch (Exception $e) {
         $cnn->rollback();
         throw $e;
     }
     return isset($arrayData['DEV_UID']) ? $arrayData['DEV_UID'] : 0;
 }
예제 #5
0
 function create($aData)
 {
     if (!isset($aData['AUTH_SOURCE_UID'])) {
         $aData['AUTH_SOURCE_UID'] = G::generateUniqueID();
     } else {
         if ($aData['AUTH_SOURCE_UID'] == '') {
             $aData['AUTH_SOURCE_UID'] = G::generateUniqueID();
         }
     }
     $aData['AUTH_SOURCE_DATA'] = is_array($aData['AUTH_SOURCE_DATA']) ? serialize($aData['AUTH_SOURCE_DATA']) : $aData['AUTH_SOURCE_DATA'];
     $oConnection = Propel::getConnection(AuthenticationSourcePeer::DATABASE_NAME);
     try {
         $oAuthenticationSource = new AuthenticationSource();
         $oAuthenticationSource->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oAuthenticationSource->validate()) {
             $oConnection->begin();
             $iResult = $oAuthenticationSource->save();
             $oConnection->commit();
             return $aData['AUTH_SOURCE_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oAuthenticationSource->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #6
0
 function create($aData)
 {
     try {
         $sCode = $aData['PER_CODE'];
         $oCriteria = new Criteria('rbac');
         $oCriteria->add(PermissionsPeer::PER_CODE, $sCode);
         $oDataset = PermissionsPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $aRow = $oDataset->getRow();
         if (is_array($aRow)) {
             return 1;
         }
         $aData['PER_UID'] = G::generateUniqueID();
         $aData['PER_CODE'] = $aData['PER_CODE'];
         $aData['PER_CREATE_DATE'] = date('Y-m-d H:i:s');
         $aData['PER_UPDATE_DATE'] = $aData['PER_CREATE_DATE'];
         $aData['PER_STATUS'] = 1;
         $oPermission = new Permissions();
         $oPermission->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         $iResult = $oPermission->save();
         return $aData['PER_UID'];
     } catch (Exception $oError) {
         throw $oError;
     }
 }
예제 #7
0
 public function create($arrayData)
 {
     $cnn = Propel::getConnection(OauthClientsPeer::DATABASE_NAME);
     try {
         $cnn->begin();
         $id = G::generateCode(32, "ALPHA");
         $secret = G::generateUniqueID();
         $this->setClientId($id);
         $this->setClientSecret($secret);
         $this->setClientName($arrayData["CLIENT_NAME"]);
         $this->setClientDescription($arrayData["CLIENT_DESCRIPTION"]);
         $this->setClientWebsite($arrayData["CLIENT_WEBSITE"]);
         $this->setRedirectUri($arrayData["REDIRECT_URI"]);
         $this->setUsrUid($arrayData["USR_UID"]);
         if ($this->validate()) {
             $result = $this->save();
             $cnn->commit();
             return array("CLIENT_ID" => $id, "CLIENT_SECRET" => $secret);
         } else {
             $cnn->rollback();
             throw new Exception("Failed Validation in class \"" . get_class($this) . "\".");
         }
     } catch (Exception $e) {
         $cnn->rollback();
         throw $e;
     }
 }
예제 #8
0
 /**
  * Create the application document registry
  * @param array $aData
  * @return string
  **/
 public function create($aData)
 {
     $oConnection = Propel::getConnection(SwimlanesElementsPeer::DATABASE_NAME);
     try {
         $aData['SWI_UID'] = G::generateUniqueID();
         $oSwimlanesElements = new SwimlanesElements();
         $oSwimlanesElements->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oSwimlanesElements->validate()) {
             $oConnection->begin();
             if (isset($aData['SWI_TEXT'])) {
                 $oSwimlanesElements->setSwiEleText($aData['SWI_TEXT']);
             }
             $iResult = $oSwimlanesElements->save();
             $oConnection->commit();
             return $aData['SWI_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oSwimlanesElements->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #9
0
 function create($aData)
 {
     $con = Propel::getConnection(StepPeer::DATABASE_NAME);
     try {
         if (isset($aData['STEP_UID']) && $aData['STEP_UID'] == '') {
             unset($aData['STEP_UID']);
         }
         if (isset($aData['STEP_UID'])) {
             $sStepUID = $aData['STEP_UID'];
         } else {
             $sStepUID = G::generateUniqueID();
         }
         $con->begin();
         $this->setStepUid($sStepUID);
         $this->setProUid($aData['PRO_UID']);
         $this->setTasUid($aData['TAS_UID']);
         if (isset($aData['STEP_TYPE_OBJ'])) {
             $this->setStepTypeObj($aData['STEP_TYPE_OBJ']);
         } else {
             $this->setStepTypeObj("DYNAFORM");
         }
         if (isset($aData['STEP_UID_OBJ'])) {
             $this->setStepUidObj($aData['STEP_UID_OBJ']);
         } else {
             $this->setStepUidObj("");
         }
         if (isset($aData['STEP_CONDITION'])) {
             $this->setStepCondition($aData['STEP_CONDITION']);
         } else {
             $this->setStepCondition("");
         }
         if (isset($aData['STEP_POSITION'])) {
             $this->setStepPosition($aData['STEP_POSITION']);
         } else {
             $this->setStepPosition("");
         }
         if (isset($aData['STEP_MODE'])) {
             $this->setStepMode($aData['STEP_MODE']);
         } else {
             $this->setStepMode("");
         }
         if ($this->validate()) {
             $result = $this->save();
             $con->commit();
             return $sStepUID;
         } else {
             $con->rollback();
             throw new Exception("Failed Validation in class " . get_class($this) . ".");
         }
     } catch (Exception $e) {
         $con->rollback();
         throw $e;
     }
 }
예제 #10
0
 public function createOrUpdate($data)
 {
     $additionalFields = array();
     foreach ($data as $field => $value) {
         if (!in_array($field, $this->filterThisFields)) {
             $additionalFields[$field] = $value;
             unset($data[$field]);
         }
     }
     if (!empty($additionalFields)) {
         $data['DAS_INS_ADDITIONAL_PROPERTIES'] = serialize($additionalFields);
     } else {
         $data['DAS_INS_ADDITIONAL_PROPERTIES'] = '';
     }
     $connection = Propel::getConnection(DashletInstancePeer::DATABASE_NAME);
     try {
         if (!isset($data['DAS_INS_UID'])) {
             $data['DAS_INS_UID'] = '';
         }
         if ($data['DAS_INS_UID'] == '') {
             $data['DAS_INS_UID'] = G::generateUniqueID();
             $data['DAS_INS_CREATE_DATE'] = date('Y-m-d H:i:s');
             $dashletInstance = new DashletInstance();
             $msg = 'CreateDashletInstance';
         } else {
             $dashletInstance = DashletInstancePeer::retrieveByPK($data['DAS_INS_UID']);
             $msg = 'UpdateDashletInstance';
         }
         $data['DAS_INS_UPDATE_DATE'] = date('Y-m-d H:i:s');
         $dashletInstance->fromArray($data, BasePeer::TYPE_FIELDNAME);
         if ($dashletInstance->validate()) {
             $connection->begin();
             $result = $dashletInstance->save();
             $connection->commit();
             $dashletData = $this->load($data['DAS_INS_UID']);
             G::auditLog($msg, "Dashlet Instance Name: " . $dashletData['DAS_INS_TITLE'] . " Dashlet Instance ID: (" . $dashletData['DAS_INS_UID'] . ") ");
             return $data['DAS_INS_UID'];
         } else {
             $message = '';
             $validationFailures = $dashletInstance->getValidationFailures();
             foreach ($validationFailures as $validationFailure) {
                 $message .= $validationFailure->getMessage() . '. ';
             }
             throw new Exception('Error trying to update: ' . $message);
         }
     } catch (Exception $error) {
         $connection->rollback();
         throw $error;
     }
 }
예제 #11
0
    public function createOrUpdate($data)
    {
        foreach ($data as $field => $value) {
            if (!in_array($field, $this->filterThisFields)) {
                unset($data[$field]);
            }
        }

        $connection = Propel::getConnection(AbeConfigurationPeer::DATABASE_NAME);

        try {
            if (!isset($data['ABE_UID'])) {
                $data['ABE_UID'] = '';
            }

            if ($data['ABE_UID'] == '') {
                $data['ABE_UID'] = G::generateUniqueID();
                $data['ABE_CREATE_DATE'] = date('Y-m-d H:i:s');
                $abeConfigurationInstance = new AbeConfiguration();
            } else {
                $abeConfigurationInstance = AbeConfigurationPeer::retrieveByPK($data['ABE_UID']);
            }

            $data['ABE_UPDATE_DATE'] = date('Y-m-d H:i:s');
            $abeConfigurationInstance->fromArray($data, BasePeer::TYPE_FIELDNAME);

            if ($abeConfigurationInstance->validate()) {
                $connection->begin();
                $result = $abeConfigurationInstance->save();
                $connection->commit();

                return $data['ABE_UID'];
            } else {
                $message = '';
                $validationFailures = $abeConfigurationInstance->getValidationFailures();

                foreach ($validationFailures as $validationFailure) {
                    $message .= $validationFailure->getMessage() . '. ';
                }

                throw (new Exception('Error trying to update: ' . $message));
            }
        } catch (Exception $error) {
            $connection->rollback();

            throw $error;
        }
    }
예제 #12
0
 public function saveLogParameters($params)
 {
     if (isset($params['LOG_CASE_UID']) && $params['LOG_CASE_UID'] == '') {
         unset($params['LOG_CASE_UID']);
     }
     if (!isset($params['LOG_CASE_UID'])) {
         $params['LOG_CASE_UID'] = G::generateUniqueID();
     }
     $this->setLogCaseUid($params['LOG_CASE_UID']);
     $this->setProUid($params['PRO_UID']);
     $this->setTasUid($params['TAS_UID']);
     $this->setSchUid($params['SCH_UID']);
     $this->setUsrName($params['USR_NAME']);
     $this->setExecDate($params['EXEC_DATE']);
     $this->setExecHour($params['EXEC_HOUR']);
     $this->setResult($params['RESULT']);
     $this->setWsCreateCaseStatus($params['WS_CREATE_CASE_STATUS']);
     $this->setWsRouteCaseStatus($params['WS_ROUTE_CASE_STATUS']);
 }
 function create($aData)
 {
     if (!isset($aData['AUTH_SOURCE_UID'])) {
         $aData['AUTH_SOURCE_UID'] = G::generateUniqueID();
     } else {
         if ($aData['AUTH_SOURCE_UID'] == '') {
             $aData['AUTH_SOURCE_UID'] = G::generateUniqueID();
         }
     }
     $aData['AUTH_SOURCE_DATA'] = is_array($aData['AUTH_SOURCE_DATA']) ? serialize($aData['AUTH_SOURCE_DATA']) : $aData['AUTH_SOURCE_DATA'];
     $oConnection = Propel::getConnection(AuthenticationSourcePeer::DATABASE_NAME);
     try {
         $oAuthenticationSource = new AuthenticationSource();
         $oAuthenticationSource->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oAuthenticationSource->validate()) {
             $oConnection->begin();
             $iResult = $oAuthenticationSource->save();
             $oConnection->commit();
             $authSourceServerName = isset($aData['AUTH_SOURCE_SERVER_NAME']) ? ' - Server Name: ' . $aData['AUTH_SOURCE_SERVER_NAME'] : '';
             $authSourcePort = isset($aData['AUTH_SOURCE_PORT']) ? ' - Port: ' . $aData['AUTH_SOURCE_PORT'] : '';
             $authSourceEnabledTLS = isset($aData['AUTH_SOURCE_ENABLED_TLS']) ? ' - TLS: ' . $aData['AUTH_SOURCE_ENABLED_TLS'] : '';
             $authSourceVersion = isset($aData['AUTH_SOURCE_VERSION']) ? ' - Version: ' . $aData['AUTH_SOURCE_VERSION'] : '';
             $authSourceBaseDn = isset($aData['AUTH_SOURCE_BASE_DN']) ? ' - BaseDN: ' . $aData['AUTH_SOURCE_BASE_DN'] : '';
             $authAnonymous = $aData['AUTH_ANONYMOUS'] == 1 ? ' - Anonymous: YES' : ' - Anonymous: NO';
             $authSourceSearchUser = isset($aData['AUTH_SOURCE_SEARCH_USER']) ? ' - Search User: '******'AUTH_SOURCE_SEARCH_USER'] : '';
             $authSourceLdapType = isset($aData['AUTH_SOURCE_DATA']['LDAP_TYPE']) ? ' - LDAP type: ' . $aData['AUTH_SOURCE_DATA']['LDAP_TYPE'] : '';
             $authSourceIdentifier = isset($aData['AUTH_SOURCE_DATA']['AUTH_SOURCE_IDENTIFIER_FOR_USER']) ? ' - Identifier: ' . $aData['AUTH_SOURCE_DATA']['AUTH_SOURCE_IDENTIFIER_FOR_USER'] : '';
             $authSourceFilter = isset($aData['AUTH_SOURCE_DATA']['AUTH_SOURCE_ADDITIONAL_FILTER']) ? ' - Aditional Filter: ' . $aData['AUTH_SOURCE_DATA']['AUTH_SOURCE_ADDITIONAL_FILTER'] : '';
             G::auditLog("CreateAuthSource", "Authentication Source Name: " . $aData['AUTH_SOURCE_NAME'] . " - Authentication Source ID: (" . $aData['AUTH_SOURCE_UID'] . ") " . $authSourceServerName . $authSourcePort . $authSourceEnabledTLS . $authSourceVersion . $authSourceBaseDn . $authAnonymous . $authSourceSearchUser . $authSourceLdapType . $authSourceIdentifier . $authSourceFilter);
             return $aData['AUTH_SOURCE_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oAuthenticationSource->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #14
0
 /**
  * AppMessgae quick Save method
  *
  * @param Array(msg_uid, app_uid, del_index, app_msg_type, app_msg_subject, app_msg_from, app_msg_to,
  * app_msg_body, app_msg_cc, app_msg_bcc, app_msg_attach, app_msg_template, app_msg_status )
  *
  * @author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmai.com>
  * Date Aug 31th, 2009
  */
 public function quickSave2($data_spool)
 {
     $this->data_spool = $data_spool;
     $sUID = G::generateUniqueID();
     $spool = new AppMessage();
     $spool->setAppMsgUid($sUID);
     $spool->setMsgUid($data_spool['msg_uid']);
     $spool->setAppUid($data_spool['app_uid']);
     $spool->setDelIndex($data_spool['del_index']);
     $spool->setAppMsgType($data_spool['app_msg_type']);
     $spool->setAppMsgSubject($data_spool['app_msg_subject']);
     $spool->setAppMsgFrom($data_spool['app_msg_from']);
     $spool->setAppMsgTo($data_spool['app_msg_to']);
     $spool->setAppMsgBody($data_spool['app_msg_body']);
     $spool->setAppMsgDate(date('Y-m-d H:i:s'));
     $spool->setAppMsgCc($data_spool['app_msg_cc']);
     $spool->setAppMsgBcc($data_spool['app_msg_bcc']);
     $spool->setappMsgAttach($data_spool['app_msg_attach']);
     $spool->setAppMsgTemplate($data_spool['app_msg_template']);
     $spool->setAppMsgStatus($data_spool['app_msg_status']);
     $spool->setAppMsgError($data_spool['app_msg_error']);
     if (!$spool->validate()) {
         $this->error_spool = $spool->getValidationFailures();
         $this->status_spool = 'error';
         $error_msg = "AppMessage::quickSave(): Validation error: \n";
         foreach ($errors as $key => $value) {
             $error_msg .= $value->getMessage($key) . "\n";
         }
         throw new Exception($error_msg);
     } else {
         //echo "Saving - validation ok\n";
         $this->error_spool = '';
         $this->status = 'success';
         $spool->save();
     }
     return $sUID;
 }
예제 #15
0
 public function create($aData)
 {
     $con = Propel::getConnection(SubProcessPeer::DATABASE_NAME);
     try {
         $con->begin();
         if (isset($aData['SP_UID']) && $aData['SP_UID'] == '') {
             unset($aData['SP_UID']);
         }
         if (!isset($aData['SP_UID'])) {
             $this->setSpUid(G::generateUniqueID());
         } else {
             $this->setSpUid($aData['SP_UID']);
         }
         $this->setProUid($aData['PRO_UID']);
         $this->setTasUid($aData['TAS_UID']);
         $this->setProParent($aData['PRO_PARENT']);
         $this->setTasParent($aData['TAS_PARENT']);
         $this->setSpType($aData['SP_TYPE']);
         $this->setSpSynchronous($aData['SP_SYNCHRONOUS']);
         $this->setSpSynchronousType($aData['SP_SYNCHRONOUS_TYPE']);
         $this->setSpSynchronousWait($aData['SP_SYNCHRONOUS_WAIT']);
         $this->setSpVariablesOut($aData['SP_VARIABLES_OUT']);
         $this->setSpVariablesIn($aData['SP_VARIABLES_IN']);
         $this->setSpGridIn($aData['SP_GRID_IN']);
         if ($this->validate()) {
             $result = $this->save();
             $con->commit();
             return $result;
         } else {
             $con->rollback();
             throw new Exception("Failed Validation in class " . get_class($this) . ".");
         }
     } catch (Exception $e) {
         $con->rollback();
         throw $e;
     }
 }
예제 #16
0
 /**
  * Creates the Dynaform
  *
  * @param array $aData Fields with :
  * $aData['DYN_UID'] the dynaform id
  * $aData['USR_UID'] the userid
  * @return void
  */
 public function create($aData)
 {
     if (!isset($aData['PRO_UID'])) {
         throw new PropelException('The dynaform cannot be created. The PRO_UID is empty.');
     }
     $con = Propel::getConnection(DynaformPeer::DATABASE_NAME);
     try {
         if (isset($aData['DYN_UID']) && $aData['DYN_UID'] == '') {
             unset($aData['DYN_UID']);
         }
         if (!isset($aData['DYN_UID'])) {
             $dynUid = G::generateUniqueID();
         } else {
             $dynUid = $aData['DYN_UID'];
         }
         $this->setDynUid($dynUid);
         $this->setProUid($aData['PRO_UID']);
         $this->setDynType(isset($aData['DYN_TYPE']) ? $aData['DYN_TYPE'] : 'xmlform');
         $this->setDynFilename($aData['PRO_UID'] . PATH_SEP . $dynUid);
         if ($this->validate()) {
             $con->begin();
             $res = $this->save();
             if (isset($aData['DYN_TITLE'])) {
                 $this->setDynTitle($aData['DYN_TITLE']);
             } else {
                 $this->setDynTitle('Default Dynaform Title');
             }
             if (isset($aData['DYN_DESCRIPTION'])) {
                 $this->setDynDescription($aData['DYN_DESCRIPTION']);
             } else {
                 $this->setDynDescription('Default Dynaform Description');
             }
             $con->commit();
             $sXml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
             $sXml .= '<dynaForm type="' . $this->getDynType() . '" name="' . $this->getProUid() . '/' . $this->getDynUid() . '" width="500" enabletemplate="0" mode="" nextstepsave="prompt">' . "\n";
             $sXml .= '</dynaForm>';
             G::verifyPath(PATH_DYNAFORM . $this->getProUid(), true);
             $oFile = fopen(PATH_DYNAFORM . $this->getProUid() . '/' . $this->getDynUid() . '.xml', 'w');
             fwrite($oFile, $sXml);
             fclose($oFile);
             return $this->getDynUid();
         } else {
             $msg = '';
             foreach ($this->getValidationFailures() as $objValidationFailure) {
                 $msg .= $objValidationFailure->getMessage() . "<br/>";
             }
             throw new PropelException('The row cannot be created!', new PropelException($msg));
         }
     } catch (Exception $e) {
         $con->rollback();
         throw $e;
     }
 }
예제 #17
0
 function create($aData)
 {
     $oConnection = Propel::getConnection(RbacUsersPeer::DATABASE_NAME);
     try {
         $oRBACUsers = new RbacUsers();
         do {
             $aData['USR_UID'] = G::generateUniqueID();
         } while ($oRBACUsers->load($aData['USR_UID']));
         $oRBACUsers->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         //if ($oRBACUsers->validate()) {
         //$oConnection->begin();
         $iResult = $oRBACUsers->save();
         //$oConnection->commit();
         return $aData['USR_UID'];
         /*}
           else {
             $sMessage = '';
             $aValidationFailures = $oRBACUsers->getValidationFailures();
             foreach($aValidationFailures as $oValidationFailure) {
               $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw(new Exception('The registry cannot be created!<br />' . $sMessage));
           }*/
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #18
0
 function create($aData)
 {
     if (!isset($aData['EVN_UID']) || $aData['EVN_UID'] == '') {
         $aData['EVN_UID'] = G::generateUniqueID();
     }
     $oConnection = Propel::getConnection(EventPeer::DATABASE_NAME);
     try {
         $oEvent = new Event();
         $oEvent->setEvnUid($aData['EVN_UID']);
         $oEvent->setProUid($aData['PRO_UID']);
         if (isset($aData['EVN_RELATED_TO'])) {
             $oEvent->setEvnRelatedTo($aData['EVN_RELATED_TO']);
             if ($aData['EVN_RELATED_TO'] == 'SINGLE') {
                 if (isset($aData['TAS_UID'])) {
                     $oEvent->setTasUid($aData['TAS_UID']);
                 }
                 $oEvent->setEvnTasUidTo('');
                 $oEvent->setEvnTasUidFrom('');
             } else {
                 $oEvent->setTasUid('');
                 if (isset($aData['EVN_TAS_UID_TO'])) {
                     $oEvent->setEvnTasUidTo($aData['EVN_TAS_UID_TO']);
                 }
                 if (isset($aData['EVN_TAS_UID_FROM'])) {
                     $oEvent->setEvnTasUidFrom($aData['EVN_TAS_UID_FROM']);
                 }
             }
         }
         if (isset($aData['EVN_POSX'])) {
             $oEvent->setEvnPosx($aData['EVN_POSX']);
         }
         if (isset($aData['EVN_POSY'])) {
             $oEvent->setEvnPosy($aData['EVN_POSY']);
         }
         if (isset($aData['EVN_TYPE'])) {
             $oEvent->setEvnType($aData['EVN_TYPE']);
         }
         if (isset($aData['EVN_TAS_ESTIMATED_DURATION'])) {
             $oEvent->setEvnTasEstimatedDuration($aData['EVN_TAS_ESTIMATED_DURATION']);
         }
         if (isset($aData['EVN_WHEN_OCCURS'])) {
             $oEvent->setEvnWhenOccurs($aData['EVN_WHEN_OCCURS']);
         }
         if (isset($aData['EVN_ACTION'])) {
             $oEvent->setEvnAction($aData['EVN_ACTION']);
         }
         if (isset($aData['EVN_CONDITIONS'])) {
             $oEvent->setEvnConditions($aData['EVN_CONDITIONS']);
         }
         if (isset($aData['EVN_STATUS'])) {
             $oEvent->setEvnStatus($aData['EVN_STATUS']);
         }
         if (isset($aData['EVN_WHEN'])) {
             $oEvent->setEvnWhen($aData['EVN_WHEN']);
         }
         $oEvent->setEvnMaxAttempts(3);
         //start the transaction
         $oConnection->begin();
         if (isset($aData['EVN_TYPE'])) {
             if ($aData['EVN_TYPE'] === 'bpmnEventEmptyEnd') {
                 unset($aData['TRI_UID']);
             }
         }
         if (isset($aData['TRI_UID'])) {
             $oTrigger = new Triggers();
             if (trim($aData['TRI_UID']) === "" || !$oTrigger->TriggerExists($aData['TRI_UID'])) {
                 //create an empty trigger
                 $aTrigger = array();
                 $aTrigger['PRO_UID'] = $aData['PRO_UID'];
                 $aTrigger['TRI_TITLE'] = 'For event: ' . $aData['EVN_DESCRIPTION'];
                 $aTrigger['TRI_DESCRIPTION'] = 'Autogenerated ' . $aTrigger['TRI_TITLE'];
                 $aTrigger['TRI_WEBBOT'] = '// ' . $aTrigger['TRI_DESCRIPTION'];
                 $oTrigger->create($aTrigger);
             } else {
                 $oTrigger = TriggersPeer::retrieveByPk($aData['TRI_UID']);
             }
             $oEvent->setTriUid($oTrigger->getTriUid());
             $parameters = new StdClass();
             $parameters->hash = md5($oTrigger->getTriWebbot());
             if (isset($aData['EVN_ACTION_PARAMETERS']->SUBJECT)) {
                 $parameters->SUBJECT = $aData['EVN_ACTION_PARAMETERS']->SUBJECT;
                 $parameters->TO = $aData['EVN_ACTION_PARAMETERS']->TO;
                 $parameters->CC = $aData['EVN_ACTION_PARAMETERS']->CC;
                 $parameters->BCC = $aData['EVN_ACTION_PARAMETERS']->BCC;
                 $parameters->TEMPLATE = $aData['EVN_ACTION_PARAMETERS']->TEMPLATE;
             }
             $oEvent->setEvnActionParameters(serialize($parameters));
         }
         if ($oEvent->validate()) {
             $iResult = $oEvent->save();
             if (isset($aData['EVN_DESCRIPTION'])) {
                 $oEvent->setEvnDescription($aData['EVN_DESCRIPTION']);
             }
             $oConnection->commit();
             return $aData['EVN_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oEvent->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The row Event cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #19
0
 public static function browserCacheFilesSetUid()
 {
     $uid = G::generateUniqueID();
     $arrayData = array();
     $arrayData["browser_cache_files_uid"] = $uid;
     G::update_php_ini(PATH_CONFIG . "env.ini", $arrayData);
 }
예제 #20
0
 /**
  * Get data of Cases InputDocument
  *
  * @param string $applicationUid
  * @param string $taskUid
  * @param string $appDocComment
  * @param string $inputDocumentUid
  * @param string $userUid
  *
  * return array Return an array with data of an InputDocument
  */
 public function addCasesInputDocument($applicationUid, $taskUid, $appDocComment, $inputDocumentUid, $userUid)
 {
     try {
         if ((isset( $_FILES['form'] )) && ($_FILES['form']['error'] != 0)) {
             $code = $_FILES['form']['error'];
             switch ($code) {
                 case UPLOAD_ERR_INI_SIZE:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_INI_SIZE' );
                     break;
                 case UPLOAD_ERR_FORM_SIZE:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_FORM_SIZE' );
                     break;
                 case UPLOAD_ERR_PARTIAL:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_PARTIAL' );
                     break;
                 case UPLOAD_ERR_NO_FILE:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_NO_FILE' );
                     break;
                 case UPLOAD_ERR_NO_TMP_DIR:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_NO_TMP_DIR' );
                     break;
                 case UPLOAD_ERR_CANT_WRITE:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_CANT_WRITE' );
                     break;
                 case UPLOAD_ERR_EXTENSION:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_EXTENSION' );
                     break;
                 default:
                     $message = \G::LoadTranslation( 'ID_UPLOAD_ERR_UNKNOWN' );
                     break;
             }
             \G::SendMessageText( $message, "ERROR" );
             $backUrlObj = explode( "sys" . SYS_SYS, $_SERVER['HTTP_REFERER'] );
             \G::header( "location: " . "/sys" . SYS_SYS . $backUrlObj[1] );
             die();
         }
         \G::LoadClass("case");
         $appDocUid = \G::generateUniqueID();
         $docVersion = '';
         $appDocType = 'INPUT';
         $case = new \Cases();
         $delIndex = \AppDelegation::getCurrentIndex($applicationUid);
         $case->thisIsTheCurrentUser($applicationUid, $delIndex, $userUid, "REDIRECT", "casesListExtJs");
         //Load the fields
         $arrayField = $case->loadCase($applicationUid);
         $arrayField["APP_DATA"] = array_merge($arrayField["APP_DATA"], \G::getSystemConstants());
         //Triggers
         $arrayTrigger = $case->loadTriggers($taskUid, "INPUT_DOCUMENT", $inputDocumentUid, "AFTER");
         //Add Input Document
         if (empty($_FILES)) {
             throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_FILENAME_DOES_NOT_EXIST"));
         }
         if (!$_FILES["form"]["error"]) {
             $_FILES["form"]["error"] = 0;
         }
         if (isset($_FILES) && isset($_FILES["form"]) && count($_FILES["form"]) > 0) {
             $appDocUid = $case->addInputDocument($inputDocumentUid,
                 $appDocUid,
                 $docVersion,
                 $appDocType,
                 $appDocComment,
                 '',
                 $applicationUid,
                 $delIndex,
                 $taskUid,
                 $userUid,
                 "xmlform",
                 $_FILES["form"]["name"],
                 $_FILES["form"]["error"],
                 $_FILES["form"]["tmp_name"]);
         }
         //Trigger - Execute after - Start
         $arrayField["APP_DATA"] = $case->executeTriggers ($taskUid,
             "INPUT_DOCUMENT",
             $inputDocumentUid,
             "AFTER",
             $arrayField["APP_DATA"]);
         //Trigger - Execute after - End
         //Save data
         $arrayData = array();
         $arrayData["APP_NUMBER"] = $arrayField["APP_NUMBER"];
         //$arrayData["APP_PROC_STATUS"] = $arrayField["APP_PROC_STATUS"];
         $arrayData["APP_DATA"]  = $arrayField["APP_DATA"];
         $arrayData["DEL_INDEX"] = $delIndex;
         $arrayData["TAS_UID"]   = $taskUid;
         $case->updateCase($applicationUid, $arrayData);
         return($this->getCasesInputDocument($applicationUid, $userUid, $appDocUid));
     } catch (\Exception $e) {
         throw $e;
     }
 }
예제 #21
0
 /**
  * import a pm table
  *
  * @param string $httpData->id
  */
 public function import($httpData)
 {
     require_once 'classes/model/AdditionalTables.php';
     try {
         $errors = '';
         $overWrite = isset($_POST['form']['OVERWRITE']) ? true : false;
         //save the file
         if ($_FILES['form']['error']['FILENAME'] !== 0) {
             throw new Exception(G::loadTranslation('ID_PMTABLE_UPLOADING_FILE_PROBLEM'));
         }
         $oAdditionalTables = new AdditionalTables();
         $tableNameMap = array();
         $processQueue = array();
         $processQueueTables = array();
         $PUBLIC_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP;
         $filename = $_FILES['form']['name']['FILENAME'];
         $tempName = $_FILES['form']['tmp_name']['FILENAME'];
         G::uploadFile($tempName, $PUBLIC_ROOT_PATH, $filename);
         $fileContent = file_get_contents($PUBLIC_ROOT_PATH . $filename);
         if (strpos($fileContent, '-----== ProcessMaker Open Source Private Tables ==-----') === false) {
             throw new Exception(G::loadTranslation('ID_PMTABLE_INVALID_FILE'));
         }
         $fp = fopen($PUBLIC_ROOT_PATH . $filename, "rb");
         $fsData = intval(fread($fp, 9));
         //reading the metadata
         $sType = fread($fp, $fsData);
         // first create the tables structures
         while (!feof($fp)) {
             switch ($sType) {
                 case '@META':
                     $fsData = intval(fread($fp, 9));
                     $METADATA = fread($fp, $fsData);
                     break;
                 case '@SCHEMA':
                     $fsUid = intval(fread($fp, 9));
                     $uid = fread($fp, $fsUid);
                     $fsData = intval(fread($fp, 9));
                     $schema = fread($fp, $fsData);
                     $contentSchema = unserialize($schema);
                     $additionalTable = new additionalTables();
                     $tableExists = $additionalTable->loadByName($contentSchema['ADD_TAB_NAME']);
                     $tableNameMap[$contentSchema['ADD_TAB_NAME']] = $contentSchema['ADD_TAB_NAME'];
                     if ($overWrite) {
                         if ($tableExists !== false) {
                             $additionalTable->deleteAll($tableExists['ADD_TAB_UID']);
                         }
                     } else {
                         if ($tableExists !== false) {
                             // some table exists with the same name
                             // renaming...
                             $tNameOld = $contentSchema['ADD_TAB_NAME'];
                             $newTableName = $contentSchema['ADD_TAB_NAME'] . '_' . date('YmdHis');
                             $contentSchema['ADD_TAB_UID'] = G::generateUniqueID();
                             $contentSchema['ADD_TAB_NAME'] = $newTableName;
                             $contentSchema['ADD_TAB_CLASS_NAME'] = additionalTables::getPHPName($newTableName);
                             //mapping the table name for posterior uses
                             $tableNameMap[$tNameOld] = $contentSchema['ADD_TAB_NAME'];
                         }
                     }
                     // validating invalid bds_uid in old tables definition -> mapped to workflow
                     if (!$contentSchema['DBS_UID'] || $contentSchema['DBS_UID'] == '0' || !$contentSchema['DBS_UID']) {
                         $contentSchema['DBS_UID'] = 'workflow';
                     }
                     $columns = array();
                     foreach ($contentSchema['FIELDS'] as $field) {
                         $column = array('uid' => '', 'field_uid' => '', 'field_name' => $field['FLD_NAME'], 'field_dyn' => isset($field['FLD_DYN_NAME']) ? $field['FLD_DYN_NAME'] : '', 'field_label' => isset($field['FLD_DESCRIPTION']) ? $field['FLD_DESCRIPTION'] : '', 'field_type' => $field['FLD_TYPE'], 'field_size' => $field['FLD_SIZE'], 'field_key' => isset($field['FLD_KEY']) ? $field['FLD_KEY'] : 0, 'field_null' => isset($field['FLD_NULL']) ? $field['FLD_NULL'] : 1, 'field_autoincrement' => isset($field['FLD_AUTO_INCREMENT']) ? $field['FLD_AUTO_INCREMENT'] : 0);
                         $columns[] = $column;
                     }
                     $tableData = new stdClass();
                     $tableData->REP_TAB_UID = $contentSchema['ADD_TAB_UID'];
                     $tableData->REP_TAB_NAME = $contentSchema['ADD_TAB_NAME'];
                     $tableData->REP_TAB_DSC = $contentSchema['ADD_TAB_DESCRIPTION'];
                     $tableData->REP_TAB_CONNECTION = $contentSchema['DBS_UID'];
                     if (isset($_POST["form"]["PRO_UID"]) && !empty($_POST["form"]["PRO_UID"])) {
                         $tableData->PRO_UID = $_POST["form"]["PRO_UID"];
                     } else {
                         $tableData->PRO_UID = isset($contentSchema["PRO_UID"]) ? $contentSchema["PRO_UID"] : "";
                     }
                     $tableData->REP_TAB_TYPE = isset($contentSchema['ADD_TAB_TYPE']) ? $contentSchema['ADD_TAB_TYPE'] : '';
                     $tableData->REP_TAB_GRID = isset($contentSchema['ADD_TAB_GRID']) ? $contentSchema['ADD_TAB_GRID'] : '';
                     $tableData->columns = G::json_encode($columns);
                     $tableData->forceUid = true;
                     //save the table
                     $alterTable = false;
                     $result = $this->save($tableData, $alterTable);
                     if ($result->success) {
                         $processQueueTables[$contentSchema['DBS_UID']][] = $contentSchema['ADD_TAB_NAME'];
                     } else {
                         $errors .= 'Error creating table: ' . $tableData->REP_TAB_NAME . '-> ' . $result->message . "\n\n";
                     }
                     break;
                 case '@DATA':
                     $fstName = intval(fread($fp, 9));
                     $tableName = fread($fp, $fstName);
                     $fsData = intval(fread($fp, 9));
                     if ($fsData > 0) {
                         $data = fread($fp, $fsData);
                     }
                     break;
             }
             $fsData = intval(fread($fp, 9));
             //reading the metadata
             if ($fsData > 0) {
                 // reading next block type
                 $sType = fread($fp, $fsData);
             } else {
                 break;
             }
         }
         fclose($fp);
         G::loadClass('pmTable');
         foreach ($processQueueTables as $dbsUid => $tables) {
             $pmTable = new pmTable();
             ob_start();
             $pmTable->buildModelFor($dbsUid, $tables);
             $buildResult = ob_get_contents();
             ob_end_clean();
             $errors .= $pmTable->upgradeDatabaseFor($pmTable->getDataSource(), $tables);
         }
         $fp = fopen($PUBLIC_ROOT_PATH . $filename, "rb");
         $fsData = intval(fread($fp, 9));
         $sType = fread($fp, $fsData);
         // data processing
         while (!feof($fp)) {
             switch ($sType) {
                 case '@META':
                     $fsData = intval(fread($fp, 9));
                     $METADATA = fread($fp, $fsData);
                     break;
                 case '@SCHEMA':
                     $fsUid = intval(fread($fp, 9));
                     $uid = fread($fp, $fsUid);
                     $fsData = intval(fread($fp, 9));
                     $schema = fread($fp, $fsData);
                     $contentSchema = unserialize($schema);
                     $additionalTable = new additionalTables();
                     $table = $additionalTable->loadByName($tableNameMap[$contentSchema['ADD_TAB_NAME']]);
                     if ($table['PRO_UID'] != '') {
                         // is a report table, try populate it
                         $additionalTable->populateReportTable($table['ADD_TAB_NAME'], pmTable::resolveDbSource($table['DBS_UID']), $table['ADD_TAB_TYPE'], $table['PRO_UID'], $table['ADD_TAB_GRID'], $table['ADD_TAB_UID']);
                     }
                     break;
                 case '@DATA':
                     $fstName = intval(fread($fp, 9));
                     $tableName = fread($fp, $fstName);
                     $fsData = intval(fread($fp, 9));
                     if ($fsData > 0) {
                         $data = fread($fp, $fsData);
                         $contentData = unserialize($data);
                         $tableName = $tableNameMap[$tableName];
                         $oAdditionalTables = new AdditionalTables();
                         $table = $oAdditionalTables->loadByName($tableName);
                         $isReport = $table['PRO_UID'] !== '' ? true : false;
                         if ($table !== false) {
                             if (!$isReport) {
                                 if (count($contentData) > 0) {
                                     foreach ($contentData as $row) {
                                         $data = new StdClass();
                                         $data->id = $table['ADD_TAB_UID'];
                                         $data->rows = base64_encode(serialize($row));
                                         $res = $this->dataCreate($data, 'base64');
                                         if (!$res->success) {
                                             $errors .= $res->message;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     break;
             }
             $fsData = intval(fread($fp, 9));
             if ($fsData > 0) {
                 $sType = fread($fp, $fsData);
             } else {
                 break;
             }
         }
         ////////////
         if ($errors == '') {
             $result->success = true;
             $msg = G::loadTranslation('ID_PMTABLE_IMPORT_SUCCESS', array($filename));
         } else {
             $result->success = false;
             $result->errorType = 'warning';
             $msg = G::loadTranslation('ID_PMTABLE_IMPORT_WITH_ERRORS', array($filename)) . "\n\n" . $errors;
         }
         $result->message = $msg;
     } catch (Exception $e) {
         $result->errorType = 'error';
         $result->buildResult = ob_get_contents();
         ob_end_clean();
         $result->success = false;
         // if it is a propel exception message
         if (preg_match('/(.*)\\s\\[(.*):\\s(.*)\\]\\s\\[(.*):\\s(.*)\\]/', $e->getMessage(), $match)) {
             $result->message = $match[3];
             $result->type = G::loadTranslation('ID_ERROR');
         } else {
             $result->message = $e->getMessage();
             $result->type = G::loadTranslation('ID_EXCEPTION');
         }
         //$result->trace = $e->getTraceAsString();
     }
     return $result;
 }
예제 #22
0
 /**
  * Create the application document registry
  * @param array $aData
  * @return string
  * */
 public function create($aData)
 {
     $oConnection = Propel::getConnection(OutputDocumentPeer::DATABASE_NAME);
     try {
         if (isset($aData['OUT_DOC_UID']) && $aData['OUT_DOC_UID'] == '') {
             unset($aData['OUT_DOC_UID']);
         }
         if (!isset($aData['OUT_DOC_UID'])) {
             $aData['OUT_DOC_UID'] = G::generateUniqueID();
         }
         if (!isset($aData['OUT_DOC_GENERATE'])) {
             $aData['OUT_DOC_GENERATE'] = 'BOTH';
         } else {
             if ($aData['OUT_DOC_GENERATE'] == '') {
                 $aData['OUT_DOC_GENERATE'] = 'BOTH';
             }
         }
         $oOutputDocument = new OutputDocument();
         $oOutputDocument->fromArray($aData, BasePeer::TYPE_FIELDNAME);
         if ($oOutputDocument->validate()) {
             $oConnection->begin();
             if (isset($aData['OUT_DOC_TITLE'])) {
                 $oOutputDocument->setOutDocTitle($aData['OUT_DOC_TITLE']);
             }
             if (isset($aData['OUT_DOC_DESCRIPTION'])) {
                 $oOutputDocument->setOutDocDescription($aData['OUT_DOC_DESCRIPTION']);
             }
             $oOutputDocument->setOutDocFilename($aData['OUT_DOC_FILENAME']);
             if (isset($aData['OUT_DOC_TEMPLATE'])) {
                 $oOutputDocument->setOutDocTemplate($aData['OUT_DOC_TEMPLATE']);
             }
             $iResult = $oOutputDocument->save();
             $oConnection->commit();
             return $aData['OUT_DOC_UID'];
         } else {
             $sMessage = '';
             $aValidationFailures = $oOutputDocument->getValidationFailures();
             foreach ($aValidationFailures as $oValidationFailure) {
                 $sMessage .= $oValidationFailure->getMessage() . '<br />';
             }
             throw new Exception('The registry cannot be created!<br />' . $sMessage);
         }
     } catch (Exception $oError) {
         $oConnection->rollback();
         throw $oError;
     }
 }
예제 #23
0
 }
 if (isset($frm['USER_LANG'])) {
     if ($frm['USER_LANG'] != '') {
         $lang = $frm['USER_LANG'];
     }
 } else {
     if (defined('SYS_LANG')) {
         $lang = SYS_LANG;
     } else {
         $lang = 'en';
     }
 }
 /**log in table Login**/
 require_once 'classes/model/LoginLog.php';
 $weblog = new LoginLog();
 $aLog['LOG_UID'] = G::generateUniqueID();
 $aLog['LOG_STATUS'] = 'ACTIVE';
 $aLog['LOG_IP'] = G::getIpAddress();
 $aLog['LOG_SID'] = session_id();
 $aLog['LOG_INIT_DATE'] = date('Y-m-d H:i:s');
 //$aLog['LOG_END_DATE']       = '0000-00-00 00:00:00';
 $aLog['LOG_CLIENT_HOSTNAME'] = $_SERVER['HTTP_HOST'];
 $aLog['USR_UID'] = $_SESSION['USER_LOGGED'];
 $weblog->create($aLog);
 /**end log**/
 //************** background processes, here we are putting some back office routines **********
 $heartBeatNWIDate = $oServerConf->getHeartbeatProperty('HB_NEXT_GWI_DATE', 'HEART_BEAT_CONF');
 if (is_null($heartBeatNWIDate)) {
     $heartBeatNWIDate = time();
 }
 if (time() >= $heartBeatNWIDate) {
예제 #24
0
 /**
  * Creates the Process
  *
  * @param array $aData Fields with :
  * $aData['PRO_UID'] the process id
  * $aData['USR_UID'] the userid
  * $aData['PRO_CATEGORY'] the id category
  * @return string
  */
 public function create($aData, $generateUid = true)
 {
     if (!isset($aData['USR_UID'])) {
         throw new PropelException('The process cannot be created. The USR_UID is empty.');
     }
     $con = Propel::getConnection(ProcessPeer::DATABASE_NAME);
     try {
         if ($generateUid) {
             do {
                 $sNewProUid = G::generateUniqueID();
             } while ($this->processExists($sNewProUid));
         } else {
             $sNewProUid = $aData['PRO_UID'];
         }
         $this->setProUid($sNewProUid);
         $this->setProParent($sNewProUid);
         $this->setProTime(1);
         $this->setProTimeunit('DAYS');
         $this->setProStatus('ACTIVE');
         $this->setProTypeDay('');
         $this->setProType(isset($aData["PRO_TYPE"]) ? $aData["PRO_TYPE"] : "NORMAL");
         $this->setProAssignment('FALSE');
         $this->setProShowMap('');
         $this->setProShowMessage('');
         $this->setProShowDelegate('');
         $this->setProShowDynaform('');
         $this->setProCategory(isset($aData["PRO_CATEGORY"]) ? $aData["PRO_CATEGORY"] : "");
         $this->setProSubCategory('');
         $this->setProIndustry('');
         $this->setProCreateDate(date("Y-m-d H:i:s"));
         $this->setProCreateUser($aData['USR_UID']);
         $this->setProHeight(5000);
         $this->setProWidth(10000);
         $this->setProTitleX(0);
         $this->setProTitleY(0);
         $this->setProDynaforms(isset($aData['PRO_DYNAFORMS']) ? is_array($aData['PRO_DYNAFORMS']) ? serialize($aData['PRO_DYNAFORMS']) : $aData['PRO_DYNAFORMS'] : '');
         if ($this->validate()) {
             $con->begin();
             $res = $this->save();
             if (isset($aData['PRO_TITLE'])) {
                 $this->setProTitle($aData['PRO_TITLE']);
             } else {
                 $this->setProTitle('Default Process Title');
             }
             if (isset($aData['PRO_DESCRIPTION'])) {
                 $this->setProDescription($aData['PRO_DESCRIPTION']);
             } else {
                 $this->setProDescription('Default Process Description');
             }
             $con->commit();
             $this->memcachedDelete();
             return $this->getProUid();
         } else {
             $msg = '';
             foreach ($this->getValidationFailures() as $objValidationFailure) {
                 $msg .= $objValidationFailure->getMessage() . "<br/>";
             }
             throw new PropelException('The row cannot be created!', new PropelException($msg));
         }
     } catch (Exception $e) {
         $con->rollback();
         throw $e;
     }
 }
예제 #25
0
function newSkin($baseSkin = 'classic')
{
    $skinBase = $baseSkin != "" ? strtolower($baseSkin) : 'classic';
    if (isset($_REQUEST['skinBase']) && $_REQUEST['skinBase'] != "") {
        $skinBase = strtolower($_REQUEST['skinBase']);
    }
    try {
        if (!isset($_REQUEST['skinName'])) {
            throw new Exception(G::LoadTranslation('ID_SKIN_NAME_REQUIRED'));
        }
        if (!isset($_REQUEST['skinFolder'])) {
            throw new Exception(G::LoadTranslation('ID_SKIN_FOLDER_REQUIRED'));
        }
        //Should validate skin folder name here
        //if....
        $skinName = $_REQUEST['skinName'];
        $skinFolder = $_REQUEST['skinFolder'];
        $skinDescription = isset($_REQUEST['skinDescription']) ? $_REQUEST['skinDescription'] : '';
        $skinAuthor = isset($_REQUEST['skinAuthor']) ? $_REQUEST['skinAuthor'] : 'ProcessMaker Team';
        if (is_dir(PATH_CUSTOM_SKINS . $skinFolder)) {
            throw new Exception(G::LoadTranslation('ID_SKIN_ALREADY_EXISTS'));
        }
        if (strtolower($skinFolder) == 'classic') {
            throw new Exception(G::LoadTranslation('ID_SKIN_ALREADY_EXISTS'));
        }
        //All validations OK then create skin
        switch ($skinBase) {
            //Validate skin base
            case 'uxmodern':
                copy_skin_folder(G::ExpandPath("skinEngine") . 'uxmodern' . PATH_SEP, PATH_CUSTOM_SKINS . $skinFolder, array("config.xml"));
                $pathBase = G::ExpandPath("skinEngine") . 'base' . PATH_SEP;
                break;
            case 'classic':
                //Special Copy of this dir + xmlreplace
                copy_skin_folder(G::ExpandPath("skinEngine") . 'base' . PATH_SEP, PATH_CUSTOM_SKINS . $skinFolder, array("config.xml", "baseCss"));
                $pathBase = G::ExpandPath("skinEngine") . 'base' . PATH_SEP;
                break;
            case 'neoclassic':
                //Special Copy of this dir + xmlreplace
                copy_skin_folder(G::ExpandPath("skinEngine") . 'neoclassic' . PATH_SEP, PATH_CUSTOM_SKINS . $skinFolder, array("config.xml", "baseCss"));
                $pathBase = G::ExpandPath("skinEngine") . 'neoclassic' . PATH_SEP;
                break;
            default:
                //Commmon copy/paste of a folder + xmlrepalce
                copy_skin_folder(PATH_CUSTOM_SKINS . $skinBase, PATH_CUSTOM_SKINS . $skinFolder, array("config.xml"));
                $pathBase = PATH_CUSTOM_SKINS . $skinBase . PATH_SEP;
                break;
        }
        //ReBuild config file
        //TODO: Improve this pre_replace lines
        $configFileOriginal = $pathBase . "config.xml";
        $configFileFinal = PATH_CUSTOM_SKINS . $skinFolder . PATH_SEP . 'config.xml';
        $xmlConfiguration = file_get_contents($configFileOriginal);
        $workspace = $_REQUEST['workspace'] == 'global' ? '' : SYS_SYS;
        $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
        $skinInformationArray = $xmlConfigurationObj->result["skinConfiguration"]["__CONTENT__"]["information"]["__CONTENT__"];
        $xmlConfiguration = preg_replace('/(<id>)(.+?)(<\\/id>)/i', '<id>' . G::generateUniqueID() . '</id><!-- $2 -->', $xmlConfiguration);
        if (isset($skinInformationArray["workspace"]["__VALUE__"])) {
            $workspace = $workspace != "" && !empty($skinInformationArray["workspace"]["__VALUE__"]) ? $skinInformationArray["workspace"]["__VALUE__"] . "|" . $workspace : $workspace;
            $xmlConfiguration = preg_replace("/(<workspace>)(.*)(<\\/workspace>)/i", "<workspace>" . $workspace . "</workspace><!-- \$2 -->", $xmlConfiguration);
            $xmlConfiguration = preg_replace("/(<name>)(.*)(<\\/name>)/i", "<name>" . $skinName . "</name><!-- \$2 -->", $xmlConfiguration);
        } else {
            $xmlConfiguration = preg_replace("/(<name>)(.*)(<\\/name>)/i", "<name>" . $skinName . "</name><!-- \$2 -->\n<workspace>" . $workspace . "</workspace>", $xmlConfiguration);
        }
        $xmlConfiguration = preg_replace("/(<description>)(.+?)(<\\/description>)/i", "<description>" . $skinDescription . "</description><!-- \$2 -->", $xmlConfiguration);
        $xmlConfiguration = preg_replace("/(<author>)(.+?)(<\\/author>)/i", "<author>" . $skinAuthor . "</author><!-- \$2 -->", $xmlConfiguration);
        $xmlConfiguration = preg_replace("/(<createDate>)(.+?)(<\\/createDate>)/i", "<createDate>" . date("Y-m-d H:i:s") . "</createDate><!-- \$2 -->", $xmlConfiguration);
        $xmlConfiguration = preg_replace("/(<modifiedDate>)(.+?)(<\\/modifiedDate>)/i", "<modifiedDate>" . date("Y-m-d H:i:s") . "</modifiedDate><!-- \$2 -->", $xmlConfiguration);
        file_put_contents($configFileFinal, $xmlConfiguration);
        $response['success'] = true;
        $response['message'] = G::LoadTranslation('ID_SKIN_SUCCESS_CREATE');
        G::auditLog("CreateSkin", "Skin Name: " . $skinName);
        print_r(G::json_encode($response));
    } catch (Exception $e) {
        $response['success'] = false;
        $response['message'] = $e->getMessage();
        $response['error'] = $e->getMessage();
        print_r(G::json_encode($response));
    }
}
예제 #26
0
    /**

     * function to start a web services session in ProcessMaker

     *

     * @param string $userid

     * @param string $password

     * @return $wsResponse will return an object

     */

    public function login ($userid, $password)

    {

        global $RBAC;



        try {

            $uid = $RBAC->VerifyLogin( $userid, $password );



            switch ($uid) {

                case '':

                case - 1: //The user doesn't exist

                    $wsResponse = new wsResponse( 3, G::loadTranslation( 'ID_USER_NOT_REGISTERED' ) );

                    break;

                case - 2: //The password is incorrect

                    $wsResponse = new wsResponse( 4, G::loadTranslation( 'ID_WRONG_PASS' ) );

                    break;

                case - 3: //The user is inactive

                    $wsResponse = new wsResponse( 5, G::loadTranslation( 'ID_USER_INACTIVE' ) );

                    break;

                case - 4: //The Due date is finished

                    $wsResponse = new wsResponse( 5, G::loadTranslation( 'ID_USER_INACTIVE' ) );

                    break;

            }



            if ($uid < 0 || $uid == '') {

                throw (new Exception( serialize( $wsResponse ) ));

            }



            //check access to PM

            $RBAC->loadUserRolePermission( $RBAC->sSystem, $uid );

            $res = $RBAC->userCanAccess( "PM_LOGIN" );



            if ($res != 1) {

                //if ($res == -2)

                //  $wsResponse = new wsResponse(1, G::loadTranslation('ID_USER_HAVENT_RIGHTS_SYSTEM'));

                //else

                $wsResponse = new wsResponse( 2, G::loadTranslation( 'ID_USER_HAVENT_RIGHTS_SYSTEM' ) );

                throw (new Exception( serialize( $wsResponse ) ));

            }



            $sessionId = G::generateUniqueID();

            $wsResponse = new wsResponse( '0', $sessionId );



            $session = new Session();

            $session->setSesUid( $sessionId );

            $session->setSesStatus( 'ACTIVE' );

            $session->setUsrUid( $uid );

            $session->setSesRemoteIp( $_SERVER['REMOTE_ADDR'] );

            $session->setSesInitDate( date( 'Y-m-d H:i:s' ) );

            $session->setSesDueDate( date( 'Y-m-d H:i:s', mktime( date( 'H' ), date( 'i' ) + 15, date( 's' ), date( 'm' ), date( 'd' ), date( 'Y' ) ) ) );

            $session->setSesEndDate( '' );

            $session->Save();



            //save the session in DataBase





            return $wsResponse;

        } catch (Exception $e) {

            $wsResponse = unserialize( $e->getMessage() );



            return $wsResponse;

        }

    }
예제 #27
0
    /**
     * Create & Update function
     */
    public function create($aData, $aFields = array())
    {
        if (!isset($aData['ADD_TAB_UID']) || (isset($aData['ADD_TAB_UID']) && $aData['ADD_TAB_UID'] == '')) {
            $aData['ADD_TAB_UID'] = G::generateUniqueID();
        }

        $oConnection = Propel::getConnection(AdditionalTablesPeer::DATABASE_NAME);

        try {
            $oAdditionalTables = new AdditionalTables();
            $oAdditionalTables->fromArray($aData, BasePeer::TYPE_FIELDNAME);

            if ($oAdditionalTables->validate()) {
                $oConnection->begin();
                $iResult = $oAdditionalTables->save();
                $oConnection->commit();
                /*                 * **DEPRECATED
                  require_once 'classes/model/ShadowTable.php';
                  $oShadowTable = new ShadowTable();
                  $oShadowTable->create(array('ADD_TAB_UID' => $aData['ADD_TAB_UID'],
                  'SHD_ACTION'  => 'CREATE',
                  'SHD_DETAILS' => serialize($aFields),
                  'USR_UID'     => (isset($_SESSION['USER_LOGGED']) ? $_SESSION['USER_LOGGED'] : ''),
                  'APP_UID'     => '',
                  'SHD_DATE'    => date('Y-m-d H:i:s')));
                 */

                $addTabDescription = ($aData["ADD_TAB_DESCRIPTION"] != "")? ", Description: " . $aData["ADD_TAB_DESCRIPTION"] : ".";
                G::auditLog("CreatePmtable", "PM Table Name: " . $aData['ADD_TAB_NAME'] . $addTabDescription);
                return $aData['ADD_TAB_UID'];
            } else {
                $sMessage = '';
                $aValidationFailures = $oAdditionalTables->getValidationFailures();
                foreach ($aValidationFailures as $oValidationFailure) {
                    $sMessage .= $oValidationFailure->getMessage() . '<br />';
                }
                throw(new Exception('The registry cannot be created!<br />' . $sMessage));
            }
        } catch (Exception $oError) {
            $oConnection->rollback();
            throw($oError);
        }
    }
예제 #28
0
    /**

     * get an unused process variables GUID

     *

     * @return $sProUid

     */

    public function getUnusedProcessVariableGUID ()

    {

        do {

            $sNewUid = G::generateUniqueID();

        } while ($this->processVariableExists( $sNewUid ));

        return $sNewUid;

    }
예제 #29
0
 public function create($aData)
 {
     $con = Propel::getConnection(ReportTablePeer::DATABASE_NAME);
     try {
         $con->begin();
         if (isset($aData['REP_TAB_UID']) && $aData['REP_TAB_UID'] == '') {
             unset($aData['REP_TAB_UID']);
         }
         if (!isset($aData['REP_TAB_UID'])) {
             $this->setRepTabUid(G::generateUniqueID());
         } else {
             $this->setRepTabUid($aData['REP_TAB_UID']);
         }
         $this->setProUid($aData['PRO_UID']);
         $this->setRepTabName($aData['REP_TAB_NAME']);
         $this->setRepTabType($aData['REP_TAB_TYPE']);
         if (!isset($aData['REP_TAB_GRID'])) {
             $this->setRepTabGrid("");
         } else {
             $this->setRepTabGrid($aData['REP_TAB_GRID']);
         }
         if (!isset($aData['REP_TAB_CONNECTION'])) {
             $this->setRepTabConnection("report");
         } else {
             $this->setRepTabConnection($aData['REP_TAB_CONNECTION']);
         }
         $this->setRepTabCreateDate(date('Y-m-d H:i:s'));
         $this->setRepTabStatus('ACTIVE');
         if ($this->validate()) {
             if (!isset($aData['REP_TAB_TITLE'])) {
                 $this->setRepTabTitle("");
             } else {
                 $this->setRepTabTitle($aData['REP_TAB_TITLE']);
             }
             $result = $this->save();
             $con->commit();
             return $result;
         } else {
             $con->rollback();
             throw new Exception("Failed Validation in class " . get_class($this) . ".");
         }
     } catch (Exception $e) {
         $con->rollback();
         throw $e;
     }
 }
예제 #30
0
  	  die;
  	break;
  	case -1:
  	  G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
  	  G::header('location: ../login/login');
  	  die;
  	break;
  }
 */
 require_once 'classes/model/CaseScheduler.php';
 $oCaseScheduler = new CaseScheduler();
 if (empty($_POST)) {
     die('The information sended is empty!');
 }
 if (empty($_POST['SCH_UID'])) {
     $aData['SCH_UID'] = G::generateUniqueID();
 } else {
     $aData['SCH_UID'] = $_POST['SCH_UID'];
 }
 $aData['SCH_NAME'] = $_POST['SCH_NAME'];
 $aData['SCH_DEL_USER_NAME'] = $_POST['SCH_DEL_USER_NAME'];
 $aData['SCH_DEL_USER_PASS'] = md5($_POST['SCH_USER_PASSWORD']);
 $aData['SCH_DEL_USER_UID'] = $_POST['SCH_DEL_USER_UID'];
 $aData['PRO_UID'] = $_POST['PRO_UID'];
 $aData['TAS_UID'] = $_POST['TAS_UID'];
 $aData['SCH_STATE'] = 'ACTIVE';
 $aData['SCH_LAST_STATE'] = 'CREATED';
 // 'ACTIVE';
 $aData['USR_UID'] = $_SESSION['USER_LOGGED'];
 $sOption = $_POST['SCH_OPTION'];
 if ($sOption == 'Daily') {