/** * @param RedBeanModel $model * @param RedBeanModel $copyToModel */ public static function copy(RedBeanModel $model, RedBeanModel $copyToModel) { parent::copy($model, $copyToModel); foreach ($model->activityItems as $activityItem) { $copyToModel->activityItems->add($activityItem); } }
/** * Use copy of parent class in addition to copy categories * @param RedBeanModel $model * @param RedBeanModel $copyToModel - model to copy attribute values from $model to */ public static function copy(RedBeanModel $model, RedBeanModel $copyToModel) { parent::copy($model, $copyToModel); foreach ($model->productCategories as $productCategory) { $copyToModel->productCategories->add($productCategory); } }
/** * Use copy of parent class in addition to copy accounts, contacts and opportunities * @param RedBeanModel $model * @param RedBeanModel $copyToModel - model to copy attribute values from $model to */ public static function copy(RedBeanModel $model, RedBeanModel $copyToModel) { parent::copy($model, $copyToModel); foreach ($model->accounts as $account) { $copyToModel->accounts->add($account); } foreach ($model->contacts as $contact) { $copyToModel->contacts->add($contact); } foreach ($model->opportunities as $opportunity) { $copyToModel->opportunities->add($opportunity); } }
public function actionCopy($id) { $copyToContact = new Contact(); $postVariableName = get_class($copyToContact); if (!isset($_POST[$postVariableName])) { $contact = Contact::getById((int) $id); ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($contact); ZurmoCopyModelUtil::copy($contact, $copyToContact); } $this->processEdit($copyToContact); }
/** * Ensures another user can 'clone' an account they can see, but is not necessarily the owner and does not have * super privileges. */ public function testCopyingAModelOwnedByAnotherUserWhereYouHaveRestrictedAccess() { Yii::app()->user->userModel = User::getByUsername('super'); $account = AccountTestHelper::createAccountByNameForOwner('a super account', Yii::app()->user->userModel); //This will simulate sally having access to 'clone' the account. $sally = User::getByUserName('sally'); $account->addPermissions($sally, Permission::READ); $account->save(); AllPermissionsOptimizationUtil::securableItemGivenReadPermissionsForUser($account, $sally); Yii::app()->user->userModel = User::getByUsername('sally'); $copyOfAccount = new Account(); ZurmoCopyModelUtil::copy($account, $copyOfAccount); $saved = $copyOfAccount->save(); $this->assertTrue($saved); }
public function actionCopy($id) { $copyToCostbook = new Costbook(); $postVariableName = get_class($copyToCostbook); if (!isset($_POST[$postVariableName])) { $costbook = Costbook::getById((int) $id); $copyToCostbook->costofgoodssold->value = $costbook->costofgoodssold->value; ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($costbook); ZurmoCopyModelUtil::copy($costbook, $copyToCostbook); } $this->processEdit($copyToCostbook); }
protected function resolveSavedWorkflowAndWorkflowByPostData(array $postData, &$savedWorkflow, &$workflow, $type, $id = null, $isBeingCopied = false) { if ($id == null) { $this->resolveCanCurrentUserAccessWorkflows(); $savedWorkflow = new SavedWorkflow(); $workflow = new Workflow(); $workflow->setType($type); } elseif ($isBeingCopied) { $savedWorkflow = new SavedWorkflow(); $oldWorkflow = SavedWorkflow::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($oldWorkflow); ZurmoCopyModelUtil::copy($oldWorkflow, $savedWorkflow); $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow); } else { $savedWorkflow = SavedWorkflow::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedWorkflow); $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow); } DataToWorkflowUtil::resolveWorkflowByWizardPostData($workflow, $postData, WorkflowToWizardFormAdapter::getFormClassNameByType($type)); }
protected function resolveSavedReportAndReportByPostData(array $postData, &$savedReport, &$report, $type, $id = null, $isBeingCopied = false) { if ($id == null) { $this->resolveCanCurrentUserAccessReports(); $savedReport = new SavedReport(); $report = new Report(); $report->setType($type); } elseif ($isBeingCopied) { $savedReport = new SavedReport(); $oldReport = SavedReport::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($oldReport); ZurmoCopyModelUtil::copy($oldReport, $savedReport); $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport); } else { $savedReport = SavedReport::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedReport); $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport); } DataToReportUtil::resolveReportByWizardPostData($report, $postData, ReportToWizardFormAdapter::getFormClassNameByType($type)); }
/** * * @param FileModel $existingFileModel * @param bool $sharedContent * @return $fileModel or false on failure */ public static function makeByFileModel($existingFileModel, $sharedContent = true) { $file = new FileModel(); ZurmoCopyModelUtil::copy($existingFileModel, $file); if (!$sharedContent) { $fileContent = new FileContent(); $fileContent->content = $existingFileModel->fileContent->content; $file->fileContent = $fileContent; } if (!$file->save()) { return false; } return $file; }
/** * * @param integer $fileModelId * @return $fileModel or false on failure */ public static function makeByExistingFileModelId($fileModelId) { assert('is_int($fileModelId) || (is_string($fileModelId) && !empty($fileModelId))'); $existingFileModel = FileModel::getById($fileModelId); $file = new FileModel(); // TODO: @Shoaibi/@Jason: High: Following should also clone FileContent as its HAS_ONE. ZurmoCopyModelUtil::copy($existingFileModel, $file); $fileContent = new FileContent(); $fileContent->content = $existingFileModel->fileContent->content; $file->fileContent = $fileContent; if (!$file->save()) { return false; } return $file; }
/** * * @param FileModel $existingFileModel * @return $fileModel or false on failure */ public static function makeByFileModel($existingFileModel) { $file = new FileModel(); // TODO: @Shoaibi/@Jason: High: Following should also clone FileContent as its HAS_ONE. ZurmoCopyModelUtil::copy($existingFileModel, $file); $fileContent = new FileContent(); $fileContent->content = $existingFileModel->fileContent->content; $file->fileContent = $fileContent; if (!$file->save()) { return false; } return $file; }
/** * @param RedBeanModel $model * @param RedBeanModel $copyToModel */ public static function copy(RedBeanModel $model, RedBeanModel $copyToModel) { parent::copy($model, $copyToModel); $copyToModel->status = Campaign::STATUS_ACTIVE; $copyToModel->sendOnDateTime = null; }
public function actionCopy($id) { $copyToagrmnt = new Agreement(); $postVariableName = get_class($copyToagrmnt); if (!isset($_POST[$postVariableName])) { $agmnt = Agreement::getById((int) $id); $copyToagrmnt->RecordType = $agmnt->RecordType; $copyToagrmnt->Project_Agreement_Amount = $agmnt->Project_Agreement_Amount; $copyToagrmnt->Current_GPM = $agmnt->Current_GPM; if ($agmnt->ContractTerm > 0) { $copyToagrmnt->ContractTerm = $agmnt->ContractTerm; } else { $copyToagrmnt->ContractTerm = 0; } $copyToagrmnt->ContractTerm = $agmnt->ContractTerm; $copyToagrmnt->Status = $agmnt->Status; $copyToagrmnt->account = $agmnt->account; ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($agmnt); ZurmoCopyModelUtil::copy($agmnt, $copyToagrmnt); } $this->processEdit($copyToagrmnt); }