Falcon Space - платформа для создания сайтов с личными кабинетами
Управление ролями и пользователями на сайте
Роли определяют полномочия пользователя в системе. У каждого пользователя может быть несколько ролей. Назначением ролей заведует администратор системы (статью по описанию интерфейса администратора-разработчика можно прочитать здесь).
Создание Ролей
Управление ролями осуществляется в меню Пользователи / Роли (/roles). Здесь расположена таблица Роли (roles).

При этом открывается модальное окно (форма registrationUserInRole), где необходимо указать логин, пароль, email и выбрать одну из имеющихся ролей для создаваемого пользователя.

В таблице as_users хранятся общие данные по пользователям (телефон, почта и т. д.).
Логин пользователя - латинскими малыми буквами без дефисов и пробелов (например, фамилия человека и инициалы, часто логином может служить e-mail).
Доступ в системе назначается на основании ролей, поэтому необходимо давать пользователю минимальный набор ролей, необходимый для работы этого пользователя.
Структура данных по пользователям
Таблица Пользователи
На странице Пользователи (/members) расположена таблица управления пользователями.

Для более детальной информации по людям используются Контакты (ctr_contacts), связь идет по username. Контакты привязаны к неким Контрагентам (ctr_contragents). И эти контрагенты уже привязаны к различным бизнес сущностям (например, поставщики, клиенты и т.д.).
Для аватара пользователя используется ресурс userImage.
Если при регистрации нового пользователя необходимо сразу помещать информацию о нём в Контакты, Контрагенты, и возможно еще и в специализированную таблицу (перечень поставщиков, клиентов, подрядчиков, либо партнеров и т.д.), то обработку этих вставок вам необходимо добавить в форму регистрации нового пользователя (registrationUserInRole).
Информационное окошко по пользователю
Из таблицы Пользователи в первом столбце (i) есть выход на модальное окошко userInfo. Здесь выводится аватар пользователя (ресурс userImage) и информация из as_users в кратком виде на просмотр.

Страница Мой профиль
На странице профиля (/user) выводится форма Управление пользователем (editProfile). Здесь есть возможность редактировать данные по пользователю из as_users.
Страница пользователя
На странице Пользователь (/member?username=...) выводится форма user с данными из as_users на просмотр, ресурсом userImage, а также перечнем всех ролей пользователя с возможностью редактирования (флажки).

Изменение принадлежности к ролям
Как правило страница с перечнем пользователей, а также страницы с информацией по отдельным пользователям доступна Администратору сайта. В его полномочиях изменять набор ролей, в которые входит пользователь.
Сделать это можно на странице пользователя на форме user. Одна из колонок представлена типом Флажки, в которую выбираются все имеющиеся в системе роли. Администратор выставляет флажки напротив выбранных ролей для конкретного пользователя.
Отслеживание пользователей онлайн
На сайте можно показывать онлайн пользователь или нет.
Для этого используется разметка:
<div class="as-online" data-username="demo1"></div>
Пример использования также можно увидеть в таблице Пользователи.
- По периоду (по умолчанию 30 сек) будет опрашиваться страница и обновлять эти элементы, если они присутствуют (т.е. вставляться значок с text-success или text-danger). Т.е. данная разметка принимает вид только значка без дополнительных элементов. Период можно изменить через настройку online.period в as.systemOptions.js
- Если необходимо принудительно вызвать запуск обновления статусов, то используйте JS функцию as.online.reInit(); (но с подгрузкой скрипта as.online.js)
- Если поставить настройку online.disableCheck=true в as.systemoptions.js, то показ статуса будет отключен.
as.sys.loadLib({
jslink: as.options.jsLoadableURLFormat.format("as.online"),
csslink: "",
conditionObject: as.online,
callback: function () {
as.online.reInit();
},
isCacheable: true
});
Вы можете изменить вывод разметки элемента через функцию as.onlineGetOnlineMakeup:
as.onlineGetOnlineMakeup = function(st){
var s = "";
return s;
}
Вход и регистрация через социальные сети
На странице входа (см. также Настройка страницы входа) можно реализовать возможность входа и регистрации через социальные сети. Для этого используйте сервис uLogin (действий на внешнем сервисе не требуется выполнять).
Для этого необходимо реализовать следующие процедуры:
Настройка параметров виджета социальных сетей
CREATE procedure [dbo].[user_getSocialSettings]
AS
BEGIN
SELECT 1 [Enabled], 'panel' Display, 'classic' Theme,
'first_name,last_name,email' Fields,
'facebook,instagram,vkontakte,odnoklassniki' Providers,
'crm' RegRole, 'soc-{email}' UsernameFormat -- uid, email
END
Важные параметры:
- Enabled. Если Enabled=1, то доступна возможность регистрации через социальные сети.
- RegRole - указывает, какая роль будет добавлена новым пользователям, зарегистрированным через социальные сети.
- UsernameFormat - определяет как будет формироваться имя пользователя на основе данных из социальной сети. Можно использовать 2 переменных {email} и {uid}.
Настройка кастомной процедуры создания пользователя (необязательная)
Данная процедура вызывается после создания системного пользователя и назначения ему роли RegRole. Ее можно использовать для создания дополнительных объектов в базе и подготовки письма.
CREATE PROCEDURE[dbo].[user_createSocialUser]
@username nvarchar(128), @role nvarchar(64), @email nvarchar(128), @firstName nvarchar(128), @lastName nvarchar(128), @network nvarchar(128), @uid nvarchar(128), @verifiedEmail nvarchar(128), @url nvarchar(256)=''
-- ВАЖНО. Параметр добавился 06.11.19
AS BEGIN
-- создание дополнительных объектов
SELECT 1 Result, '' Msg, 'Регистрация' EmailSubject,
@username + ' - ' + @role + ' - ' + @email + ' - ' + @firstName + ' - ' + @lastName + ' - '+ @network + ' - ' + @uid + ' - ' + @verifiedEmail EmailBody
END
В параметре @url передается исходный адрес страницы, например, /account/login/supplier (чтобы можно было регистрировать пользователей под разные роли) исходя из URL.
Выходная модель содержит стандартные Result (1 если все хорошо) и Msg (текст ошибки), а также EmailBody и EmailSubject.
Письмо отправляется только если EmailBody непустое.
Примечание
Для регистрации пользователей для разных ролей, необходимо видоизменять ссылку, например:
/account/login/supplier
/account/login/customer
В итоге этот адрес передается в параметре @url в процедуру user_createSocialUser. В ней вы можете сравнить url и назначить соответствующую роль.
ВАЖНО. Никогда не назначайте роль беря название прямо из параметра!!! (в него могут передать все что угодно, например значение admin)
Отслеживание действий пользователя
В таблицу as_trace автоматически логируются записи по следующим событиям:
-
exception - если возникла ошибка, при этом указывается где и какая ошибка
-
pv - просмотр страницы, указывается ссылка на страницу
-
sf - сохранение формы, указывается какая форма была сохранена
Например, при регистрации нового пользователя можно добавлять в as_trace запись с кодом reg, в header указывать роль с которой был зарегистрирован пользователь,
а в text логин и пароль зарегистрировавшегося пользователя.
Google поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта