Перейти к содержанию

Пространства — Администрирование

Пространства — это вики-подобные статьи. Раздел описывает, как настраиваются их видимость, структура, системные ДП и навигация. Собственного раздела администрирования у пространств нет — все настройки задаются через смежные домены (пользовательские настройки, категории, рабочие места групп, избранное, группы).

Раздел «Пространства»: дерево пространств и список статей

Механизмы администрирования

Автоадминка — через смежные домены

Формы автоадминки из смежных доменов, через которые настраиваются пространства:

Alias формы Название Таблица БД Папка
custom-settings Пользовательские настройки dbo.SettingsCustom Системные настройки
workplaces Рабочие места группы dbo.UserGroupSettings Пользовательский интерфейс
favourites ¹ Избранное группы dbo.UserLinks Пользовательский интерфейс
groups Группы dbo.Groups Пользователи и группы

¹ Форма favouritesотдельная SPA-страница (/administration/favorites-groups), зарегистрированная в дереве автоадминки.

Кто может создавать пространства и разделы

Создание и редактирование пространств не требует глобальных прав администратора. Соответствующие методы админ-API помечены атрибутом AllowNonAdmin: общая проверка роли администратора для них не выполняется, права проверяются внутри сервиса по конкретному разделу или пространству. Если проверка не прошла, возвращается ошибка доступа.

Операция Метод API Кому доступна
Создать пространство POST /api/admin/spaces Глобальный администратор; член группы-администратора целевого раздела (CategoryGroupPermissions, действие CATEGORY_ADMIN); пользователь с правом «Администратор категории» (AdminCat) хотя бы на одной категории целевого раздела
Редактировать пространство (название, права групп) POST /api/admin/spaces/{spaceId} Глобальный администратор; администратор самого пространства — право AdminCat на категории-пространстве
Получить разделы, доступные для создания пространств GET /api/admin/spaces/available-categories Любой авторизованный; в ответ попадают только те разделы, где у пользователя есть одно из прав, перечисленных для создания
Создать раздел POST /api/admin/categories Глобальный администратор (признак «бог» или специальное право CHSC); член группы-администратора родительского раздела. Раздел верхнего уровня, без родителя, создаёт только глобальный администратор
Редактировать, удалить, скопировать раздел POST /api/admin/categories/{categoryId}, DELETE /api/admin/categories/{categoryId}, POST /api/admin/categories/{categoryId}/copy Только глобальный администратор

Где выполняется проверка:

Операция Проверка
Создание пространства SpacesAdminService.CreateSpaceCanCreateSpaceInCategory
Редактирование пространства BaseAdminController.CheckAdminOrSubcategoryAdminPermissions.CheckGodOrSubcatAdmin
Создание раздела CategoryAdminService.CreateCategoryCanCreateCategory

Право «Администратор категории» на подкатегориях раздела определяется по дереву категорий пользователя (Categories.GetSubcategoriesInUserTree с действием AdminCat), поэтому администратору достаточно прав хотя бы на одну категорию нужного раздела.

Что происходит при создании пространства: создаётся категория с типом «Пространство» и IsWikiSubcat = 1, к ней применяется настройка по типу категории (системные ДП, иконка, цвет), а группам из запроса выставляются права «Администратор категории» (AdminGroupIds) и «Просмотр» (ViewerGroupIds) с пересчётом прав на категорию. При редактировании списки групп синхронизируются: перечисленным группам право включается, остальным — выключается.

Ключевые настройки

Конфигурация пространств (SettingsCustom)

Где настраивается: автоадминка → форма custom-settings → запись Key = SpaceSettings Таблица БД: dbo.SettingsCustom

JSON-значение определяет: - IsActive — включены ли пространства (если false — скрыты независимо от навигационных настроек) - RootCatId — корневая категория дерева пространств - ExtParams — системные ДП пространства (контент, обложка, родитель и др.)

Как применяется: эти настройки используются для построения дерева пространств и отображения статей.

Создание статьи пространства: обложка, название и контент

Тип категории «Пространство» (Subcategories)

Где настраивается: автоадминка → форма subcategories Таблица БД: dbo.Subcategories

Поле Что контролирует
SubcatTypeID = «Пространство» Категория попадает в контур пространств
IsWikiSubcat = 1 Включает вики-функциональность
OneFMainVisibilityMode Определяет показ контента в лентах/списках

Видимость блока «Пространства» (UserGroupSettings)

Где настраивается: автоадминка → форма workplaces Таблица БД: dbo.UserGroupSettings

Поле Что контролирует
SpacesVisible Показывает/скрывает раздел «Пространства» в левом меню

Где настраивается: SPA-страница /administration/favorites-groups (пункт favourites в дереве автоадминки) Таблица БД: dbo.UserLinks

Ссылки типа «Пространство» и «Страница пространства» для быстрой навигации в конкретное пространство/статью.

Админ-страница «Избранное» групп (/administration/favorites-groups)

Поле Что контролирует
TypeId Тип ссылки (пространство / страница пространства)
LinkedObjectId ID привязанного пространства/статьи
Href URL для перехода

Привязка группы к статье (Groups)

Где настраивается: автоадминка → форма groups Таблица БД: dbo.Groups

Поле Что контролирует
SpaceTaskID Кнопка перехода в статью пространства из сценариев интерфейса группы

Типичные ошибки настройки

Частые проблемы при настройке пространств: вероятная причина, где проверить и запрос для диагностики в БД:

Симптом Причина Где проверить SQL-диагностика
Пользователь не видит «Пространства» IsActive = false или SpacesVisible выключен Формы custom-settings, workplaces select [Value] from dbo.SettingsCustom where [Key] = 'SpaceSettings'; select GroupId, SpacesVisible from dbo.UserGroupSettings
Пространство есть в БД, но не в списке Неверный RootCatId или категория не типа «Пространство» dbo.SettingsCustom, dbo.Subcategories select Id, SubcatTypeID, IsWikiSubcat from dbo.Subcategories where Id = {subcatId}
В статье нет контента/обложки/родителя Неверные ID в SpaceSettings.ExtParams dbo.SettingsCustom → JSON ExtParams Проверить соответствующие ДП в категории пространства
Ссылка из избранного открывает не тот объект Неверный TypeId или LinkedObjectId Форма favourites select * from dbo.UserLinks where Id = {linkId}
Кнопка группы ведёт в неверную статью Неверный SpaceTaskID Форма groups select Id, SpaceTaskID from dbo.Groups where Id = {groupId}

Связанные документы

См. также: