From 8b5d7806dfdc899d7ab04e99dc7fedd451582d61 Mon Sep 17 00:00:00 2001 From: truthhun <1272881215@qq.com> Date: Fri, 10 May 2024 15:39:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E7=AB=A0=E6=9D=83=E9=99=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- biz/article.go | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/biz/article.go b/biz/article.go index 5abd692..a378577 100644 --- a/biz/article.go +++ b/biz/article.go @@ -217,16 +217,18 @@ func (s *ArticleAPIService) GetArticle(ctx context.Context, req *pb.GetArticleRe return nil, status.Errorf(codes.NotFound, "文章不存在") } - userClaims, err := s.checkPermission(ctx) + userClaims, _ := s.checkPermission(ctx) s.logger.Debug("GetArticle", zap.Any("userClaims", userClaims), zap.Any("article", article)) - if userClaims == nil { - return nil, err - } - // 管理员或者是作者,可以查看未通过的文章 - if article.Status != model.ArticleStatusPass && !(userClaims.HaveAccess || userClaims.UserId == article.UserId) { - err = errors.New("文章不存在") - return nil, err + if article.Status != model.ArticleStatusPass { + if userClaims == nil { + return nil, errors.New("文章不存在或没有权限查看") + } + + if !(userClaims.HaveAccess || userClaims.UserId == article.UserId) { + err = errors.New("文章不存在或没有权限查看") + return nil, err + } } s.dbModel.UpdateArticleViewCount(article.Id, article.ViewCount) @@ -253,12 +255,10 @@ func (s *ArticleAPIService) ListArticle(ctx context.Context, req *pb.ListArticle IsRecommend: req.IsRecommend, } - userClaims, err := s.checkPermission(ctx) + userClaims, _ := s.checkPermission(ctx) if userClaims == nil { - return nil, err - } - - if userClaims.HaveAccess || (userClaims != nil && len(req.UserId) > 0 && userClaims.UserId == req.UserId[0]) { + opt.QueryLike["status"] = []interface{}{1} + } else if userClaims.HaveAccess || (len(req.UserId) > 0 && req.UserId[0] == userClaims.UserId) { // 管理员或者是作者,可以查询相关状态的文档 if req.Wd != "" { opt.QueryLike["title"] = []interface{}{req.Wd} @@ -268,8 +268,6 @@ func (s *ArticleAPIService) ListArticle(ctx context.Context, req *pb.ListArticle if len(req.Status) > 0 { opt.QueryIn["status"] = util.Slice2Interface(req.Status) } - } else { - opt.QueryLike["status"] = []interface{}{1} } if len(req.CategoryId) > 0 {