fix(系统设置): 修复用户越权问题
This commit is contained in:
parent
c2e69ff9ec
commit
a7298117db
|
@ -96,11 +96,18 @@ public class UserController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/special/ws/member/list/all")
|
@PostMapping("/special/ws/member/list/all")
|
||||||
@RequiresPermissions(value = {PermissionConstants.SYSTEM_WORKSPACE_READ, PermissionConstants.WORKSPACE_USER_READ}, logical = Logical.OR)
|
@RequiresPermissions(value = {PermissionConstants.SYSTEM_WORKSPACE_READ}, logical = Logical.OR)
|
||||||
public List<User> getMemberListByAdmin(@RequestBody QueryMemberRequest request) {
|
public List<User> getMemberListByAdmin(@RequestBody QueryMemberRequest request) {
|
||||||
return baseUserService.getMemberList(request);
|
return baseUserService.getMemberList(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/special/currentWs/member/list/all")
|
||||||
|
@RequiresPermissions(value = {PermissionConstants.WORKSPACE_USER_READ}, logical = Logical.OR)
|
||||||
|
public List<User> getMemberListByAdminProject(@RequestBody QueryMemberRequest request) {
|
||||||
|
baseCheckPermissionService.checkWorkspacePermission(request.getWorkspaceId());
|
||||||
|
return baseUserService.getMemberList(request);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/special/ws/member/add")
|
@PostMapping("/special/ws/member/add")
|
||||||
@MsAuditLog(module = OperLogModule.WORKSPACE_MEMBER, type = OperLogConstants.CREATE, content = "#msClass.getLogDetails(#request.userIds,#request.workspaceId)", msClass = UserService.class)
|
@MsAuditLog(module = OperLogModule.WORKSPACE_MEMBER, type = OperLogConstants.CREATE, content = "#msClass.getLogDetails(#request.userIds,#request.workspaceId)", msClass = UserService.class)
|
||||||
public void addMemberByAdmin(@RequestBody AddMemberRequest request) {
|
public void addMemberByAdmin(@RequestBody AddMemberRequest request) {
|
||||||
|
|
|
@ -1,24 +1,29 @@
|
||||||
/* 前后端不分离的登录方式 */
|
/* 前后端不分离的登录方式 */
|
||||||
import {get, post, put, request} from 'metersphere-frontend/src/plugins/request'
|
import {
|
||||||
|
get,
|
||||||
|
post,
|
||||||
|
put,
|
||||||
|
request,
|
||||||
|
} from "metersphere-frontend/src/plugins/request";
|
||||||
|
|
||||||
export function login(data) {
|
export function login(data) {
|
||||||
return post('/signin', data)
|
return post("/signin", data);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function logout() {
|
export function logout() {
|
||||||
return get('/signout')
|
return get("/signout");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isLogin() {
|
export function isLogin() {
|
||||||
return get('/is-login')
|
return get("/is-login");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getCurrentUser() {
|
export function getCurrentUser() {
|
||||||
return get('/currentUser')
|
return get("/currentUser");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateInfo(id, data) {
|
export function updateInfo(id, data) {
|
||||||
return put('/samples/user/info/update/' + id, data)
|
return put("/samples/user/info/update/" + id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialDeleteUserById(id) {
|
export function specialDeleteUserById(id) {
|
||||||
|
@ -26,19 +31,19 @@ export function specialDeleteUserById(id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialCreateUser(user) {
|
export function specialCreateUser(user) {
|
||||||
return post('/user/special/add', user);
|
return post("/user/special/add", user);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialModifyUser(user) {
|
export function specialModifyUser(user) {
|
||||||
return post('/user/special/update', user);
|
return post("/user/special/update", user);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialModifyPassword(user) {
|
export function specialModifyPassword(user) {
|
||||||
return post('/user/special/password', user);
|
return post("/user/special/password", user);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialListUsers(data, page, size) {
|
export function specialListUsers(data, page, size) {
|
||||||
return post(`/user/special/list/${page}/${size}`, data)
|
return post(`/user/special/list/${page}/${size}`, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialGetUserGroup(userId) {
|
export function specialGetUserGroup(userId) {
|
||||||
|
@ -46,15 +51,19 @@ export function specialGetUserGroup(userId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialModifyUserDisable(user) {
|
export function specialModifyUserDisable(user) {
|
||||||
return post('/user/special/update_status', user);
|
return post("/user/special/update_status", user);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function specialBatchProcessUser(params) {
|
export function specialBatchProcessUser(params) {
|
||||||
return post('/user/special/batch-process-user', params);
|
return post("/user/special/batch-process-user", params);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getWorkspaceMemberSpecial(param) {
|
export function getWorkspaceMemberSpecial(param) {
|
||||||
return post('/user/special/ws/member/list/all', param);
|
return post("/user/special/ws/member/list/all", param);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCurrentWorkspaceMemberSpecial(param) {
|
||||||
|
return post("/user/special/currentWs/member/list/all", param);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getWorkspaceMemberListSpecial(goPage, pageSize, param) {
|
export function getWorkspaceMemberListSpecial(goPage, pageSize, param) {
|
||||||
|
@ -62,7 +71,7 @@ export function getWorkspaceMemberListSpecial(goPage, pageSize, param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addWorkspaceMemberSpecial(param) {
|
export function addWorkspaceMemberSpecial(param) {
|
||||||
return post('/user/special/ws/member/add', param);
|
return post("/user/special/ws/member/add", param);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function delWorkspaceMemberSpecialById(workspaceId, userId) {
|
export function delWorkspaceMemberSpecialById(workspaceId, userId) {
|
||||||
|
@ -82,15 +91,18 @@ export function getWorkspaceMemberPages(goPage, pageSize, param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addWorkspaceMember(member) {
|
export function addWorkspaceMember(member) {
|
||||||
return post('user/ws/member/add', member);
|
return post("user/ws/member/add", member);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getProjectMemberPages(goPage, pageSize, workspaceId, param) {
|
export function getProjectMemberPages(goPage, pageSize, workspaceId, param) {
|
||||||
return post(`/user/ws/project/member/list/${workspaceId}/${goPage}/${pageSize}`, param);
|
return post(
|
||||||
|
`/user/ws/project/member/list/${workspaceId}/${goPage}/${pageSize}`,
|
||||||
|
param
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getCurrentProjectUserList() {
|
export function getCurrentProjectUserList() {
|
||||||
return get('/user/project/member/list');
|
return get("/user/project/member/list");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getCurrentProjectUserPages(goPage, pageSize, param) {
|
export function getCurrentProjectUserPages(goPage, pageSize, param) {
|
||||||
|
@ -98,7 +110,7 @@ export function getCurrentProjectUserPages(goPage, pageSize, param) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateCurrentUser(user) {
|
export function updateCurrentUser(user) {
|
||||||
return post('/user/update/current', user);
|
return post("/user/update/current", user);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function delProjectMember(projectId, memberId) {
|
export function delProjectMember(projectId, memberId) {
|
||||||
|
@ -106,29 +118,37 @@ export function delProjectMember(projectId, memberId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addProjectMember(member) {
|
export function addProjectMember(member) {
|
||||||
return post('user/project/member/add', member);
|
return post("user/project/member/add", member);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function exportUserExample() {
|
export function exportUserExample() {
|
||||||
fileDownload('/user/export/template');
|
fileDownload("/user/export/template");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fileDownload(url) {
|
export function fileDownload(url) {
|
||||||
let config = {
|
let config = {
|
||||||
method: "get",
|
method: "get",
|
||||||
url,
|
url,
|
||||||
responseType: 'blob'
|
responseType: "blob",
|
||||||
}
|
};
|
||||||
let promise = request(config);
|
let promise = request(config);
|
||||||
promise.then(response => {
|
promise
|
||||||
let fileName = window.decodeURI(response.headers['content-disposition'].split('=')[1]);
|
.then((response) => {
|
||||||
|
let fileName = window.decodeURI(
|
||||||
|
response.headers["content-disposition"].split("=")[1]
|
||||||
|
);
|
||||||
let link = document.createElement("a");
|
let link = document.createElement("a");
|
||||||
link.href = window.URL.createObjectURL(new Blob([response.data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"}));
|
link.href = window.URL.createObjectURL(
|
||||||
|
new Blob([response.data], {
|
||||||
|
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
|
||||||
|
})
|
||||||
|
);
|
||||||
link.download = fileName;
|
link.download = fileName;
|
||||||
link.click();
|
link.click();
|
||||||
}).catch(() => {
|
})
|
||||||
//
|
.catch(() => {
|
||||||
});
|
//
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function userImport(file, files, param) {
|
export function userImport(file, files, param) {
|
||||||
|
@ -137,18 +157,21 @@ export function userImport(file, files, param) {
|
||||||
formData.append("file", file);
|
formData.append("file", file);
|
||||||
}
|
}
|
||||||
if (files) {
|
if (files) {
|
||||||
files.forEach(f => {
|
files.forEach((f) => {
|
||||||
formData.append("files", f);
|
formData.append("files", f);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
formData.append('request', new Blob([JSON.stringify(param)], {type: 'application/json'}));
|
formData.append(
|
||||||
|
"request",
|
||||||
|
new Blob([JSON.stringify(param)], { type: "application/json" })
|
||||||
|
);
|
||||||
let config = {
|
let config = {
|
||||||
method: 'POST',
|
method: "POST",
|
||||||
url: '/user/import',
|
url: "/user/import",
|
||||||
data: formData,
|
data: formData,
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': undefined
|
"Content-Type": undefined,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
return request(config);
|
return request(config);
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,7 +204,7 @@ import {isSuperUser} from "metersphere-frontend/src/api/user.js";
|
||||||
import {
|
import {
|
||||||
addProjectMember,
|
addProjectMember,
|
||||||
delProjectMember,
|
delProjectMember,
|
||||||
getWorkspaceMemberSpecial,
|
getCurrentWorkspaceMemberSpecial,
|
||||||
getProjectMemberPages,
|
getProjectMemberPages,
|
||||||
updateCurrentUser
|
updateCurrentUser
|
||||||
} from "../../../api/user";
|
} from "../../../api/user";
|
||||||
|
@ -337,7 +337,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getMaintainerOptions() {
|
getMaintainerOptions() {
|
||||||
getWorkspaceMemberSpecial({name: '', workspaceId: getCurrentWorkspaceId()}).then(res => {
|
getCurrentWorkspaceMemberSpecial({name: '', workspaceId: getCurrentWorkspaceId()}).then(res => {
|
||||||
this.userFilters = res.data.map(u => {
|
this.userFilters = res.data.map(u => {
|
||||||
return {text: u.name, value: u.id};
|
return {text: u.name, value: u.id};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue