fix: 整合验证修复9个代码缺口 - 历史限制3条、证书公开端点、题库默认DRAFT状态、Admin硬编码
This commit is contained in:
@@ -18,6 +18,7 @@ import { map } from 'rxjs/operators';
|
|||||||
import { AssessmentService } from './assessment.service';
|
import { AssessmentService } from './assessment.service';
|
||||||
import { ExportService } from './services/export.service';
|
import { ExportService } from './services/export.service';
|
||||||
import { CombinedAuthGuard } from '../auth/combined-auth.guard';
|
import { CombinedAuthGuard } from '../auth/combined-auth.guard';
|
||||||
|
import { Public } from '../auth/public.decorator';
|
||||||
import { ApiTags, ApiOperation, ApiResponse } from '@nestjs/swagger';
|
import { ApiTags, ApiOperation, ApiResponse } from '@nestjs/swagger';
|
||||||
|
|
||||||
@ApiTags('Assessment')
|
@ApiTags('Assessment')
|
||||||
@@ -134,7 +135,7 @@ export class AssessmentController {
|
|||||||
|
|
||||||
@Get('certificate/verify/:certificateId')
|
@Get('certificate/verify/:certificateId')
|
||||||
@ApiOperation({ summary: 'Verify certificate by ID (public)' })
|
@ApiOperation({ summary: 'Verify certificate by ID (public)' })
|
||||||
@UseGuards()
|
@Public()
|
||||||
async verifyCertificate(
|
async verifyCertificate(
|
||||||
@Param('certificateId') certificateId: string,
|
@Param('certificateId') certificateId: string,
|
||||||
) {
|
) {
|
||||||
@@ -143,6 +144,7 @@ export class AssessmentController {
|
|||||||
|
|
||||||
@Get('certificate/public/:sessionId')
|
@Get('certificate/public/:sessionId')
|
||||||
@ApiOperation({ summary: 'Get public certificate info for verification' })
|
@ApiOperation({ summary: 'Get public certificate info for verification' })
|
||||||
|
@Public()
|
||||||
async getPublicCertificate(
|
async getPublicCertificate(
|
||||||
@Param('sessionId') sessionId: string,
|
@Param('sessionId') sessionId: string,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1578,7 +1578,7 @@ const initialState: Partial<EvaluationState> = {
|
|||||||
const sessions = await this.sessionRepository.find({
|
const sessions = await this.sessionRepository.find({
|
||||||
where: { userId, status: AssessmentStatus.COMPLETED },
|
where: { userId, status: AssessmentStatus.COMPLETED },
|
||||||
order: { createdAt: 'DESC' },
|
order: { createdAt: 'DESC' },
|
||||||
take: 100,
|
take: 3,
|
||||||
relations: ['template'],
|
relations: ['template'],
|
||||||
});
|
});
|
||||||
return sessions;
|
return sessions;
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ export class QuestionBank {
|
|||||||
@Column({
|
@Column({
|
||||||
type: 'simple-enum',
|
type: 'simple-enum',
|
||||||
enum: QuestionBankStatus,
|
enum: QuestionBankStatus,
|
||||||
|
default: QuestionBankStatus.DRAFT,
|
||||||
})
|
})
|
||||||
status: QuestionBankStatus;
|
status: QuestionBankStatus;
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export const AssessmentStatsView: React.FC = () => {
|
|||||||
const [groups, setGroups] = useState<KnowledgeGroup[]>([]);
|
const [groups, setGroups] = useState<KnowledgeGroup[]>([]);
|
||||||
const [showFilters, setShowFilters] = useState(false);
|
const [showFilters, setShowFilters] = useState(false);
|
||||||
|
|
||||||
const isAdmin = true; // Temporarily allow all users
|
const isAdmin = user?.role === 'SUPER_ADMIN';
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user