/** * Компонент для управления правами в админ-панели * @module PermissionsRoute */ import { Component, createSignal } from 'solid-js' import { ADMIN_UPDATE_PERMISSIONS_MUTATION } from '../graphql/mutations' import { query } from '../graphql' import Button from '../ui/Button' import styles from '../styles/Admin.module.css' /** * Интерфейс свойств компонента PermissionsRoute */ export interface PermissionsRouteProps { onError: (error: string) => void onSuccess: (message: string) => void } /** * Компонент для управления правами */ const PermissionsRoute: Component = (props) => { const [isUpdating, setIsUpdating] = createSignal(false) /** * Обновляет права для всех сообществ */ const handleUpdatePermissions = async () => { if (isUpdating()) return setIsUpdating(true) try { const response = await query<{ adminUpdatePermissions: { success: boolean; error?: string; message?: string } }>(`${location.origin}/graphql`, ADMIN_UPDATE_PERMISSIONS_MUTATION) if (response?.adminUpdatePermissions?.success) { props.onSuccess('Права для всех сообществ успешно обновлены') } else { const error = response?.adminUpdatePermissions?.error || 'Неизвестная ошибка' props.onError(`Ошибка обновления прав: ${error}`) } } catch (error) { props.onError(`Ошибка запроса: ${(error as Error).message}`) } finally { setIsUpdating(false) } } return (

Управление правами

Обновление прав для всех сообществ с новыми дефолтными настройками

Что делает обновление прав?

  • Обновляет права для всех существующих сообществ
  • Применяет новую иерархию ролей
  • Синхронизирует права с файлом default_role_permissions.json
  • Удаляет старые права и инициализирует новые
⚠️ Внимание: Эта операция затрагивает все сообщества в системе. Рекомендуется выполнять только при изменении системы прав.
) } export default PermissionsRoute