| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | 
							- import { PermissionType } from '../types'
 
- import { useAppContext } from '@/context/app-context'
 
- import Toast from '../../base/toast'
 
- import { useTranslation } from 'react-i18next'
 
- import { useInvalidatePermissions, useMutationPermissions, usePermissions } from '@/service/use-plugins'
 
- const hasPermission = (permission: PermissionType | undefined, isAdmin: boolean) => {
 
-   if (!permission)
 
-     return false
 
-   if (permission === PermissionType.noOne)
 
-     return false
 
-   if (permission === PermissionType.everyone)
 
-     return true
 
-   return isAdmin
 
- }
 
- const usePermission = () => {
 
-   const { t } = useTranslation()
 
-   const { isCurrentWorkspaceManager, isCurrentWorkspaceOwner } = useAppContext()
 
-   const { data: permissions } = usePermissions()
 
-   const invalidatePermissions = useInvalidatePermissions()
 
-   const { mutate: updatePermission, isPending: isUpdatePending } = useMutationPermissions({
 
-     onSuccess: () => {
 
-       invalidatePermissions()
 
-       Toast.notify({
 
-         type: 'success',
 
-         message: t('common.api.actionSuccess'),
 
-       })
 
-     },
 
-   })
 
-   const isAdmin = isCurrentWorkspaceManager || isCurrentWorkspaceOwner
 
-   return {
 
-     canManagement: hasPermission(permissions?.install_permission, isAdmin),
 
-     canDebugger: hasPermission(permissions?.debug_permission, isAdmin),
 
-     canSetPermissions: isAdmin,
 
-     permissions,
 
-     setPermissions: updatePermission,
 
-     isUpdatePending,
 
-   }
 
- }
 
- export default usePermission
 
 
  |