mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 21:06:42 +07:00
17 lines
786 B
TypeScript
17 lines
786 B
TypeScript
import { USER_ROLES } from '~/redux/auth/constants';
|
|
import { INode } from '~/redux/types';
|
|
import { IUser } from '~/redux/auth/types';
|
|
import path from 'ramda/es/path';
|
|
import { NODE_TYPES } from '~/redux/node/constants';
|
|
|
|
export const canEditNode = (node: Partial<INode>, user: Partial<IUser>): boolean =>
|
|
path(['role'], user) === USER_ROLES.ADMIN ||
|
|
(path(['user', 'id'], node) && path(['user', 'id'], node) === path(['id'], user));
|
|
|
|
export const canLikeNode = (node: Partial<INode>, user: Partial<IUser>): boolean =>
|
|
path(['role'], user) && path(['role'], user) !== USER_ROLES.GUEST;
|
|
|
|
export const canStarNode = (node: Partial<INode>, user: Partial<IUser>): boolean =>
|
|
node.type === NODE_TYPES.IMAGE &&
|
|
path(['role'], user) &&
|
|
path(['role'], user) === USER_ROLES.ADMIN;
|