Skip to content

Commit 44ae93b

Browse files
committed
fix: 更新用户头像时报错问题
1 parent 2ad4df9 commit 44ae93b

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.github.majianzheng.jarboot.audit;
2+
3+
import io.github.majianzheng.jarboot.common.AuditArgsFormat;
4+
import io.github.majianzheng.jarboot.common.utils.JsonUtils;
5+
import io.github.majianzheng.jarboot.common.utils.StringUtils;
6+
7+
import java.util.ArrayList;
8+
import java.util.Collection;
9+
import java.util.List;
10+
11+
/**
12+
* 用户更新日志格式化
13+
* @author majianzheng
14+
*/
15+
public class UpdateUserFormat implements AuditArgsFormat {
16+
@Override
17+
public String format(Object[] args) {
18+
if (null != args && args.length > 0) {
19+
List<String> argList = new ArrayList<>();
20+
for (int i = 0; i < args.length-1; i++) {
21+
Object arg = args[i];
22+
Class<?> cls = arg.getClass();
23+
if (cls.isPrimitive() || cls.isArray() || arg instanceof String || arg instanceof Collection || cls.getName().startsWith("io.github.majianzheng.jarboot.")) {
24+
argList.add(JsonUtils.toJsonString(arg));
25+
}
26+
}
27+
String arg = String.join(",", argList);
28+
final int maxLength = 2000;
29+
if (arg.length() > maxLength) {
30+
arg = arg.substring(0, maxLength);
31+
}
32+
return arg;
33+
}
34+
return StringUtils.EMPTY;
35+
}
36+
}

jarboot-server/src/main/java/io/github/majianzheng/jarboot/controller/UserController.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.github.majianzheng.jarboot.controller;
22

33
import io.github.majianzheng.jarboot.api.constant.CommonConst;
4+
import io.github.majianzheng.jarboot.audit.UpdateUserFormat;
45
import io.github.majianzheng.jarboot.common.annotation.EnableAuditLog;
56
import io.github.majianzheng.jarboot.common.annotation.PrivilegeCheck;
67
import io.github.majianzheng.jarboot.common.pojo.PagedList;
@@ -51,7 +52,7 @@ public class UserController {
5152
*/
5253
@PostMapping
5354
@PrivilegeCheck(value = "USER_LIST")
54-
@EnableAuditLog("创建用户")
55+
@EnableAuditLog(value = "创建用户", argsFormat = UpdateUserFormat.class)
5556
public ResponseSimple createUser(String username, String fullName, String password, String roles, @RequestParam(required = false) String userDir, @RequestParam(required = false) String avatar) {
5657
userService.createUser(username, fullName, password, roles, userDir, avatar);
5758
return HttpResponseUtils.success();
@@ -67,7 +68,7 @@ public ResponseSimple createUser(String username, String fullName, String passwo
6768
* @return 执行结果
6869
*/
6970
@PostMapping("/update")
70-
@EnableAuditLog("修改用户")
71+
@EnableAuditLog(value = "修改用户", argsFormat = UpdateUserFormat.class)
7172
public ResponseSimple updateUser(String username, String fullName, String roles, @RequestParam(required = false) String userDir, @RequestParam(required = false) String avatar) {
7273
userService.updateUser(username, fullName, roles, userDir, avatar);
7374
return HttpResponseUtils.success();

jarboot-server/src/main/java/io/github/majianzheng/jarboot/entity/AuditLog.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.majianzheng.jarboot.entity;
22

3+
import javax.persistence.Column;
34
import javax.persistence.Entity;
45
import javax.persistence.Table;
56

@@ -45,6 +46,7 @@ public void setMethod(String method) {
4546
this.method = method;
4647
}
4748

49+
@Column(length = 4000)
4850
public String getArgument() {
4951
return argument;
5052
}

jarboot-ui2/src/components/modify-user-dialog.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ const submitForm = async () => {
162162
if (props.resetPassword) {
163163
await UserService.updateUserPassword(props.username, modifyUserForm.password, modifyUserForm.oldPassword);
164164
} else {
165-
await UserService.updateUser(props.username, state.form.fullName, null, null, state.form.avatar);
165+
await UserService.updateUser(props.username, state.form.fullName, state.form.roles.join(','), state.form.userDir, state.form.avatar);
166166
if (state.form.avatar) {
167167
userStore.avatar = state.form.avatar;
168168
}

0 commit comments

Comments
 (0)