Пример #1
0
 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;
 }
Пример #2
0
 public static function getQueryOrder($queryRowOrderStr)
 {
     $arr = CommonService::splitStringToArray(',', $queryRowOrderStr);
     $indexArr = array();
     foreach ($arr as $value) {
         $indexArr[] = str_replace('SearchConditionRow', '', $value);
     }
     return $indexArr;
 }
Пример #3
0
 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;
 }
Пример #4
0
 private static function getFileType($fileName)
 {
     $fileType = CommonService::splitStringToArray(".", $fileName);
     $fileType = strtolower(array_pop($fileType));
     if (strlen($fileType) == strlen($fileName)) {
         return '';
     }
     return $fileType;
 }
Пример #5
0
 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);
 }
Пример #6
0
 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'];
     }
 }
Пример #7
0
 /**
  * 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;
 }
Пример #8
0
 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'));
             }
         }
     }
 }
Пример #9
0
 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;
     }
 }
Пример #10
0
 private static function dbCreateIN($itemListStr)
 {
     $itemListArr = CommonService::splitStringToArray(',', $itemListStr);
     $tmpArr = array();
     foreach ($itemListArr as $item) {
         $tmpArr[] = "'{$item}'";
     }
     return ' IN (' . join(',', $tmpArr) . ') ';
 }
Пример #11
0
 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;
 }