Skip to content

Commit 6a938a9

Browse files
authored
fix: create subject tag exception when user id not found (#761)
* fix: create subject tag exception when user id not found in security context. * docs: update CHANGELOG.MD
1 parent 1ac529e commit 6a938a9

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

CHANGELOG.MD

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- 修复新条目收藏时没有一起新建剧集收藏的问题
1010
- 创建标签检测唯一性时关联用户ID
1111
- 高亮自定义的标签 #755
12+
- 修复创建条目标签时的异常403
1213

1314
# 0.20.8
1415

console/src/modules/content/subject/SubjectDetails.vue

+3
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,12 @@ import { scoreColors, scoreTexts } from '@/modules/common/constants';
5353
5454
import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css';
5555
import ContextMenu from '@imengyu/vue3-context-menu';
56+
import { useUserStore } from '@/stores/user';
5657
5758
const route = useRoute();
5859
const settingStore = useSettingStore();
5960
const subjectStore = useSubjectStore();
61+
const userStore = useUserStore();
6062
const { t } = useI18n();
6163
6264
const refreshSubjectRelactionDialog = ref(true);
@@ -557,6 +559,7 @@ const onNewTagNameChange = async () => {
557559
type: 'SUBJECT',
558560
masterId: subject.value.id,
559561
name: newTag.value.name,
562+
userId: userStore.currentUser?.entity?.id,
560563
},
561564
});
562565
ElMessage.success(

server/src/main/java/run/ikaros/server/core/tag/TagEndpoint.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.Optional;
99
import lombok.extern.slf4j.Slf4j;
1010
import org.springdoc.webflux.core.fn.SpringdocRouteBuilder;
11+
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
1112
import org.springframework.stereotype.Component;
1213
import org.springframework.util.Assert;
1314
import org.springframework.web.reactive.function.server.RouterFunction;
@@ -151,7 +152,9 @@ private Mono<ServerResponse> listAttachmentTagsByAttachmentId(ServerRequest requ
151152
private Mono<ServerResponse> create(ServerRequest request) {
152153
return request.bodyToMono(Tag.class)
153154
.flatMap(tag -> userService.getUserIdFromSecurityContext()
154-
.map(tag::setUserId))
155+
.map(tag::setUserId)
156+
.onErrorResume(AuthenticationCredentialsNotFoundException.class,
157+
e -> Mono.just(tag)))
155158
.flatMap(tagService::create)
156159
.flatMap(tag -> ServerResponse.ok().bodyValue(tag));
157160
}

0 commit comments

Comments
 (0)