feat: 添加鉴权相关功能。
This commit is contained in:
@ -11,6 +11,8 @@ import { ParseBodyMiddleware } from './commons/middleware/parse-body.middleware'
|
||||
import { BullModule } from '@nestjs/bull';
|
||||
import { PubSubModule } from './commons/pub-sub/pub-sub.module';
|
||||
import { ArticlesModule } from './articles/articles.module';
|
||||
import { EtcdModule } from 'nestjs-etcd';
|
||||
import { CommonsModule } from './commons/commons.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@ -73,6 +75,14 @@ import { ArticlesModule } from './articles/articles.module';
|
||||
}),
|
||||
inject: [ConfigService],
|
||||
}),
|
||||
EtcdModule.forRootAsync({
|
||||
imports: [ConfigModule],
|
||||
useFactory: (configService: ConfigService) => ({
|
||||
hosts: configService.get<string>('db.etcd.hosts', 'localhost:2379'),
|
||||
}),
|
||||
inject: [ConfigService],
|
||||
}),
|
||||
CommonsModule,
|
||||
ArticlesModule,
|
||||
],
|
||||
controllers: [AppController],
|
||||
|
@ -13,11 +13,13 @@ import { CreateArticleInput } from './dto/create-article.input';
|
||||
import { UpdateArticleInput } from './dto/update-article.input';
|
||||
import * as marked from 'marked';
|
||||
import { getLanguage, highlight } from 'highlight.js';
|
||||
import { AccountRole, Roles } from '@nestjs-lib/auth';
|
||||
|
||||
@Resolver(() => Article)
|
||||
export class ArticlesResolver {
|
||||
constructor(private readonly articlesService: ArticlesService) {}
|
||||
|
||||
@Roles(AccountRole.admin, AccountRole.super)
|
||||
@Mutation(() => Article)
|
||||
createArticle(
|
||||
@Args('createArticleInput') createArticleInput: CreateArticleInput,
|
||||
@ -35,6 +37,7 @@ export class ArticlesResolver {
|
||||
return this.articlesService.findOne(id);
|
||||
}
|
||||
|
||||
@Roles(AccountRole.admin, AccountRole.super)
|
||||
@Mutation(() => Article)
|
||||
async updateArticle(
|
||||
@Args('updateArticleInput') updateArticleInput: UpdateArticleInput,
|
||||
@ -43,6 +46,7 @@ export class ArticlesResolver {
|
||||
return this.articlesService.update(article, updateArticleInput);
|
||||
}
|
||||
|
||||
@Roles(AccountRole.admin, AccountRole.super)
|
||||
@Mutation(() => Int)
|
||||
removeArticle(@Args('id', { type: () => String }) id: string) {
|
||||
return this.articlesService.remove(id);
|
||||
|
@ -1,10 +1,11 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { PasswordConverter } from './services/password-converter';
|
||||
import { PubSubModule } from './pub-sub/pub-sub.module';
|
||||
import { AuthModule } from '@nestjs-lib/auth';
|
||||
|
||||
@Module({
|
||||
imports: [PubSubModule, AuthModule],
|
||||
providers: [PasswordConverter],
|
||||
exports: [PasswordConverter],
|
||||
imports: [PubSubModule],
|
||||
})
|
||||
export class CommonsModule {}
|
||||
|
Reference in New Issue
Block a user