allow tag/untag of open stories.
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-11-01 02:19:17 +01:00
parent 6ad0b9d467
commit 570d0e2bd2
2 changed files with 7 additions and 2 deletions
+5
View File
@@ -125,6 +125,11 @@ func (s *AuthService) CheckPermission(ctx context.Context, op string, obj interf
case *models.Post:
authorized = token.Permitted("post." + op)
case *models.Story:
if op == "tag" && v.Open {
authorized = true
break
}
authorized = token.PermittedUser(v.Author, "member", "story."+op)
case *models.User:
authorized = token.Permitted("user." + op)
+2 -2
View File
@@ -232,7 +232,7 @@ func (s *StoryService) EditStory(ctx context.Context, story *models.Story, name
}
func (s *StoryService) AddStoryTag(ctx context.Context, story models.Story, tag models.Tag) (*models.Story, error) {
if err := s.authService.CheckPermission(ctx, "edit", &story); err != nil {
if err := s.authService.CheckPermission(ctx, "tag", &story); err != nil {
return nil, err
}
@@ -249,7 +249,7 @@ func (s *StoryService) AddStoryTag(ctx context.Context, story models.Story, tag
}
func (s *StoryService) RemoveStoryTag(ctx context.Context, story models.Story, tag models.Tag) (*models.Story, error) {
if err := s.authService.CheckPermission(ctx, "edit", &story); err != nil {
if err := s.authService.CheckPermission(ctx, "tag", &story); err != nil {
return nil, err
}