This commit is contained in:
chenjianxing 2020-07-24 18:24:02 +08:00
commit 10d7441487
5 changed files with 29 additions and 30 deletions

View File

@ -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);

View File

@ -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());
} }

View File

@ -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 {

View File

@ -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) {

View File

@ -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, () => {