public function testClearSetGetSkipSavingInformation() { MassEditInsufficientPermissionSkipSavingUtil::clear('someModel'); MassEditInsufficientPermissionSkipSavingUtil::setByModelIdAndName('someModel', 1, 'a'); MassEditInsufficientPermissionSkipSavingUtil::setByModelIdAndName('someModel', 2, 'b'); MassEditInsufficientPermissionSkipSavingUtil::setByModelIdAndName('someModel', 3, 'c'); $this->assertEquals(3, MassEditInsufficientPermissionSkipSavingUtil::getCount('someModel')); $data = MassEditInsufficientPermissionSkipSavingUtil::getAll('someModel'); $compareData = array(1 => 'a', 2 => 'b', 3 => 'c'); $this->assertEquals($compareData, $data); }
protected static function processModelsForMassEditAction($postModelClassName, $model, $modelClassName, $selectedRecordCount, $dataProvider, $page, $pageSize, $insufficientPermissionSkipSavingUtil, $actionId) { // TODO: @Shoaibi/@Jason: Low: Candidate for MassActionController PostUtil::sanitizePostForSavingMassEdit($modelClassName); //Generically test that the changes are valid before attempting to save on each model. $sanitizedPostData = PostUtil::sanitizePostByDesignerTypeForSavingModel(new $modelClassName(false), $postModelClassName); $sanitizedOwnerPostData = PostUtil::sanitizePostDataToJustHavingElementForSavingModel($sanitizedPostData, 'owner'); $sanitizedPostDataWithoutOwner = PostUtil::removeElementFromPostDataForSavingModel($sanitizedPostData, 'owner'); $postMassEdit = Yii::app()->request->getPost('MassEdit'); $massEditPostDataWithoutOwner = PostUtil::removeElementFromPostDataForSavingModel($postMassEdit, 'owner'); $model->setAttributes($sanitizedPostDataWithoutOwner); if ($model->validate(array_keys($massEditPostDataWithoutOwner))) { $passedOwnerValidation = true; if ($sanitizedOwnerPostData != null) { $model->setAttributes($sanitizedOwnerPostData); $passedOwnerValidation = $model->validate(array('owner')); } if ($passedOwnerValidation) { MassEditInsufficientPermissionSkipSavingUtil::clear($modelClassName); Yii::app()->gameHelper->triggerMassEditEvent($modelClassName); return static::processModelsForMassActionWithoutScoring($modelClassName, $selectedRecordCount, $dataProvider, $page, $pageSize, $insufficientPermissionSkipSavingUtil, $actionId); } } return false; }
protected function onProgressComplete() { MassEditInsufficientPermissionSkipSavingUtil::clear(get_class($this->model)); }