Hierarchy
- Portal
Properties
Readonly namespace
Код раздела, в рамках которого создан портал.
Readonly profiles
Управление профилями пользователей.
Readonly published
Опубликован ли портал. После публикации портал становится доступен внешним пользователям.
Methods
addProfile
-
Метод устарел. Предоставить для указанного профиля доступ в портал.
Пример использования:
const user = await System.users.search().first(); if (user) { const profile = await Namespace.portal.profiles.getByUser(user); if (profile) { await Namespace.portal.addProfile(profile); } }
Parameters
-
portalUserProfile: ApplicationItemRef<ItemData, ItemData>
Returns Promise<void>
-
addUser
-
Создать пользователя портала.
Метод создает нового пользователя портала по существующему профилю со статусом Приглашен.
На данный момент профиль может находится только в системной коллекции Внешние пользователи (
_user_profiles
).Метод генерирует ошибки:
— с кодом 400, если переданный профиль не является элементом коллекции Внешние пользователи;
— с кодом 409, если уже существует пользователь с указанным email или настройками OAuth2-авторизации;
— c кодом 412, если отсутствуют доступные лицензии портала;
— с кодом 500 во всех остальных случаях.
Parameters
-
portalUserProfile: ApplicationItemRef<UserProfileItemData, ItemData>
Профиль пользователя.
Пример использования:
const newPortalUser = Global.ns._system_catalogs.app._user_profiles.create(); newPortalUser.data.email = "user.email@email.com"; newPortalUser.data.fullname = <TFullName>{ firstname: 'firstname', middlename: 'middlename', lastname: 'lastname', }; await newPortalUser.save(); const user = await Namespace.portal.addUser( newPortalUser, );
Returns Promise<UserItem>
-
addUserWithoutConfirmation
-
Добавить пользователя портала по существующему профилю с OAuth2-авторизацией.
Внимание: после создания пользователя реквизиты для авторизации по OAuth2 нельзя будет изменить.
Метод создает нового пользователя портала по профилю и добавляет пользователю реквизиты для авторизации по OAuth2. На данный момент профиль может находится только в системной коллекции Внешние пользователи (_user_profiles). Метод генерирует ошибки:
— с кодом 400, если не переданы параметры для авторизации по OAuth2 или переданный профиль не является элементом коллекции Внешние пользователи;
— с кодом 409, если уже существует пользователь с указанным email или настройками OAuth2-авторизации;
— c кодом 412, если отсутствуют доступные лицензии портала;
— с кодом 500 во всех остальных случаях.
Parameters
-
portalUserProfile: ApplicationItemRef<ItemData, ItemData>
Профиль пользователя.
-
auth: AuthData
Доступные методы внешней авторизации.
Пример использования:
const newPortalUser = Global.ns._system_catalogs.app._user_profiles.create(); newPortalUser.data.email = "user.email@email.com"; newPortalUser.data.fullname = <TFullName>{ firstname: 'firstname', middlename: 'middlename', lastname: 'lastname', }; await newPortalUser.save(); const oAuth2Records: OAuth2Record[] = [ <OAuth2Record>{ providerId: 'a0524184-737e-4680-a549-1e4e94c01707', externalId: 'abcd123', } ] const auth: AuthData = <AuthData>{ oauth2: oAuth2Records, } await Namespace.portal.addUserWithoutConfirmation( newPortalUser, auth, );
Returns Promise<void>
-
denyAccess
-
Запретить для указанного профиля доступ в портал.
Пример использования:
const user = await System.users.search().first(); if (user) { const profile = await Namespace.portal.profiles.getByUser(user); if (profile) { await Namespace.portal.denyAccess(profile); } }
Parameters
-
portalUserProfile: ApplicationItemRef<ItemData, ItemData>
Returns Promise<void>
-
generateELMAAppUrl
-
Сгенерировать ссылку в портал для мобильного приложения или приложения для ПК.
Если в параметр
withAuthToken
передано значениеtrue
, в сгенерированную ссылку будет включен короткоживущий токен аутентификации для текущего пользователя, который позволяет автоматически (без дополнительной процедуры аутентификации) войти в целевой портал.Метод доступен только в клиентских сценариях.
Пример использования:
const ELMAAppUrl = await Namespace.portal.generateELMAAppUrl();
Parameters
-
Optional withAuthToken: undefined | false | true
Флаг включения в ссылку токена аутентификации (значение по умолчанию —
false
).
Returns Promise<string>
-
getPages
-
Получить список страниц портала для текущего раздела.
Пример использования:
const pages = await Namespace.portal.getPages();
Returns Promise<PortalPageInfo[]>
getSettings
-
Получить настройки портала.
Пример использования:
const settings = await Namespace.portal.getSettings();
Returns Promise<PortalSettings>
grantAccess
-
Предоставить для указанного профиля доступ в портал.
Пример использования:
const user = await System.users.search().first(); if (user) { const profile = await Namespace.portal.profiles.getByUser(user); if (profile) { await Namespace.portal.grantAccess(profile); } }
Parameters
-
portalUserProfile: ApplicationItemRef<ItemData, ItemData>
Returns Promise<void>
-
removeProfile
-
Метод устарел. Запретить для указанного профиля доступ в портал.
Пример использования:
const user = await System.users.search().first(); if (user) { const profile = await Namespace.portal.profiles.getByUser(user); if (profile) { await Namespace.portal.removeProfile(profile); } }
Parameters
-
portalUserProfile: ApplicationItemRef<ItemData, ItemData>
Returns Promise<void>
-
setPortalUserAsInternal
-
Сделать пользователя портала внутренним пользователем системы.
Пример использования:
const portalUser = await Namespace.portal.profiles.getUser(profile); await Namespace.portal.setPortalUserAsInternal(portalUser);
Parameters
-
portalUser: UserItemRef
Пользователь портала.
-
Optional _unsafe_ignore_oauth: undefined | false | true
Опасная опция. Использовать с осторожностью. Игнорирование настроек провайдера OAuth (значение по умолчанию —
false
).
Returns Promise<void>
-
signupUrl
-
Получить ссылку для регистрации внешнего пользователя.
Сформировать ссылку для регистрации с подтверждением контактных данных можно следующим образом:
if (Context.data.user_profile) { const inviteUrl = await Namespace.portal.signupUrl(Context.data.user_profile); }
Для формирования ссылки без подтверждения контактных данных для передачи ее доверенному лицу необходимо передать параметр
withSign
:if (Context.data.user_profile) { const inviteUrl = await Namespace.portal.signupUrl(Context.data.user_profile, { withSign: true }); }
Если требуется обновить ранее сформированную ссылку, необходимо передать параметр
refresh
:if (Context.data.user_profile) { const inviteUrl = await Namespace.portal.signupUrl(Context.data.user_profile, { refresh: true, }); }
Type parameters
Parameters
-
item: TApplication<D, P, S>
-
Optional params: SignupUrlParams
Returns Promise<string>
-
Внешний портал
Через этот интерфейс можно работать с внешним порталом в разделе.