From 0605ceb26305fb3830ec4bb9b90aba4e19c2f3aa Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Thu, 26 Oct 2023 16:48:14 +0600 Subject: [PATCH] let admins star lab nodes --- src/utils/node.ts | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) 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;