1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 04:46:40 +07:00

let admins star lab nodes

This commit is contained in:
Fedor Katurov 2023-10-26 16:48:14 +06:00
parent 29ed51b831
commit 0605ceb263

View file

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