diff --git a/src/utils/node.ts b/src/utils/node.ts index 084a5fe9..32b95193 100644 --- a/src/utils/node.ts +++ b/src/utils/node.ts @@ -4,16 +4,29 @@ import { ICommentGroup, INode } from '~/types'; import { IUser } from '~/types/auth'; import { path } from '~/utils/ramda'; -export const canEditNode = (node?: Partial, user?: Partial): boolean => - path(['role'], user) === Role.Admin || path(['user', 'id'], node) === path(['id'], user); +export const canEditNode = ( + node?: Partial, + user?: Partial, +): boolean => + path(['role'], user) === Role.Admin || + path(['user', 'id'], node) === path(['id'], user); -export const canEditComment = (comment?: Partial, user?: Partial): boolean => - path(['role'], user) === Role.Admin || path(['user', 'id'], comment) === path(['id'], user); +export const canEditComment = ( + comment?: Partial, + user?: Partial, +): boolean => + path(['role'], user) === Role.Admin || + path(['user', 'id'], comment) === path(['id'], user); -export const canLikeNode = (node?: Partial, user?: Partial): boolean => - path(['role'], user) !== Role.Guest; +export const canLikeNode = ( + node?: Partial, + user?: Partial, +): boolean => path(['role'], user) !== Role.Guest; -export const canStarNode = (node?: Partial, user?: Partial): boolean => - path(['type'], node) === NODE_TYPES.IMAGE && +export const canStarNode = ( + node?: Partial, + user?: Partial, +): boolean => + (path(['type'], node) === NODE_TYPES.IMAGE || !node?.is_public) && path(['is_promoted'], node) === true && path(['role'], user) === Role.Admin;