package post import ( "context" "time" "bsm/full/module/base/cms/internal/models" pb "bsm/full/module/base/cms/pb" "git.apinb.com/bsm-sdk/core/errcode" "git.apinb.com/bsm-sdk/core/service" ) // 删除文章 func Delete(ctx context.Context, in *pb.IdentRequest) (reply *pb.StatusReply, err error) { // parse authorization meta. auth, err := service.ParseMetaCtx(ctx, nil) if err != nil { return nil, err } // valildate request id,identity. if in.Id == 0 && in.Identity == "" { return nil, errcode.ErrInvalidArgument } if in.GetIdentity() == "" { return nil, errcode.ErrInvalidArgument } // 校验归属:仅文章作者/所有者可删除 post, err := models.GetPostForAuth(in.Identity) if err != nil { return nil, err } if post.AuthorIdentity != auth.Identity && post.OwnerIdentity != auth.Identity { return nil, errcode.ErrPermissionDenied } err = models.DeletePost(in.Identity, auth.Identity) if err != nil { return nil, errcode.ErrDB } return &pb.StatusReply{ Code: 0, Message: "OK", Timeseq: time.Now().Unix(), }, nil }