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


В таблице 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>
Пример использования также можно увидеть в таблице Пользователи.
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
Важные параметры:
Данная процедура вызывается после создания системного пользователя и назначения ему роли 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 автоматически логируются записи по следующим событиям: