Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

Настройка доступа к данным по ролям на AppMaster.io

Настройка доступа к данным по ролям на AppMaster.io

В данной статье мы рассмотрим, как no-code платформа AppMaster.io решает задачу доступа пользователей приложения к данным.

На нашей платформе это происходит с помощью внедрения ролей, таких как Users, Moderators, Admins и другие, по требованию. Это решение дает больше гибкости внутри вашего собранного приложения и позволяет распоряжаться тем, кто какие информацию и функционал получает внутри приложения.

Статья будет полезна всем, кто хочет углубиться в функционал платформы AppMaster.io и увидеть ее возможности настроек доступа к данным по ролям.

Модуль Auth от AppMaster.io

Регистрация в собранном приложении на нашей платформе представлена модулем Auth, который позволяет создавать и редактировать группы пользователей и права доступа к ним. Модуль Auth уже предустановлен в проект при его создании.

Мodule Auth by AppMaster.io

Доступные настройки модуля Auth:

SignUp Groups — список групп пользователей, которым доступна регистрация;

SignUp — включает возможность регистрации в приложении;

Session timeout (minutes) — время, после которого завершится текущая сессия пользователя при его бездействии (в минутах). По умолчанию составляет 60 мин;

Failed login delay (in ms) — время задержки на ответ от сервера при неудачной попытке логина (в мс). По умолчанию составляет 0 мс;

Email confirmation required — опция, требующая подтверждения через электронную почту, если она включена;

Signed-Up User Active — присваивает атрибуту active значение true для каждого зарегистрированного пользователя User;

Groups — позволяет создавать и редактировать группы пользователей.

Создать группу на платформе AppMaster

Для работы с моделями в AppMaster.io используется Data Model Designer.

User и User Session – две модели, которые автоматически создаются в Data Model Designer. Предустановленные поля моделей данных нельзя изменить или удалить, но Вы можете добавить новые.

Для этих моделей, также, автоматически создаются блоки бизнес-процессов (БП).

Автосгенерированные БП, связанные с User и User Sessions:

  • User Model

DB: Delete User — удаляет объект User из базы данных по переданному ID;

Delete User in AppMaster

DB: Update User — сбрасывает все поля блока Пользователь-объект, переданные на вход в БД, и обновляет их в соответствии с заданными значениями (для изменения только указанных полей используется блок БД: Обновление пользователя);

Update User

DB: Create User — сохраняет в базе данных и возвращает заданный объект пользователя (чтобы построить его из заданных полей, используйте блок «Создать пользователя»);

Create User

DB: Soft Delete User — обновляет атрибут DeletedAt объекта «Пользователь» и оставляет его в базе данных;

Soft Delete User

DB: Bulk Delete User — принимает на вход массив идентификаторов (id) объектов User, которые будут удалены из базы данных;
failed_ids — массив идентификаторов пользователей, которые не будут удалены;

Bulk Delete User

DB: Patch User — обновляет указанные поля объекта «Пользователь» в базе данных (для сброса всех полей используйте блок DB: Update User);

Patch User

DB: Search User — находит один или несколько объектов User в базе данных на основе полей и возвращает их;

Search User

DB: GetOne User — находит в БД объект User по его ID и возвращает его;

GetOne User

Expand User — возвращает все поля выбранного объекта «Пользователь»;

Expand User

Make User — создает в памяти новый объект «Пользователь» из заданных полей и возвращает его (для сохранения созданного объекта в базе данных используйте блок DB: Create User);

Make User

  • User Session Model

DB: Delete User Session — удаляет объект User Session из БД по переданному ID;

Delete User Session

DB: Update User Session — сбрасывает все поля объекта «Пользовательская сессия», переданные в блок ввода в базе данных, и обновляет их в соответствии с заданными значениями (чтобы изменить только указанные поля, используйте DB: Patch User Session);

Update User Session

DB: Create User Session — сохраняет в базе данных и возвращает заданный объект User Session (чтобы построить его из заданных полей, используйте блок Make User Session);

Create User Session

DB: Soft Delete User Session — обновляет атрибут DeletedAt объекта User Session и оставляет его в базе данных;

Soft Delete User Session

DB: Bulk Delete User Session — принимает на вход набор идентификаторов объектов пользовательских сессий, которые будут удалены из базы данных;

failed_ids — массив определяет набор идентификаторов, которые не будут удалены;

Bulk Delete User Session

DB: Patch User Session — обновляет заданные поля объекта Пользовательская сессия в базе данных (для сброса всех полей используйте блок БД: DB: Update User Session);

Попробуйте no-code платформу AppMaster
AppMaster поможет создать любое веб, мобильное или серверное приложение в 10 раз быстрее и 3 раза дешевле
Начать бесплатно

Patch User Session

DB: Search User Session — находит в базе данных один или несколько объектов User Session на основе полей и возвращает их;

Search User Session

DB: GetOne User Session — находит объект User Session в БД по его ID и возвращает его;

GetOne User Session

Expand User Session — возвращает все поля выбранного объекта User Session;

Expand User Session

Make User Session — создает в памяти новый объект User Session из заданных полей и возвращает его (для сохранения созданного объекта в БД используйте блок DB: Create User Session);

Make User Session

  • Модуль авторизации

Auth: Generate Auth Token — генерирует токен авторизации (Auth Token) заданной длины;

Generate Auth Token

Auth: Registration — регистрирует нового пользователя;

Auth: Registration

Auth: Authorization — проверяет наличие Auth Token в системе и возвращает связанного с ним пользователя;

Auth: Authorization

Auth: Authentification — проверяет логин и пароль пользователя и возвращает Auth Token;

Auth: Authentification

Auth: Logout — принимает Auth Token и завершает текущую сессию пользователя;

Auth: Logout

Auth: Get current user — возвращает данные текущего пользователя;

Auth: Get current user

Auth: Remove user from group — удаляет пользователя из указанной группы по его ID (определяется в настройках модуля Auth);

Auth: Remove user from group

Auth: Add user to group — добавляет пользователя в указанную группу пользователей по его ID (определяется в настройках модуля Auth);

Auth: Add user to the group

Auth: Hash Password — преобразование строки пароля в хэш;

Auth: Hash Password

Auth: Restore Password — принимает логин и новый пароль пользователя, тем самым сбрасывая его;

Auth: Restore Password

Auth: Change Password — заменяет текущий пароль пользователя на новый;

Auth: Change Password

Auth: Probe Password — проверка совпадения пароля и хеша;

Auth: Probe Password

Endpoints модуля Auth Module и моделей User и User Session автоматически генерируются при создании проекта.

Auth Module

Тип запросаEndpointСвязанный БП
post type
/logout/Auth: Logout
post type/auth/

Auth: Authentification

post type/register/Auth: Registration
get type/confirm/Auth: Registration
put type/user/change-password/Auth: Change Password
post type/user/restore-password/Auth: Restore Password
get type/user/profile/Auth: Authorization

User

Тип запросаEndpointСвязанный БП
put type/user/:id/DB: Update User
delete type/user/:id/DB: Delete User
get type/user/:id/DB: GetOne User
get type/user/DB: Search User
patch type/user/:id/DB: Patch User
post type/user/DB: Create User

User session

Тип запросаEndpointСвязанный БП
delete type/user-session/:id/DB: Delete User Session
get type/user-session/:id/DB: GetOne User Session
get type AppMaster/user-session/DB: Search User Session
patch type AppMaster/user-session/:id/DB: Patch User Session
post type AppMaster/user-session/DB: Create User Session
put type AppMaster/user-session/DB: Update User Session

Auth Token используется в качестве токена текущей сессии авторизованного пользователя. В БП веб-приложения есть возможность взаимодействовать с этим токеном:

Попробуйте no-code платформу AppMaster
AppMaster поможет создать любое веб, мобильное или серверное приложение в 10 раз быстрее и 3 раза дешевле
Начать бесплатно
  1. Get Auth Token возвращает Auth текущего сеанса аутентифицированного пользователя; 

Get Auth Token returns the Auth of the current authenticated user session

  1. Set Auth Token перезаписывает Auth Token текущего сеанса авторизованного пользователя;
    Set Auth Token
  2. Remove Auth Token удаляет Auth Token текущего сеанса авторизованного пользователя;
    Remove Auth Token

В примере показано, как получить текущего пользователя.

Для этого нужно перейти во вкладку Business logic и перетащить блок Auth: Get current user.

Далее для созданного БП создается Endpoint, который будет использоваться для обращения к серверу, чтобы получить объект user текущего пользователя.

Выберите группу user в разделе Endpoints и создайте GET метод запроса для только что созданного процесса получения текущего пользователя.

В БП веб-приложения выполните запрос к созданному endpoint (Server request GET /user_current), чтобы получить текущего пользователя.

Группы и разрешения

Группы пользователей создаются в настройках модуля Auth. Для перехода в настройки модуля необходимо открыть раздел Модули и нажать на карточку соответствующего модуля.

Вкладка «Группы» содержит список всех существующих групп. Щелкните Добавить новый элемент, чтобы создать новую группу пользователей. В новом модальном окне вы можете настроить группу, добавить описание, значок, цвет значка и метки, а также тег.

Редактировать группу AppMaster

Для редактирования существующих групп пользователей также необходимо зайти в настройки модуля Auth. Для этого перейдите в раздел Модули и нажмите на карточку соответствующего модуля. Далее во вкладке Группы будет доступен список групп, для его редактирования нужно нажать на иконку настроек. В новом модальном окне вы можете настроить группу, изменить ее описание, значок, цвет значка и метки, а также тег.

Editing existing user groups

Для изменения прав чтения/записи записей в БД для определенных групп пользователей используется Middleware модуля Auth.

В разделе «Endpoints» выберите конечную точку, чьи разрешения на чтение/запись вы хотите изменить. Нажмите на кнопку настроек в нужной Endpoint и перейдите на вкладку Middleware в открывшемся модальном окне. Далее, нажав Edit settings в строке с Token Auth Middleware, настройте права доступа.

Access to pages in the web application

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

В поле Показать для групп необходимо выбрать список групп пользователей, которым будет разрешено просматривать эту страницу. По умолчанию поле пусто, и доступ разрешен всем категориям пользователей.

Access to pages in the web application 2

Итоги

Доступ к данным по ролям — это удобный способ организовать разные потоки информации для отдельных групп пользователей. В триал-доступе к платформеа AppMaster.io вы можете протестировать эту функцию в пробной версии.
В плане Professional, помимо доступа по ролям, доступны экспорт бинарных файлов, резервное копирование, трансфер проектов и многое другое. Ждём вас на платформе AppMaster.io для реализации даже самых смелых ваших проектов.

Похожие статьи

Как разработать масштабируемую систему бронирования отелей: полное руководство
Как разработать масштабируемую систему бронирования отелей: полное руководство
Узнайте, как разработать масштабируемую систему бронирования отелей, изучите архитектуру, ключевые функции и современные технологические решения для обеспечения бесперебойного обслуживания клиентов.
Пошаговое руководство по разработке платформы управления инвестициями с нуля
Пошаговое руководство по разработке платформы управления инвестициями с нуля
Изучите структурированный путь создания высокопроизводительной платформы управления инвестициями, использующей современные технологии и методологии для повышения эффективности.
Как выбрать правильные инструменты мониторинга здоровья для ваших нужд
Как выбрать правильные инструменты мониторинга здоровья для ваших нужд
Узнайте, как выбрать правильные инструменты мониторинга здоровья, соответствующие вашему образу жизни и потребностям. Подробное руководство по принятию обоснованных решений.
Начните бесплатно
Хотите попробовать сами?

Лучший способ понять всю мощь AppMaster - это увидеть все своими глазами. Создайте собственное приложение за считанные минуты с бесплатной подпиской AppMaster

Воплотите свои идеи в жизнь