forked from Vladislav_k0ncept/Element_Test_V2
128 lines
6.9 KiB
Plaintext
128 lines
6.9 KiB
Plaintext
@ВПроекте
|
||
@НаСервере
|
||
метод ПолныеПраваНаСправочникДляАутентифицированных(): РазрешениеДоступа
|
||
возврат новый РазрешениеДоступа(
|
||
[новый КлючДоступаДляАутентифицированных.Объект()],
|
||
[Сущность.Право.Создание, Сущность.Право.Чтение, Сущность.Право.Изменение, Сущность.Право.Удаление])
|
||
;
|
||
|
||
@ВПроекте
|
||
@НаСервере
|
||
метод ПолныеПраваНаСправочникДляРуководителя(): РазрешениеДоступа
|
||
возврат новый РазрешениеДоступа(
|
||
[новый КлючДоступаРуководителя.Объект()],
|
||
[Сущность.Право.Создание, Сущность.Право.Чтение, Сущность.Право.Изменение, Сущность.Право.Удаление])
|
||
;
|
||
|
||
@ВПроекте
|
||
@НаСервере
|
||
метод ПолныеПраваНаРегистрСведенийДляРуководителя(): РазрешениеДоступа
|
||
возврат новый РазрешениеДоступа(
|
||
[новый КлючДоступаРуководителя.Объект()],
|
||
[Сущность.Право.Чтение, Сущность.Право.Изменение])
|
||
;
|
||
|
||
@ВПроекте
|
||
@НаСервере @ДоступноСКлиента
|
||
метод ЭтоАдминистраторПриложения(): Булево
|
||
знч ТекущийПользователь = Пользователи.ТекущийПользователь
|
||
если ТекущийПользователь == Неопределено
|
||
возврат Ложь
|
||
;
|
||
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Администратор
|
||
ИЗ
|
||
Пользователи
|
||
ГДЕ
|
||
Ссылка == %ТекущийПользователь
|
||
}
|
||
|
||
возврат Запрос.Выполнить().Единственный().Администратор
|
||
;
|
||
|
||
@ВПроекте
|
||
@НаСервере @ДоступноСКлиента
|
||
метод ПолучитьТекущегоСотрудника(): Сотрудники.Ссылка?
|
||
знч ТекущийПользователь = Пользователи.ТекущийПользователь
|
||
если ТекущийПользователь == Неопределено
|
||
возврат Неопределено
|
||
;
|
||
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ ПЕРВЫЕ 1
|
||
Ссылка
|
||
ИЗ
|
||
Сотрудники
|
||
ГДЕ
|
||
Пользователь == %ТекущийПользователь
|
||
}
|
||
|
||
возврат Запрос.Выполнить().ЕдинственныйИлиУмолчание()?.Ссылка
|
||
;
|
||
|
||
@ВПроекте
|
||
@НаСервере @ДоступноСКлиента
|
||
метод ПолучитьДанныеТекущегоПользователя(): ДанныеПользователя
|
||
знч Запрос = Запрос{
|
||
ВЫБРАТЬ
|
||
Пользователи.Ссылка КАК Пользователь,
|
||
Пользователи.Администратор КАК ЭтоАдминистраторПриложения,
|
||
Сотрудники.Ссылка.ЗаменитьNull(Неопределено) КАК Сотрудник,
|
||
Сотрудники.Роль.ЗаменитьNull(Неопределено) КАК Роль,
|
||
Сотрудники.Регион.ЗаменитьNull(Неопределено) КАК Регион
|
||
ЗАПОЛНИТЬ ДанныеПользователя
|
||
ИЗ
|
||
Пользователи КАК Пользователи
|
||
ЛЕВОЕ СОЕДИНЕНИЕ Сотрудники КАК Сотрудники
|
||
ПО Пользователи.Ссылка == Сотрудники.Пользователь
|
||
ГДЕ
|
||
Пользователи.Ссылка == %{Пользователи.ТекущийПользователь}
|
||
УПОРЯДОЧИТЬ ПО
|
||
Пользователи.Ссылка
|
||
}
|
||
|
||
возврат Запрос.Выполнить().ЕдинственныйИлиУмолчание() ?? новый ДанныеПользователя()
|
||
;
|
||
|
||
@ВПодсистеме
|
||
@НаСервере
|
||
метод СоздатьПользователя(
|
||
Представление: Строка,
|
||
Логин: Строка,
|
||
ЗапретитьВход: Булево = Ложь): Пользователи.Ссылка
|
||
|
||
если Представление.Пусто()
|
||
выбросить новый ИсключениеНедопустимыйАргумент("Представление не может быть пустым")
|
||
;
|
||
если Логин.Пусто()
|
||
выбросить новый ИсключениеНедопустимыйАргумент("Логин не может быть пустым")
|
||
;
|
||
|
||
знч СписокПользователей = СпискиПользователей.ПолучитьСписокПоУмолчанию()
|
||
|
||
// Проверим, что пользователь с этим логином ещё не существует
|
||
знч МассивОписанийПользователей = СпискиПользователей.ПолучитьПользователей(СписокПользователей.Ид)
|
||
для Описание из МассивОписанийПользователей
|
||
если Описание.Логин == Логин
|
||
выбросить новый ИсключениеВыполнения("Пользователь с логином %Логин уже существует")
|
||
;
|
||
;
|
||
|
||
знч Описание = новый ОписаниеПользователя(СписокПользователей.Ид, Представление, Логин)
|
||
|
||
// Создаём пользователя
|
||
ПользователиСервиса.Создать(Описание)
|
||
|
||
// Подключение созданного пользователя к приложению
|
||
знч СсылкаНаПользователя = Пользователи.Подключить(Описание.Ид).Ссылка
|
||
|
||
// Запретим пользователю вход, если нужно
|
||
если ЗапретитьВход
|
||
Пользователи.ЗапретитьВход(СсылкаНаПользователя, Истина)
|
||
;
|
||
|
||
возврат СсылкаНаПользователя
|
||
;
|