mirror of
https://github.com/sct/overseerr.git
synced 2025-09-17 17:24:35 +02:00
feat(frontend): modal component and basic request hookup (#91)
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import useSwr from 'swr';
|
||||
import { useRef } from 'react';
|
||||
import { hasPermission } from '../../server/lib/permissions';
|
||||
|
||||
export interface User {
|
||||
id: number;
|
||||
email: string;
|
||||
@@ -7,11 +9,23 @@ export interface User {
|
||||
permissions: number;
|
||||
}
|
||||
|
||||
export enum Permission {
|
||||
NONE = 0,
|
||||
ADMIN = 2,
|
||||
MANAGE_SETTINGS = 4,
|
||||
MANAGE_USERS = 8,
|
||||
MANAGE_REQUESTS = 16,
|
||||
REQUEST = 32,
|
||||
VOTE = 64,
|
||||
AUTO_APPROVE = 128,
|
||||
}
|
||||
|
||||
interface UserHookResponse {
|
||||
user?: User;
|
||||
loading: boolean;
|
||||
error: string;
|
||||
revalidate: () => Promise<boolean>;
|
||||
hasPermission: (permission: Permission | Permission[]) => boolean;
|
||||
}
|
||||
|
||||
export const useUser = ({
|
||||
@@ -29,10 +43,15 @@ export const useUser = ({
|
||||
}
|
||||
);
|
||||
|
||||
const checkPermission = (permission: Permission | Permission[]): boolean => {
|
||||
return hasPermission(permission, data?.permissions ?? 0);
|
||||
};
|
||||
|
||||
return {
|
||||
user: data,
|
||||
loading: !data && !error,
|
||||
error,
|
||||
revalidate,
|
||||
hasPermission: checkPermission,
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user