Merge branch 'dev' of https://github.com/fit2cloudrd/metersphere-server into dev
This commit is contained in:
commit
dd2bbeda5b
|
@ -2,9 +2,10 @@ package io.metersphere.base.mapper;
|
|||
|
||||
import io.metersphere.base.domain.User;
|
||||
import io.metersphere.base.domain.UserExample;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UserMapper {
|
||||
long countByExample(UserExample example);
|
||||
|
||||
|
@ -29,4 +30,7 @@ public interface UserMapper {
|
|||
int updateByPrimaryKey(User record);
|
||||
|
||||
int updatePassword(User record);
|
||||
|
||||
String getDefaultlanguage(String paramKey);
|
||||
|
||||
}
|
|
@ -304,11 +304,15 @@
|
|||
where id = #{id,jdbcType=VARCHAR}
|
||||
</update>
|
||||
<!--修改密码-->
|
||||
<update id="updatePassword" parameterType="io.metersphere.base.domain.User">
|
||||
<update id="updatePassword" parameterType="io.metersphere.base.domain.User">
|
||||
update user
|
||||
set
|
||||
password=#{password,jdbcType=VARCHAR},
|
||||
update_time = #{updateTime,jdbcType=BIGINT}
|
||||
where id=#{id,jdbcType=VARCHAR}
|
||||
</update>
|
||||
<select id="getDefaultlanguage" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
select param_value from system_parameter
|
||||
where param_key=#{paramKey,jdbcType=VARCHAR}
|
||||
</select>
|
||||
</mapper>
|
|
@ -3,10 +3,14 @@ package io.metersphere.base.mapper.ext;
|
|||
import io.metersphere.base.domain.User;
|
||||
import io.metersphere.controller.request.UserRequest;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ExtUserMapper {
|
||||
|
||||
List<User> getUserList(@Param("userRequest") UserRequest request);
|
||||
|
||||
int updatePassword(User record);
|
||||
|
||||
String getDefaultlanguage(String paramKey);
|
||||
}
|
||||
|
|
|
@ -41,5 +41,9 @@
|
|||
update_time = #{updateTime,jdbcType=BIGINT}
|
||||
where id=#{id,jdbcType=VARCHAR}
|
||||
</update>
|
||||
<select id="getDefaultlanguage" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
select param_value from system_parameter
|
||||
where param_key=#{paramKey,jdbcType=VARCHAR}
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -87,4 +87,10 @@ public class LoginController {
|
|||
return ResultHolder.success("");
|
||||
}
|
||||
|
||||
/*Get default language*/
|
||||
@PostMapping(value = "/language")
|
||||
public String getDefaultlanguage() {
|
||||
return userService.getDefaultlanguage();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
package io.metersphere.dto;
|
||||
|
||||
import io.metersphere.base.domain.Role;
|
||||
import io.metersphere.base.domain.User;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class UserOperateDTO extends User {
|
||||
|
||||
private List<Role> roleList;
|
||||
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
package io.metersphere.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class UserRoleDTO {
|
||||
|
||||
private String id;
|
||||
private String roleId;
|
||||
private String type;
|
||||
private String name;
|
||||
private String desc;
|
||||
private String parentId;
|
||||
private Boolean switchable = true;
|
||||
|
||||
}
|
|
@ -223,7 +223,7 @@ public class TestResourcePoolService {
|
|||
List<TestResourcePoolDTO> testResourcePools = listResourcePools(request);
|
||||
// 重新校验 pool
|
||||
for (TestResourcePoolDTO pool : testResourcePools) {
|
||||
// 手动设置成无效的, 排除
|
||||
// 手动设置成无效的, 排除
|
||||
if (INVALID.name().equals(pool.getStatus())) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -344,4 +344,9 @@ public class UserService {
|
|||
userRole.setUpdateTime(System.currentTimeMillis());
|
||||
userRoleMapper.insertSelective(userRole);
|
||||
}
|
||||
|
||||
public String getDefaultlanguage() {
|
||||
final String key = "registry.defaultlanguage";
|
||||
return extUserMapper.getDefaultlanguage(key);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,7 +158,7 @@ export class Request extends BaseConfig {
|
|||
|
||||
initOptions(options) {
|
||||
options = options || {};
|
||||
options.method = "GET";
|
||||
options.method = options.method || "GET";
|
||||
options.body = new Body(options.body);
|
||||
options.assertions = new Assertions(options.assertions);
|
||||
options.extract = new Extract(options.extract);
|
||||
|
@ -474,10 +474,10 @@ class JMXGenerator {
|
|||
if (request.body.isKV()) {
|
||||
body = request.body.kvs.filter(this.filter);
|
||||
} else {
|
||||
httpSamplerProxy.boolProp('HTTPSampler.postBodyRaw', true);
|
||||
body.push({name: '', value: request.body.raw});
|
||||
}
|
||||
|
||||
httpSamplerProxy.boolProp('HTTPSampler.postBodyRaw', true);
|
||||
httpSamplerProxy.add(new HTTPSamplerArguments(body));
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
text-color="#fff">
|
||||
<el-submenu index="1" popper-class="submenu"
|
||||
v-permission="['org_admin', 'test_manager', 'test_user', 'test_viewer']">
|
||||
<template v-slot:title>【{{$t('commons.organization')}}】{{currentOrganizationName}}</template>
|
||||
<template v-slot:title>{{$t('commons.organization')}}: {{currentOrganizationName}}</template>
|
||||
<label v-for="(item,index) in organizationList" :key="index">
|
||||
<el-menu-item @click="changeOrg(item)">{{item.name}}
|
||||
<i class="el-icon-check"
|
||||
|
@ -14,7 +14,7 @@
|
|||
</label>
|
||||
</el-submenu>
|
||||
<el-submenu index="2" popper-class="submenu" v-permission="['test_manager', 'test_user', 'test_viewer']">
|
||||
<template v-slot:title>【{{$t('commons.workspace')}}】{{currentWorkspaceName}}</template>
|
||||
<template v-slot:title>{{$t('commons.workspace')}}: {{currentWorkspaceName}}</template>
|
||||
<label v-for="(item,index) in workspaceList" :key="index">
|
||||
<el-menu-item @click="changeWs(item)">
|
||||
{{item.name}}
|
||||
|
@ -52,8 +52,8 @@
|
|||
currentUserInfo: {},
|
||||
currentUserId: getCurrentUser().id,
|
||||
workspaceIds: [],
|
||||
currentOrganizationName: this.$t('organization.select'),
|
||||
currentWorkspaceName: this.$t('workspace.select')
|
||||
currentOrganizationName: '',
|
||||
currentWorkspaceName: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
|
@ -10,21 +10,15 @@
|
|||
<font-awesome-icon class="icon global" :icon="['fas', 'globe']"/>
|
||||
<span>{{language}}</span>
|
||||
</template>
|
||||
<el-menu-item @click="changeLanguage('zh_CN')">
|
||||
简体中文<i class="el-icon-check" v-if="currentUserInfo.language==='zh_CN' || !currentUserInfo.language"/>
|
||||
</el-menu-item>
|
||||
<el-menu-item @click="changeLanguage('zh_TW')">
|
||||
繁體中文<i class="el-icon-check" v-if="currentUserInfo.language==='zh_TW'"/>
|
||||
</el-menu-item>
|
||||
<el-menu-item @click="changeLanguage('en_US')">
|
||||
English<i class="el-icon-check" v-if="currentUserInfo.language==='en_US'"/>
|
||||
<el-menu-item v-for="(value, key) in languageMap" :key="key" @click="changeLanguage(key)">
|
||||
{{value}} <i class="el-icon-check" v-if="language === value"/>
|
||||
</el-menu-item>
|
||||
</el-submenu>
|
||||
</el-menu>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {TokenKey, ZH_CN, ZH_TW, EN_US} from '../../../../common/js/constants';
|
||||
import {EN_US, TokenKey, ZH_CN, ZH_TW} from '../../../../common/js/constants';
|
||||
import {getCurrentUser} from "../../../../common/js/utils";
|
||||
|
||||
export default {
|
||||
|
@ -32,7 +26,12 @@
|
|||
data() {
|
||||
return {
|
||||
currentUserInfo: {},
|
||||
language: ''
|
||||
language: '',
|
||||
languageMap: {
|
||||
[ZH_CN]: '简体中文',
|
||||
[EN_US]: 'English',
|
||||
[ZH_TW]: '繁體中文',
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -41,23 +40,26 @@
|
|||
if (!lang) {
|
||||
lang = 'zh_CN';
|
||||
}
|
||||
this.$setLang(lang);
|
||||
switch (lang) {
|
||||
case ZH_CN:
|
||||
this.language = '简体中文';
|
||||
break;
|
||||
case ZH_TW:
|
||||
this.language = '繁體中文';
|
||||
break;
|
||||
case EN_US:
|
||||
this.language = 'English';
|
||||
break;
|
||||
default:
|
||||
this.language = '简体中文';
|
||||
break;
|
||||
}
|
||||
this.checkLanguage(lang)
|
||||
},
|
||||
methods: {
|
||||
checkLanguage(lang) {
|
||||
this.$setLang(lang);
|
||||
switch (lang) {
|
||||
case ZH_CN:
|
||||
this.language = this.languageMap[ZH_CN];
|
||||
break;
|
||||
case ZH_TW:
|
||||
this.language = this.languageMap[ZH_TW];
|
||||
break;
|
||||
case EN_US:
|
||||
this.language = this.languageMap[EN_US];
|
||||
break;
|
||||
default:
|
||||
this.language = this.languageMap[ZH_CN];
|
||||
break;
|
||||
}
|
||||
},
|
||||
currentUser: () => {
|
||||
return getCurrentUser();
|
||||
},
|
||||
|
@ -66,9 +68,9 @@
|
|||
id: this.currentUser().id,
|
||||
language: language
|
||||
};
|
||||
this.checkLanguage(language);
|
||||
this.result = this.$post("/user/update/current", user, response => {
|
||||
localStorage.setItem(TokenKey, JSON.stringify(response.data));
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,8 +40,8 @@ export default {
|
|||
'personal_setting': 'Personal Setting',
|
||||
'test_resource_pool': 'Resource Pool',
|
||||
'system_setting': 'Settings',
|
||||
'api': 'Api test',
|
||||
'performance': 'Performance test',
|
||||
'api': 'API',
|
||||
'performance': 'Performance',
|
||||
'functional': 'Functional test',
|
||||
'input_content': 'Please enter content',
|
||||
'create': 'Create',
|
||||
|
|
|
@ -107,10 +107,10 @@
|
|||
this.$post("signin", this.form, response => {
|
||||
saveLocalStorage(response);
|
||||
let language = response.data.language;
|
||||
if (!language) {
|
||||
language = 'zh_CN';
|
||||
}
|
||||
this.$setLang(language);
|
||||
this.$post("language",response=>{
|
||||
this.$setLang(language);
|
||||
})
|
||||
|
||||
window.location.href = "/"
|
||||
});
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue