diff --git a/module/sonarqube/control.php b/module/sonarqube/control.php index 215056b83d..b024f27a2e 100644 --- a/module/sonarqube/control.php +++ b/module/sonarqube/control.php @@ -166,7 +166,7 @@ class sonarqube extends control $token = base64_encode("{$sonarqube->account}:{$sonarqube->password}"); $result = $this->sonarqube->apiValidate($sonarqube->url, $token); - if(!isset($result->valid) or !$result->valid) return $this->send(array('result' => 'fail', 'message' => array('token' => array($this->lang->sonarqube->validError)))); + if(!empty($result)) return $this->send(array('result' => 'fail', 'message' => $result)); $this->post->set('token', $token); } diff --git a/module/sonarqube/lang/en.php b/module/sonarqube/lang/en.php index a14e263602..a7d3a58573 100644 --- a/module/sonarqube/lang/en.php +++ b/module/sonarqube/lang/en.php @@ -30,8 +30,9 @@ $lang->sonarqube->editServer = 'Edit SonarQube Server'; $lang->sonarqube->createSuccess = 'Create success'; $lang->sonarqube->placeholder = new stdclass; -$lang->sonarqube->placeholder->name = ''; -$lang->sonarqube->placeholder->url = "Please fill in the access address of the SonarQube Server homepage, as: https://sonarqube.zentao.net."; +$lang->sonarqube->placeholder->name = ''; +$lang->sonarqube->placeholder->url = "Please fill in the access address of the SonarQube Server homepage, as: https://sonarqube.zentao.net."; +$lang->sonarqube->placeholder->account = "Please fill in the SonarQube user information with Administrator privileges"; $lang->sonarqube->nameRepeatError = "Server name already exists!"; $lang->sonarqube->urlRepeatError = 'Server address already exists!'; @@ -40,6 +41,7 @@ $lang->sonarqube->hostError = "Invalid SonarQube service address."; $lang->sonarqube->confirmDelete = 'Do you want to delete this SonarQube server?'; $lang->sonarqube->confirmDeleteProject = 'Do you want to delete this SonarQube project?'; $lang->sonarqube->noReport = "No Reprot"; +$lang->sonarqube->notAdminer = "Please fill in the SonarQube user information with Administrator privileges"; $lang->sonarqube->projectKey = 'Project Key'; $lang->sonarqube->projectName = 'Project Name'; diff --git a/module/sonarqube/lang/zh-cn.php b/module/sonarqube/lang/zh-cn.php index 40750f815f..e75af4d1d7 100644 --- a/module/sonarqube/lang/zh-cn.php +++ b/module/sonarqube/lang/zh-cn.php @@ -30,8 +30,9 @@ $lang->sonarqube->editServer = '修改SonarQube服务器'; $lang->sonarqube->createSuccess = "创建成功"; $lang->sonarqube->placeholder = new stdclass; -$lang->sonarqube->placeholder->name = ''; -$lang->sonarqube->placeholder->url = "请填写SonarQube Server首页的访问地址,如:https://sonarqube.zentao.net。"; +$lang->sonarqube->placeholder->name = ''; +$lang->sonarqube->placeholder->url = "请填写SonarQube Server首页的访问地址,如:https://sonarqube.zentao.net。"; +$lang->sonarqube->placeholder->account = "请填写具有Administrator权限的SonarQube用户信息"; $lang->sonarqube->nameRepeatError = "服务器名称已存在!"; $lang->sonarqube->urlRepeatError = "服务器地址已存在!"; @@ -40,6 +41,7 @@ $lang->sonarqube->hostError = "无效的SonarQube服务地址。"; $lang->sonarqube->confirmDelete = '确认删除该SonarQube吗?'; $lang->sonarqube->confirmDeleteProject = '确认删除该SonarQube项目吗?'; $lang->sonarqube->noReport = "暂无报告"; +$lang->sonarqube->notAdminer = "请填写具有Administrator权限的SonarQube用户信息"; $lang->sonarqube->projectKey = '项目标识'; $lang->sonarqube->projectName = '项目名称'; diff --git a/module/sonarqube/model.php b/module/sonarqube/model.php index b01ca2f6f2..58a5e804eb 100644 --- a/module/sonarqube/model.php +++ b/module/sonarqube/model.php @@ -42,7 +42,15 @@ class sonarqubeModel extends model { $url = rtrim($host, '/') . "/api/authentication/validate"; $header = 'Authorization: Basic ' . $token; - return json_decode(commonModel::http($url, null, array(), $header)); + $result = json_decode(commonModel::http($url, null, array(), $header)); + if(!isset($result->valid) or !$result->valid) return array('password' => array($this->lang->sonarqube->validError)); + + $url = rtrim($host, '/') . "/api/user_groups/search"; + $header = 'Authorization: Basic ' . $token; + $adminer = json_decode(commonModel::http($url, null, array(), $header)); + if(empty($adminer) or isset($adminer->errors)) return array('account' => array($this->lang->sonarqube->notAdminer)); + + return array(); } /** diff --git a/module/sonarqube/view/browse.html.php b/module/sonarqube/view/browse.html.php index c41334e3be..39e6f551cd 100644 --- a/module/sonarqube/view/browse.html.php +++ b/module/sonarqube/view/browse.html.php @@ -43,7 +43,7 @@