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()));
String msg;
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) {
msg = "The user does not exist: " + userId;
logger.warn(msg);
@ -136,7 +136,7 @@ public class ShiroDBRealm extends AuthorizingRealm {
UserDTO user = userService.getLoginUser(userId, Collections.singletonList(UserSource.LOCAL.name()));
String msg;
if (user == null) {
user = userService.getLoginUserByEmail(userId, Collections.singletonList(UserSource.LOCAL.name()));
user = userService.getUserDTOByEmail(userId, UserSource.LOCAL.name());
if (user == null) {
msg = "The user does not exist: " + userId;
logger.warn(msg);

View File

@ -199,23 +199,21 @@ public class UserService {
return getUserDTO(userId);
}
public UserDTO getUserDTOByEmail(String email) {
public UserDTO getUserDTOByEmail(String email, String... source) {
UserExample example = new UserExample();
example.createCriteria().andEmailEqualTo(email);
List<User> users = userMapper.selectByExample(example);
if (users == null || users.size() <= 0) {
return null;
}
return getUserDTO(users.get(0).getId());
}
UserExample.Criteria criteria = example.createCriteria();
criteria.andEmailEqualTo(email);
if (!CollectionUtils.isEmpty(Arrays.asList(source))) {
criteria.andSourceIn(Arrays.asList(source));
}
public UserDTO getLoginUserByEmail(String email, List<String> list) {
UserExample example = new UserExample();
example.createCriteria().andEmailEqualTo(email).andSourceIn(list);
List<User> users = userMapper.selectByExample(example);
if (users == null || users.size() <= 0) {
return null;
}
return getUserDTO(users.get(0).getId());
}

View File

@ -3,33 +3,34 @@
<el-card class="box-card" v-loading="result.loading">
<el-form :model="form" size="small" :rules="rules" :disabled="show" ref="form">
<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 :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 :label="$t('ldap.password')" prop="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 :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 :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 :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 :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>
<div>
<el-button type="primary" size="small" :disabled="!show" @click="testConnection">{{$t('ldap.test_connect')}}
</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 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>
@ -98,7 +99,7 @@
init() {
this.result = this.$get("/system/ldap/info", response => {
this.form = response.data;
this.form.open = this.form.open === 'true' ? true : false;
this.form.open = this.form.open === 'true';
this.$nextTick(() => {
this.$refs.form.clearValidate();
})
@ -121,7 +122,7 @@
if (!this.checkParam()) {
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.showLogin = true;
}, () => {
@ -179,11 +180,11 @@
{paramKey: "ldap.filter", paramValue: this.form.filter, type: "text", sort: 5},
{paramKey: "ldap.mapping", paramValue: this.form.mapping, type: "text", sort: 6},
{paramKey: "ldap.open", paramValue: this.form.open, type: "text", sort: 7}
]
];
this.$refs[form].validate(valid => {
if (valid) {
this.result = this.$post("/system/save/ldap", param, response => {
this.result = this.$post("/system/save/ldap", param, () => {
this.show = true;
this.showEdit = true;
this.showSave = false;
@ -200,7 +201,7 @@
login(form) {
this.$refs[form].validate(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'));
});
} else {

View File

@ -100,7 +100,7 @@
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize"
: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"/>
<ms-delete-confirm :title="$t('test_track.plan.plan_delete')" @delete="_handleDelete" ref="deleteConfirm"/>
@ -225,7 +225,7 @@
this.initTableData();
},
openTestReportTemplate(data) {
this.$refs.testReporTtemplateList.open(data.id);
this.$refs.testReportTemplateList.open(data.id);
},
openReport(planId, reportId) {
if (reportId) {

View File

@ -161,7 +161,7 @@
:is-read-only="isReadOnly"
@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"/>
</el-card>
@ -391,7 +391,7 @@
this.initTableData();
},
openTestReport() {
this.$refs.testReporTtemplateList.open(this.planId);
this.$refs.testReportTemplateList.open(this.planId);
},
statusChange(param) {
this.$post('/test/plan/case/edit', param, () => {