Merge branch 'master' of https://github.com/metersphere/server
This commit is contained in:
commit
10d7441487
|
@ -117,7 +117,7 @@ public class ShiroDBRealm extends AuthorizingRealm {
|
||||||
UserDTO user = userService.getLoginUser(userId, Arrays.asList(UserSource.LDAP.name(), UserSource.LOCAL.name()));
|
UserDTO user = userService.getLoginUser(userId, Arrays.asList(UserSource.LDAP.name(), UserSource.LOCAL.name()));
|
||||||
String msg;
|
String msg;
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
user = userService.getLoginUserByEmail(email, Arrays.asList(UserSource.LDAP.name(), UserSource.LOCAL.name()));
|
user = userService.getUserDTOByEmail(email, UserSource.LDAP.name(), UserSource.LOCAL.name());
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
msg = "The user does not exist: " + userId;
|
msg = "The user does not exist: " + userId;
|
||||||
logger.warn(msg);
|
logger.warn(msg);
|
||||||
|
@ -136,7 +136,7 @@ public class ShiroDBRealm extends AuthorizingRealm {
|
||||||
UserDTO user = userService.getLoginUser(userId, Collections.singletonList(UserSource.LOCAL.name()));
|
UserDTO user = userService.getLoginUser(userId, Collections.singletonList(UserSource.LOCAL.name()));
|
||||||
String msg;
|
String msg;
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
user = userService.getLoginUserByEmail(userId, Collections.singletonList(UserSource.LOCAL.name()));
|
user = userService.getUserDTOByEmail(userId, UserSource.LOCAL.name());
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
msg = "The user does not exist: " + userId;
|
msg = "The user does not exist: " + userId;
|
||||||
logger.warn(msg);
|
logger.warn(msg);
|
||||||
|
|
|
@ -199,23 +199,21 @@ public class UserService {
|
||||||
return getUserDTO(userId);
|
return getUserDTO(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserDTO getUserDTOByEmail(String email) {
|
public UserDTO getUserDTOByEmail(String email, String... source) {
|
||||||
UserExample example = new UserExample();
|
UserExample example = new UserExample();
|
||||||
example.createCriteria().andEmailEqualTo(email);
|
UserExample.Criteria criteria = example.createCriteria();
|
||||||
List<User> users = userMapper.selectByExample(example);
|
criteria.andEmailEqualTo(email);
|
||||||
if (users == null || users.size() <= 0) {
|
|
||||||
return null;
|
if (!CollectionUtils.isEmpty(Arrays.asList(source))) {
|
||||||
}
|
criteria.andSourceIn(Arrays.asList(source));
|
||||||
return getUserDTO(users.get(0).getId());
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public UserDTO getLoginUserByEmail(String email, List<String> list) {
|
|
||||||
UserExample example = new UserExample();
|
|
||||||
example.createCriteria().andEmailEqualTo(email).andSourceIn(list);
|
|
||||||
List<User> users = userMapper.selectByExample(example);
|
List<User> users = userMapper.selectByExample(example);
|
||||||
|
|
||||||
if (users == null || users.size() <= 0) {
|
if (users == null || users.size() <= 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return getUserDTO(users.get(0).getId());
|
return getUserDTO(users.get(0).getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,33 +3,34 @@
|
||||||
<el-card class="box-card" v-loading="result.loading">
|
<el-card class="box-card" v-loading="result.loading">
|
||||||
<el-form :model="form" size="small" :rules="rules" :disabled="show" ref="form">
|
<el-form :model="form" size="small" :rules="rules" :disabled="show" ref="form">
|
||||||
<el-form-item :label="$t('ldap.url')" prop="url">
|
<el-form-item :label="$t('ldap.url')" prop="url">
|
||||||
<el-input v-model="form.url" :placeholder="$t('ldap.input_url_placeholder')"></el-input>
|
<el-input v-model="form.url" :placeholder="$t('ldap.input_url_placeholder')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('ldap.dn')" prop="dn">
|
<el-form-item :label="$t('ldap.dn')" prop="dn">
|
||||||
<el-input v-model="form.dn" :placeholder="$t('ldap.input_dn')"></el-input>
|
<el-input v-model="form.dn" :placeholder="$t('ldap.input_dn')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('ldap.password')" prop="password">
|
<el-form-item :label="$t('ldap.password')" prop="password">
|
||||||
<el-input v-model="form.password" :placeholder="$t('ldap.input_password')" show-password
|
<el-input v-model="form.password" :placeholder="$t('ldap.input_password')" show-password
|
||||||
auto-complete="new-password"></el-input>
|
auto-complete="new-password"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('ldap.ou')" prop="ou">
|
<el-form-item :label="$t('ldap.ou')" prop="ou">
|
||||||
<el-input v-model="form.ou" :placeholder="$t('ldap.input_ou_placeholder')"></el-input>
|
<el-input v-model="form.ou" :placeholder="$t('ldap.input_ou_placeholder')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('ldap.filter')" prop="filter">
|
<el-form-item :label="$t('ldap.filter')" prop="filter">
|
||||||
<el-input v-model="form.filter" :placeholder="$t('ldap.input_filter_placeholder')"></el-input>
|
<el-input v-model="form.filter" :placeholder="$t('ldap.input_filter_placeholder')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('ldap.mapping')" prop="mapping">
|
<el-form-item :label="$t('ldap.mapping')" prop="mapping">
|
||||||
<el-input v-model="form.mapping" :placeholder="$t('ldap.input_mapping_placeholder')"></el-input>
|
<el-input v-model="form.mapping" :placeholder="$t('ldap.input_mapping_placeholder')"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('ldap.open')" prop="open">
|
<el-form-item :label="$t('ldap.open')" prop="open">
|
||||||
<el-checkbox v-model="form.open"></el-checkbox>
|
<el-checkbox v-model="form.open"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-button type="primary" size="small" :disabled="!show" @click="testConnection">{{$t('ldap.test_connect')}}
|
<el-button type="primary" size="small" :disabled="!show" @click="testConnection">{{$t('ldap.test_connect')}}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" size="small" :disabled="!showLogin || !show" @click="testLogin">{{$t('ldap.test_login')}}
|
<el-button type="primary" size="small" :disabled="!showLogin || !show" @click="testLogin">
|
||||||
|
{{$t('ldap.test_login')}}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="showEdit" size="small" @click="edit">{{$t('ldap.edit')}}</el-button>
|
<el-button v-if="showEdit" size="small" @click="edit">{{$t('ldap.edit')}}</el-button>
|
||||||
<el-button type="success" v-if="showSave" size="small" @click="save('form')">{{$t('commons.save')}}</el-button>
|
<el-button type="success" v-if="showSave" size="small" @click="save('form')">{{$t('commons.save')}}</el-button>
|
||||||
|
@ -98,7 +99,7 @@
|
||||||
init() {
|
init() {
|
||||||
this.result = this.$get("/system/ldap/info", response => {
|
this.result = this.$get("/system/ldap/info", response => {
|
||||||
this.form = response.data;
|
this.form = response.data;
|
||||||
this.form.open = this.form.open === 'true' ? true : false;
|
this.form.open = this.form.open === 'true';
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.form.clearValidate();
|
this.$refs.form.clearValidate();
|
||||||
})
|
})
|
||||||
|
@ -121,7 +122,7 @@
|
||||||
if (!this.checkParam()) {
|
if (!this.checkParam()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.result = this.$post("/ldap/test/connect", this.form, response => {
|
this.result = this.$post("/ldap/test/connect", this.form, () => {
|
||||||
this.$success(this.$t('commons.connection_successful'));
|
this.$success(this.$t('commons.connection_successful'));
|
||||||
this.showLogin = true;
|
this.showLogin = true;
|
||||||
}, () => {
|
}, () => {
|
||||||
|
@ -179,11 +180,11 @@
|
||||||
{paramKey: "ldap.filter", paramValue: this.form.filter, type: "text", sort: 5},
|
{paramKey: "ldap.filter", paramValue: this.form.filter, type: "text", sort: 5},
|
||||||
{paramKey: "ldap.mapping", paramValue: this.form.mapping, type: "text", sort: 6},
|
{paramKey: "ldap.mapping", paramValue: this.form.mapping, type: "text", sort: 6},
|
||||||
{paramKey: "ldap.open", paramValue: this.form.open, type: "text", sort: 7}
|
{paramKey: "ldap.open", paramValue: this.form.open, type: "text", sort: 7}
|
||||||
]
|
];
|
||||||
|
|
||||||
this.$refs[form].validate(valid => {
|
this.$refs[form].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.result = this.$post("/system/save/ldap", param, response => {
|
this.result = this.$post("/system/save/ldap", param, () => {
|
||||||
this.show = true;
|
this.show = true;
|
||||||
this.showEdit = true;
|
this.showEdit = true;
|
||||||
this.showSave = false;
|
this.showSave = false;
|
||||||
|
@ -200,7 +201,7 @@
|
||||||
login(form) {
|
login(form) {
|
||||||
this.$refs[form].validate(valid => {
|
this.$refs[form].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.result = this.$post("/ldap/test/login", this.loginForm, response => {
|
this.result = this.$post("/ldap/test/login", this.loginForm, () => {
|
||||||
this.$success(this.$t('ldap.login_success'));
|
this.$success(this.$t('ldap.login_success'));
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -100,7 +100,7 @@
|
||||||
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
|
||||||
:total="total"/>
|
:total="total"/>
|
||||||
|
|
||||||
<test-report-template-list @openReport="openReport" ref="testReporTtemplateList"/>
|
<test-report-template-list @openReport="openReport" ref="testReportTemplateList"/>
|
||||||
<test-case-report-view @refresh="initTableData" ref="testCaseReportView"/>
|
<test-case-report-view @refresh="initTableData" ref="testCaseReportView"/>
|
||||||
<ms-delete-confirm :title="$t('test_track.plan.plan_delete')" @delete="_handleDelete" ref="deleteConfirm"/>
|
<ms-delete-confirm :title="$t('test_track.plan.plan_delete')" @delete="_handleDelete" ref="deleteConfirm"/>
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
},
|
},
|
||||||
openTestReportTemplate(data) {
|
openTestReportTemplate(data) {
|
||||||
this.$refs.testReporTtemplateList.open(data.id);
|
this.$refs.testReportTemplateList.open(data.id);
|
||||||
},
|
},
|
||||||
openReport(planId, reportId) {
|
openReport(planId, reportId) {
|
||||||
if (reportId) {
|
if (reportId) {
|
||||||
|
|
|
@ -161,7 +161,7 @@
|
||||||
:is-read-only="isReadOnly"
|
:is-read-only="isReadOnly"
|
||||||
@refreshTable="search"/>
|
@refreshTable="search"/>
|
||||||
|
|
||||||
<test-report-template-list @openReport="openReport" ref="testReporTtemplateList"/>
|
<test-report-template-list @openReport="openReport" ref="testReportTemplateList"/>
|
||||||
<test-case-report-view @refresh="initTableData" ref="testCaseReportView"/>
|
<test-case-report-view @refresh="initTableData" ref="testCaseReportView"/>
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
|
@ -391,7 +391,7 @@
|
||||||
this.initTableData();
|
this.initTableData();
|
||||||
},
|
},
|
||||||
openTestReport() {
|
openTestReport() {
|
||||||
this.$refs.testReporTtemplateList.open(this.planId);
|
this.$refs.testReportTemplateList.open(this.planId);
|
||||||
},
|
},
|
||||||
statusChange(param) {
|
statusChange(param) {
|
||||||
this.$post('/test/plan/case/edit', param, () => {
|
this.$post('/test/plan/case/edit', param, () => {
|
||||||
|
|
Loading…
Reference in New Issue