2.10. Административные задачи

2.10.1. Создание групп пользователей

Диалог создания новой группы пользователей представлен на Рис. 2.88.. Для открытия этого окна необходимо в основном меню (см. Рис. 2.2., п.1) выбрать пункт «Панель управления» (см. Рис. 2.3.). На Панели управления (см. Рис. 2.4.) следует выбрать команду «Создать» в подпункте «Группы».

../../_images/admin_controlpanel_usergroup_create_rus.png

Рис. 2.88. Окно создания новой группы.

В диалоге необходимо указать полное и краткое наименование группы, при необходимости ввести описание группы, указать членов данной группы и нажать кнопку «Создать».

Примечание

Название группы должно содержать только цифры и буквы.

2.10.2. Создание пользователя

Диалог создания нового пользователя представлен на Рис. 2.89.. Для открытия этого окна необходимо в основном меню (см. Рис. 2.2., п.1) открыть панель управления (см. Рис. 2.3.) и выбрать команду «Создать» в подпункте «Пользователи».

../../_images/admin_controlpanel_user_create_rus.png

Рис. 2.89. Окно создания пользователя.

В диалоге необходимо указать:

  • Полное имя пользователя (например, Иванов Иван Иванович)
  • Имя пользователя – логин (например, ivanov)
  • Пароль для входа
  • Группа(-ы), к которым относится пользователь (в списке будут отображены имеющиеся группы. Если необходимой группы в списке нет, то ее необходимо предварительно создать (см. Создание групп пользователей)).

Далее необходимо нажать кнопку «Создать».

2.10.3. Настройка прав доступа

NextGIS Web строится на ресурсном подходе - каждый компонент системы (слой, группа, сервис) является ресурсом. NextGIS Web обладает расширенными настройками прав доступа к ресурсам.

Права доступа можно назначить как при создании ресурса (см. Добавление ресурсов), так и при его изменении (см. Редактирование векторных слоев). Для этого в диалоге создания/изменения ресурс необходимо перейти на вкладку «Права доступа» (см. Рис. 2.90.).

../../_images/access_rights_tab_rus.png

Рис. 2.90. Вкладка настроек прав доступа.

В данной вкладке можно назначать, отменять или изменять права доступа. Для одного ресурса могут быть назначены различные права доступа пользователей и/или групп. Диалог настроек правил доступа представлен на рис. Рис. 2.91..

../../_images/access_rights_dialog.png

Рис. 2.91. Диалог настроек правил доступа.

Диалог включает в себя следующие элементы:

  • Действие.
  • Субъект.
  • Право.
  • Ресурс.
  • Распространять.

Действие определяет типы правила - запрещающее или разрешающее.

Примечание

По умолчанию все запрещено.

Субъект - пользователь или группа, на которых распространяется правило.

Право - определяет разрешенные или запрещенные действия с ресурсом. Существуют следующие виды прав:

  • Все ресурсы: Все права
  • Ресурс: Все права
  • Ресурс: Управление дочерними ресурсами
  • Ресурс: Управление правами доступа
  • Ресурс: Чтение
  • Ресурс: Создать
  • Ресурс: Изменить
  • Ресурс: Удалить
  • Сервис: Все права
  • Сервис: Соединение
  • Сервис: Конфигурация
  • Структура данных: Все права
  • Структура данных: Запись
  • Структура данных: Чтение
  • Соединение: Все права
  • Соединение: Запись
  • Соединение: Чтение
  • Соединение: Соединение
  • Веб-карта: Все права
  • Веб-карта: Открыть
  • Данные: Все права
  • Данные: Запись
  • Данные: Чтение
  • Метаданные: Все права
  • Метаданные: Запись
  • Метаданные: Чтение

Ресурс определяет, на какие ресурсы распространять права. Это актуально для группы ресурсов, где необходимо назначить права определенным типам ресурсов. Если нет необходимости в выборе типов ресурсов или все ресурсы в группе одинаковые, то необходимо проставить «Все ресурсы».

Чекбокс «Распространять» определяет, распространять ли правило на ресурсы в подгруппы или нет. Обратите внимание, что установка прав на ресурс нижнего уровня, и распространение их не отменяет необходимости устанавливать их на ресурсы верхнего уровня. Например, дав доступ на чтение на группу ресурсов вложенную в другие группы, но не дав соответствующих прав на группы верхнего уровня относительно текущей, вплоть до корневого ресурса, пользователь не получит доступа к подпапке.

Права могут назначаться ресурсам, даже которым не соответствуют явно, например, право «Веб-карта: Просмотр» может быть назначено группе ресурсов, и, если включен переключатель «Распространять», то право будет распространяться на все веб-карты в данной группе и всех подгруппах.

Рассмотрим права подробнее.

Все ресурсы: Все права - разрешает или запрещает любые действия с ресурсами.

Ресурс: Все права - разрешает или запрещает любые действия с ресурсами, за исключением групп ресурсов.

Ресурс: Управление дочерними ресурсами - разрешает или запрещает изменение настроек дочерних ресурсов.

Ресурс: Управление правами доступа - разрешает или запрещает управлять правами доступа к ресурсу.

Ресурс: Чтение - разрешает или запрещает чтение ресурсов.

Ресурс: Создать - разрешает или запрещает создание ресурсов.

Ресурс: Изменить - разрешает или запрещает модифицировать ресурсы.

Ресурс: Удалить - разрешает или запрещает удалять ресурсы.

Сервис: Все права - разрешает или запрещает любые действия с сервисом.

Сервис: Соединение - разрешает или запрещает выполнять подключения к сервису.

Сервис: Конфигурация - разрешает или запрещает изменять настройки сервиса.

Структура данных: Все права - разрешает или запрещает любые действия со структурой данных.

Структура данных: Запись - разрешает или запрещает изменять структуру данных.

Структура данных: Чтение - разрешает или запрещает чтение структуры данных.

Соединение: Все права - разрешает или запрещает любые действия с соединениями.

Соединение: Запись - разрешает или запрещает модифицировать соединения.

Соединение: Чтение - разрешает или запрещает чтение параметров соединения.

Соединение: Соединение - разрешает или запрещает использовать соединение (будут ли доступны пользователю слои или данные из соединения).

Веб-карта: Все права - разрешает или запрещает любые действия над веб-картой.

Веб-карта: Открыть - разрешает или запрещает просмотр веб-карты.

Данные: Все права - разрешает или запрещает любые действия над данными.

Данные: Запись - разрешает или запрещает модификацию данных.

Данные: Чтение - разрешает или запрещает чтение данных.

Метаданные: Все права - разрешает или запрещает любые действия над метаданными.

Метаданные: Запись - разрешает или запрещает модифицировать метаданные.

Метаданные: Чтение - разрешает или запрещает читать метаданные.

При назначении прав на тот или иной ресурс следует учитывать права на составляющие его ресурсы. Например, для предоставления доступа к WMS сервису необходимо дать следующие права:

  • Сервис: Соединение - разрешение на само подключение.
  • Ресурс: Чтение - разрешение на все ресурсы (векторные и растровые слои), опубликованные в WMS сервисе.
  • Структура данных: Чтение - разрешение на все ресурсы (векторные и растровые слои), опубликованные в WMS сервисе.
  • Данные: Чтение - разрешение на все ресурсы (векторные и растровые слои), опубликованные в WMS сервисе.

При наличии сложной системы с несколькими отдельными картами, с которой должны работать разные пользователи, можно создать группы пользователей. Для групп можно настраивать права доступа по отдельности.

2.10.4. Примеры настроек прав доступа

Закрыть группу для гостей, открыть для специального пользователя

../../_images/access_rights_group_for_quest_1_rus.png

Рис. 2.92. Задать в свойствах группы ресурсов.

../../_images/access_rights_group_for_quest_2_rus.png

Рис. 2.93. Задать в свойствах корневой группы ресурсов.

В качестве альтернативы можно разрешить этому пользователю чтение на все вышестоящие группы ресурсов.

Дать гостю права на просмотр ресурсов

Примечание

Гости будут иметь возможность видеть административный интерфейс и ходить по всем папкам, кроме специально закрытых для просмотра.

../../_images/access_rights_group_for_quest_0.png

Рис. 2.94. Задать в свойствах корневой группы ресурсов.

../../_images/access_rights_group_for_quest_webmaps.png

Рис. 2.95. Задать в свойствах группы ресурсов с веб-картами.

../../_images/access_rights_group_for_quest_geodata.png

Рис. 2.96. Задать в свойствах группы ресурсов с геоданными.

Дать гостю права на просмотр карты

Примечание

Гости смогут видеть только веб-карту и слои в каталоге, а всё остальное будет закрыто.

../../_images/access_rights_group_for_quest_10_rus.png

Рис. 2.97. Задать в свойствах корневой группы ресурсов.

../../_images/access_rights_group_for_quest_webmaps12_rus.png

Рис. 2.98. Задать в свойствах группы ресурсов с веб-картами.

../../_images/access_rights_group_for_quest_geodata13_rus.png

Рис. 2.99. Задать в свойствах группы ресурсов с геоданными.

Дать одному пользователю права на одну группу ресурсов

../../_images/access_rights_group_for_user_1.png

Рис. 2.100. Задать в свойствах группы ресурсов.

../../_images/access_rights_group_for_user_2_rus.png

Рис. 2.101. Задать в свойствах корневой группы ресурсов.

Дать группе пользователей право на ввод данных через мобильное приложение

Создать отдельную группу пользователей (в примере - «Openstreetmap users») и отдельную группу ресурсов.

../../_images/access_rights_group_for_mobile_import_1.png

Рис. 2.102. Задать в свойствах группы ресурсов.

../../_images/access_rights_group_for_mobile_import_2.png

Рис. 2.103. Задать в свойствах корневой группы ресурсов.

Закрыть просмотр веб-карты всем кто не залогинился, разрешить тем кто залогинился

../../_images/access_rights_deny_webmap_guests_allow_logined_rus.png

Рис. 2.104. Задать в свойствах веб-карты.

Закрыть доступ ко всей системе гостям (тем, кто без пароля)

../../_images/access_rights_deny_all_rus.png

Рис. 2.105. Задать в свойствах корневой группы ресурсов.

2.10.5. Изменение пароля пользователя

Для смены пароля пользователя можно воспользоваться административным интерфейсом. Для этого необходимо в основном меню (см. Рис. 2.2., п.1) выбрать пункт «Панель управления» (см. Рис. 2.3.). На Панели управления (см. Рис. 2.4.) следует выбрать команду «Список» в подпункте «Пользователи» и нажать на иконку в виде карандаша напротив пользователя, для которого необходимо сменить пароль (см. Рис. 2.106.). В открывшемся окне в поле «Пароль» ввести новый пароль. После ввода нового пароля следует нажать на кнопку «Сохранить».

../../_images/ngweb_change_password_rus.png

Рис. 2.106. Окно редактирования пользователя.

Также существует возможность изменить пароль пользователя из командной строки:

Предупреждение

Указание нового пароля пользователя в командной строке потенциально небезопасно.

env/bin/nextgisweb --config config.ini change_password user password
env/bin/nextgisweb --config config.ini change_password user password

2.10.6. Настройка внешнего вида интерфейса

Можно изменять внешний вид NextGIS Web. Внешний вид включает: логотипы, цвета шапки, фона, кнопок и других элементов. Для этого необходимо в основном меню (см. Рис. 2.2., п.1) выбрать пункт «Панель управления» (см. Рис. 2.3.). На Панели управления (см. Рис. 2.4.) следует выбрать команду «Пользовательские стили CSS» в подпункте «Настройки». В открывшейся вкладке можно задать собственные стили CSS, которые будут использованы для оформления всех страниц Веб ГИС.

2.10.7. Примеры настроек внешнего вида интерфейса

Изменить цвет шапки:

.header{background-color: #F44336; color: #fff;}

Убрать логотип NextGIS с карты:

.map-logo{display:none;}

Убрать заголовок окна идентификации

Окно идентификации - это всплывающее окно, появляющееся при нажатии на объект на карте. Данная настройка скроет его заголовок и выбор идетифицируемого слоя.

div.ngwPopup__content div div.dijitAlignTop,
div.ngwPopup__features span.ngwWebmapToolIdentify-controller {
    display: none;
}

Расширенный пример настройки внешнего вида Веб ГИС:

Этот пример показывает, как настроить большинство изменяемых элементов внешнего вида NextGIS Web. Можно использовать фрагменты приведенных ниже стилей как есть или с нужными изменениями. Увидеть эти стили в действии можно по ссылке.

/* Base background */

body{
  background-color: #fff;
  background-image:url("https://nextgis.ru/img/hypnotize_transparent.png");
}

/* Header text and background color */

.header{
  background-color: #F44336;
  color: #fff;
}

/* Separator color between logo and title */

.header__title-logo{
  border-right: 1px solid rgba(255,255,255,.48) !important;
}

/* User info color in header */

.user-avatar__label{
  background-color: #fff !important;
  color: #F44336 !important;
}

.user-avatar .user-avatar__icon{
  color: rgba(255,255,255,.82) !important;
}

/* Primary button */

.dijitButton--primary{
  background-color: #fff !important;
  color:#f44336 !important;
  font-weight: bold !important;
  border: 2px solid #f44336 !important;
}

.dijitButton--primary:hover{
  background-color: #f44336 !important;
  color: #fff !important;
}

/* Default button */

.dijitButton--default{
  background-color: #fff !important;
  color:#999 !important;
  font-weight: bold !important;
  border: 2px solid #999 !important;
}

.dijitButton--default:hover{
  background-color: #999 !important;
  color: #fff !important;
}

/* Tabs color */

.dijitTabContainerTop-tabs .dijitTabChecked{
  border-top-color: #f44336 !important;
}

/* Left navigation panel on the map */

.navigation-menu{
  background-color: #fff !important;
  border-right: 1px solid rgba(0,0,0,.12) !important;
  color: #000 !important;
}