diff --git a/frontend/src/pages/edits/Edit.tsx b/frontend/src/pages/edits/Edit.tsx index 007a651e8..d42514ff2 100644 --- a/frontend/src/pages/edits/Edit.tsx +++ b/frontend/src/pages/edits/Edit.tsx @@ -81,7 +81,7 @@ const EditComponent: FC = () => { const buttons = (isAdmin(auth.user) || auth.user?.id === edit.user?.id) && edit.status === VoteStatusEnum.PENDING && (
- {auth.user?.id === edit.user?.id && + {(auth.user?.id === edit.user?.id || isAdmin(auth.user)) && edit.operation !== OperationEnum.DESTROY && !edit.updated && ( diff --git a/frontend/src/pages/edits/EditUpdate.tsx b/frontend/src/pages/edits/EditUpdate.tsx index 9b4f4c780..2fca43de5 100644 --- a/frontend/src/pages/edits/EditUpdate.tsx +++ b/frontend/src/pages/edits/EditUpdate.tsx @@ -8,6 +8,7 @@ import { SceneEditUpdate } from "src/pages/scenes/SceneEditUpdate"; import { PerformerEditUpdate } from "src/pages/performers/PerformerEditUpdate"; import { TagEditUpdate } from "src/pages/tags/TagEditUpdate"; import { StudioEditUpdate } from "src/pages/studios/StudioEditUpdate"; +import { isAdmin } from "src/utils"; const EditUpdateComponent: FC = () => { const auth = useContext(AuthContext); @@ -18,7 +19,7 @@ const EditUpdateComponent: FC = () => { const edit = data?.findEdit; if (!edit) return ; - if (edit.user?.id != auth.user?.id) + if (edit.user?.id != auth.user?.id && !isAdmin(auth.user)) return ; if (edit.updated) return ; diff --git a/pkg/api/resolver_mutation_edit.go b/pkg/api/resolver_mutation_edit.go index 3acbc9c8a..c4e3d4e27 100644 --- a/pkg/api/resolver_mutation_edit.go +++ b/pkg/api/resolver_mutation_edit.go @@ -74,7 +74,7 @@ func (r *mutationResolver) SceneEditUpdate(ctx context.Context, id uuid.UUID, in return nil, err } - if existingEdit.UserID.UUID != currentUser.ID { + if validateUserOrAdmin(ctx, existingEdit.UserID.UUID) != nil { return nil, ErrUnauthorizedUpdate } @@ -151,7 +151,7 @@ func (r *mutationResolver) StudioEditUpdate(ctx context.Context, id uuid.UUID, i return nil, err } - if existingEdit.UserID.UUID != currentUser.ID { + if validateUserOrAdmin(ctx, existingEdit.UserID.UUID) != nil { return nil, ErrUnauthorizedUpdate } @@ -228,7 +228,7 @@ func (r *mutationResolver) TagEditUpdate(ctx context.Context, id uuid.UUID, inpu return nil, err } - if existingEdit.UserID.UUID != currentUser.ID { + if validateUserOrAdmin(ctx, existingEdit.UserID.UUID) != nil { return nil, ErrUnauthorizedUpdate } @@ -311,7 +311,7 @@ func (r *mutationResolver) PerformerEditUpdate(ctx context.Context, id uuid.UUID return nil, err } - if existingEdit.UserID.UUID != currentUser.ID { + if validateUserOrAdmin(ctx, existingEdit.UserID.UUID) != nil { return nil, ErrUnauthorizedUpdate }