public static function editGroup($params) { $resultInfo = array(); $actionType = BugfreeModel::ACTION_OPEN; $oldRecordAttributs = array(); if (empty($params['id'])) { $group = new UserGroup(); } else { $group = self::loadModel($params['id']); $oldRecordAttributs = $group->attributes; if (!empty($group->group_user)) { $oldRecordAttributs['group_user'] = join(',', $group->group_user); } $oldRecordAttributs['group_manager'] = $group->group_manager; $actionType = BugfreeModel::ACTION_EDIT; } if (!self::isGroupEditable($group->id)) { $resultInfo['status'] = CommonService::$ApiResult['FAIL']; $resultInfo['detail']['id'] = Yii::t('Common', 'Required URL not found or permission denied.'); return $resultInfo; } $group->attributes = $params; if (!$group->save()) { $resultInfo['status'] = CommonService::$ApiResult['FAIL']; $resultInfo['detail'] = $group->getErrors(); } else { Yii::app()->db->createCommand()->delete('{{map_user_group}}', 'user_group_id=:groupId', array(':groupId' => $group->id)); $managerNameArr = CommonService::splitStringToArray(',', $params['group_manager']); $managerIdArr = array(); foreach ($managerNameArr as $mangerName) { $managerInfo = TestUserService::getUserInfoByRealname($mangerName); if ($managerInfo !== null) { $managerIdArr[] = $managerInfo['id']; } } $allUserId = array_unique(array_merge($params['group_user'], $managerIdArr)); foreach ($allUserId as $userId) { $mapUserGroup = new MapUserGroup(); $mapUserGroup->test_user_id = $userId; $mapUserGroup->user_group_id = $group->id; if (in_array($userId, $managerIdArr)) { $mapUserGroup->is_admin = CommonService::$TrueFalseStatus['TRUE']; } else { $mapUserGroup->is_admin = CommonService::$TrueFalseStatus['FALSE']; } $mapUserGroup->save(); } $newRecord = self::loadModel($group->id); if (!empty($newRecord->group_user)) { $newRecord->group_user = join(',', $newRecord->group_user); } $addActionResult = AdminActionService::addActionNotes('user_group', $actionType, $newRecord, $oldRecordAttributs); $resultInfo['status'] = CommonService::$ApiResult['SUCCESS']; $resultInfo['detail'] = array('id' => $group->id); } return $resultInfo; }
public static function getQueryOrder($queryRowOrderStr) { $arr = CommonService::splitStringToArray(',', $queryRowOrderStr); $indexArr = array(); foreach ($arr as $value) { $indexArr[] = str_replace('SearchConditionRow', '', $value); } return $indexArr; }
public function actionGetAcValue() { $dataStr = $_GET['data']; $q = $_GET['q']; $limit = $_GET['limit']; $valueStr = FieldConfigService::getAutoCompleteValueStr($dataStr, $q, $limit); $valueArr = CommonService::splitStringToArray(',', $valueStr); $returnStr = ''; $i = 0; foreach ($valueArr as $valueTmp) { if ($i < $limit) { if ('' == $q || false !== strpos(strtolower($valueTmp), strtolower($q))) { $returnStr .= $valueTmp . '|' . $valueTmp . "\n"; $i++; } } else { break; } } echo $returnStr; }
private static function getFileType($fileName) { $fileType = CommonService::splitStringToArray(".", $fileName); $fileType = strtolower(array_pop($fileType)); if (strlen($fileType) == strlen($fileName)) { return ''; } return $fileType; }
public function actionIndex() { $this->layout = '//layouts/index'; $expandClass = $this->getExpandClassName(); $infoType = $this->getInfoType(); $productId = $this->getProductId($infoType); $accessProductIdNameArr = Yii::app()->user->getState('visit_product_list'); $productName = $accessProductIdNameArr[$productId]; $defaultShowFieldArr = SearchService::getDefaultShowFieldArr($infoType); $showFieldArr = $this->getShowFieldArr($defaultShowFieldArr, $infoType, $productId); $queryTitle = $this->getQueryTitle($productId, $infoType); $productModuleId = $this->getModuleId($productId, $infoType); $searchRowArr = InfoService::getBlankSearchRowArr($productName, $productModuleId, $infoType); $searchFieldConfig = SearchService::getSearchableFields($infoType, $productId); $defaultSelectFieldOptionStr = SearchService::getSelectFieldsOption($searchFieldConfig, $defaultShowFieldArr); $defaultShowFieldOptionStr = SearchService::getShowFieldsOption($searchFieldConfig, $defaultShowFieldArr); $templateStr = InfoService::getTemplateStr($productId, $infoType, Yii::app()->user->id); $leftMenu = UserQueryService::getQueryLinkStr($productId, $infoType, Yii::app()->user->id); //not request from post query, save query and reset query $filterSql = ''; $filterColumn = ''; if (!empty($_POST['queryaction'])) { Yii::app()->user->setState($productId . '_' . $infoType . '_filterSql', null); Yii::app()->user->setState($productId . '_' . $infoType . '_filterColumn', null); if (!empty($_POST['reset'])) { Yii::app()->user->setState($productId . '_' . $infoType . '_showField', null); Yii::app()->user->setState($productId . '_' . $infoType . '_search', null); } else { if (!empty($_POST['saveQuery'])) { $result = UserQueryService::editUserQuery($queryTitle, $productId, $infoType, $_POST[Info::QUERY_GROUP_NAME]); if (CommonService::$ApiResult['FAIL'] == $result['status']) { CommonService::jsAlert(Yii::t('Common', 'save query fail')); } CommonService::testRefreshSelf(); } if (isset($_POST[Info::QUERY_GROUP_NAME])) { $searchCondition = $_POST[Info::QUERY_GROUP_NAME]; $searchRowArr = SearchService::getSearchConditionArr($searchCondition); } } } else { if (isset($_GET['query_id'])) { $searchRowArr = $this->getSavedSearchRow($productId, $infoType, $_GET['query_id']); Yii::app()->user->setState($productId . '_' . $infoType . '_filterSql', null); Yii::app()->user->setState($productId . '_' . $infoType . '_filterColumn', null); $productModuleId = $this->getSavedQueryModuleId($searchRowArr, $productId, $infoType); } else { $sessionSearchRowArr = Yii::app()->user->getState($productId . '_' . $infoType . '_search'); if ($sessionSearchRowArr !== null) { $searchRowArr = $sessionSearchRowArr; } } if (!empty($_GET['filter'])) { $filterArr = CommonService::splitStringToArray('|', $_GET['filter']); if (Info::$InputType['date'] == $searchFieldConfig[$filterArr[0]]['type']) { $filterSql = $filterArr[0] . " like '" . addslashes($filterArr[1]) . "%'"; } else { $filterSql = $filterArr[0] . " = '" . addslashes($filterArr[1]) . "'"; } $filterColumn = $filterArr[0]; Yii::app()->user->setState($productId . '_' . $infoType . '_filterSql', $filterSql); Yii::app()->user->setState($productId . '_' . $infoType . '_filterColumn', $filterArr[0]); } else { $sessionFilterColumn = Yii::app()->user->getState($productId . '_' . $infoType . '_filterColumn'); if ($sessionFilterColumn !== null) { $filterSql = Yii::app()->user->getState($productId . '_' . $infoType . '_filterSql'); $filterColumn = $sessionFilterColumn; } } } if (isset($_GET['productmodule_id'])) { $searchRowArr[0]['leftParenthesesName'] = ''; $searchRowArr[0]['field'] = 'module_name'; $searchRowArr[0]['rightParenthesesName'] = ''; $searchRowArr[0]['operator'] = 'UNDER'; $searchRowArr[0]['andor'] = 'And'; $searchRowArr[0]['value'] = ''; $selectedModuleInfo = ProductModule::model()->findByPk($_GET['productmodule_id']); if ($selectedModuleInfo !== null) { $searchRowArr[0]['value'] = $productName . '/' . $selectedModuleInfo->full_path_name; } else { $searchRowArr[0]['value'] = $productName; } } $searchRowArr = $this->setSpecialModuleCondiftion($searchRowArr, $productName); Yii::app()->user->setState($productId . '_' . $infoType . '_search', $searchRowArr); $getSqlResult = SqlService::baseGetGroupQueryStr($searchFieldConfig, $infoType, $searchRowArr); if (CommonService::$ApiResult['FAIL'] == $getSqlResult['status']) { $whereStr = ' 1<>1 '; } else { $whereStr = $getSqlResult['detail']; } if ('' != $filterSql) { $whereStr .= ' and ' . $filterSql; } $selectFieldOptionStr = SearchService::getSelectFieldsOption($searchFieldConfig, $showFieldArr); $showFieldOptionStr = SearchService::getShowFieldsOption($searchFieldConfig, $showFieldArr); $defaultSelectFieldOptionStr = addslashes($defaultSelectFieldOptionStr); $defaultSelectFieldOptionStr = str_replace(array("\r\n", "\r", "\n"), "", $defaultSelectFieldOptionStr); $defaultShowFieldOptionStr = addslashes($defaultShowFieldOptionStr); $defaultShowFieldOptionStr = str_replace(array("\r\n", "\r", "\n"), "", $defaultShowFieldOptionStr); $jsValueStr = SearchService::getJsValueOption($this, $searchFieldConfig); $jsOperatorStr = SearchService::getJsOperatorOption($searchFieldConfig); $searchConditionHtml = SearchService::getSearchHtml($infoType, $searchFieldConfig, $searchRowArr); $searchConditionHtmlTemplate = SearchService::getSearchConditionRowHtml(Info::TEMPLATE_NUMBER, $searchFieldConfig, InfoService::getTemplateSearchRowArr()); $searchConditionHtmlTemplate = addslashes($searchConditionHtmlTemplate); $searchConditionHtmlTemplate = str_replace(array("\r\n", "\r", "\n"), "", $searchConditionHtmlTemplate); $showType = Yii::app()->user->getState($productId . '_' . $infoType . '_showtype'); if (empty($showType)) { $showType = Info::SHOW_TYPE_GRID; } $relatedFields = $this->getRelatedFields($searchRowArr, $showFieldArr); $isAllBasicField = SearchService::isAllBasicField(SearchService::getBasicFieldArr($infoType), $relatedFields); $renderArr = array('expandClass' => $expandClass, 'productId' => $productId, 'productModuleId' => $productModuleId, 'infoType' => $infoType, 'searchFieldConfig' => $searchFieldConfig, 'selectFieldOptionStr' => $selectFieldOptionStr, 'showFieldOptionStr' => $showFieldOptionStr, 'defaultSelectFieldOptionStr' => $defaultSelectFieldOptionStr, 'defaultShowFieldOptionStr' => $defaultShowFieldOptionStr, 'searchConditionHtml' => $searchConditionHtml, 'searchConditionHtmlTemplate' => $searchConditionHtmlTemplate, 'queryTitle' => $queryTitle, 'jsValueStr' => $jsValueStr, 'jsOperatorStr' => $jsOperatorStr, 'leftMenu' => $leftMenu, 'templateStr' => $templateStr, 'showType' => $showType, 'showMyQueryDiv' => Yii::app()->user->getState('my_query_div')); if ($showType == Info::SHOW_TYPE_GRID) { $renderArr = array_merge($renderArr, $this->getGridShowContent($searchFieldConfig, $showFieldArr, $infoType, $productId, $filterColumn, $whereStr, $isAllBasicField)); $renderArr['rowCssClassExpressionStr'] = InfoService::getRowCssClassExpressionStr($infoType); } $this->render('index', $renderArr); }
public static function isSystemAdmin($userId) { $userInfo = TestUser::model()->findByPk($userId); $systemAdminStr = TestOption::model()->findByAttributes(array('option_name' => TestOption::SYSTEM_ADMIN)); $systemAdminArr = array(); if ($systemAdminStr !== null && !empty($systemAdminStr['option_value'])) { $systemAdminArr = CommonService::splitStringToArray(",", $systemAdminStr['option_value']); } if (in_array($userInfo['username'], $systemAdminArr)) { return CommonService::$TrueFalseStatus['TRUE']; } else { return CommonService::$TrueFalseStatus['FALSE']; } }
/** * get info's relate id's html * * @author youzhao.zxw<*****@*****.**> * @param string $infoType bug,case or result * @param string $idStr related id string * @return string relate id's html */ public static function getRelatedIdHtml($infoType, $idStr) { $returnStr = ''; $idArr = CommonService::splitStringToArray(',', $idStr); $modelName = ucfirst($infoType) . 'Info'; $targetModel = new $modelName(); foreach ($idArr as $id) { $infoObj = $targetModel->model()->findByPk($id); if ($infoObj != null) { if (!Info::isProductAccessable($infoObj->product_id)) { $singleLink = '<a title="' . Yii::t('Common', 'No access right') . '" href="' . Yii::app()->createUrl('info/edit', array('type' => $infoType, 'id' => $id)) . '" target="_blank">' . $id . '</a>'; } else { $singleLink = '<a title="' . $infoObj->title . '" href="' . Yii::app()->createUrl('info/edit', array('type' => $infoType, 'id' => $id)) . '" target="_blank">' . $id . '</a>'; } if ('' == $returnStr) { $returnStr = $singleLink; } else { $returnStr .= ',' . $singleLink; } } } if ('' != $returnStr) { $returnStr = '<div style="word-break:break-all;word-wrap:break-word;">' . $returnStr . '</div>'; } return $returnStr; }
public function relatedCaseValidator($attribute, $params) { if (isset($this->related_case)) { $this->related_case = $this->handleSpliter($this->related_case); $relatedBugArr = CommonService::splitStringToArray(',', $this->related_case); foreach ($relatedBugArr as $caseIdTmp) { $infoObj = CaseInfo::model()->findByPk($caseIdTmp); if ($infoObj == null || $infoObj->id != $caseIdTmp) { $this->addError('related_case', 'Case ID[' . $caseIdTmp . ']' . Yii::t('Common', 'is not existed')); } elseif (!Info::isProductAccessable($infoObj->product_id)) { $this->addError('related_case', 'Case ID[' . $caseIdTmp . ']' . Yii::t('Common', 'No access right')); } } } }
public function duplicateIdValidator($attribute, $params) { if (self::DUPLICATE_SOLUTION == $this->solution) { $duplicatedIdError = $this->getError('duplicate_id'); if (empty($duplicatedIdError)) { if (empty($this->duplicate_id)) { $this->addError('duplicate_id', Yii::t('BugInfo', self::ERROR_DUPLICATE_ID)); } else { $this->duplicate_id = $this->handleSpliter($this->duplicate_id); $duplicatedIdArr = CommonService::splitStringToArray(',', $this->duplicate_id); foreach ($duplicatedIdArr as $dupId) { if ($dupId != ceil($dupId)) { $this->addError('duplicate_id', 'Duplicate ID[' . $dupId . ']' . Yii::t('BugInfo', self::ERROR_DUPLICATE_ID)); } else { $infoObj = BugInfo::model()->findByPk($dupId); if ($infoObj == null || $infoObj->id != $dupId) { $this->addError('duplicate_id', 'Duplicate ID[' . $dupId . ']' . Yii::t('BugInfo', self::ERROR_DUPLICATE_ID)); } elseif (!Info::isProductAccessable($infoObj->product_id)) { $this->addError('duplicate_id', 'Duplicate ID[' . $dupId . ']' . Yii::t('Common', 'No access right')); } } } } } } else { $this->duplicate_id = null; } }
private static function dbCreateIN($itemListStr) { $itemListArr = CommonService::splitStringToArray(',', $itemListStr); $tmpArr = array(); foreach ($itemListArr as $item) { $tmpArr[] = "'{$item}'"; } return ' IN (' . join(',', $tmpArr) . ') '; }
private static function getPriSevOption($productId, $fieldName) { $productInfo = self::loadModel($productId); $optionStr = $productInfo[$fieldName]; $optionArr = CommonService::splitStringToArray(',', $optionStr); $resultArr = array(); $resultArr[''] = ''; $optionCount = count($optionArr); for ($i = 0; $i < $optionCount; $i++) { $resultArr[$i + 1] = $optionArr[$i]; } return $resultArr; }