Skip to content

Commit

Permalink
optimize permission check
Browse files Browse the repository at this point in the history
  • Loading branch information
shurwit committed Jan 25, 2024
1 parent 95430df commit 96195be
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions core/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -455,12 +455,7 @@ func (s *servicesImpl) CreateDataContentItem(claims *tokenauth.Claims, item *mod
func (s *servicesImpl) UpdateDataContentItem(claims *tokenauth.Claims, item *model.DataContentItem) (*model.DataContentItem, error) {
var dataItem *model.DataContentItem

oldItem, err := s.app.storage.FindDataContentItem(&claims.AppID, claims.OrgID, item.Key)
if err != nil {
return nil, err
}

category, err := s.app.storage.FindCategory(&claims.AppID, claims.OrgID, oldItem.Category)
category, err := s.app.storage.FindCategory(&claims.AppID, claims.OrgID, item.Category)
if err != nil {
return nil, err
}
Expand All @@ -469,13 +464,20 @@ func (s *servicesImpl) UpdateDataContentItem(claims *tokenauth.Claims, item *mod
return nil, fmt.Errorf("unauthorized to update data content item: [%s]", strings.Join(category.Permissions, ", "))
}

category, err = s.app.storage.FindCategory(&claims.AppID, claims.OrgID, item.Category)
oldItem, err := s.app.storage.FindDataContentItem(&claims.AppID, claims.OrgID, item.Key)
if err != nil {
return nil, err
}

if !checkPermissions(category.Permissions, claims.Permissions) {
return nil, fmt.Errorf("unauthorized to update data content item: [%s]", strings.Join(category.Permissions, ", "))
if item.Category != oldItem.Category {
category, err = s.app.storage.FindCategory(&claims.AppID, claims.OrgID, oldItem.Category)
if err != nil {
return nil, err
}

if !checkPermissions(category.Permissions, claims.Permissions) {
return nil, fmt.Errorf("unauthorized to update data content item: [%s]", strings.Join(category.Permissions, ", "))
}
}

dataItem, err = s.app.storage.UpdateDataContentItem(&claims.AppID, claims.OrgID, item)
Expand Down

0 comments on commit 96195be

Please sign in to comment.