forked from Vladislav_k0ncept/Element_Test_V2
41 lines
2.5 KiB
Plaintext
41 lines
2.5 KiB
Plaintext
импорт Основное
|
|
|
|
@Обработчик
|
|
метод ВычислитьРазрешенияДоступа(): Массив<РазрешениеДоступа>
|
|
возврат [ПользователиКлиентИСервер.ПолныеПраваНаСправочникДляАутентифицированных()]
|
|
;
|
|
|
|
@Обработчик
|
|
метод ВычислитьРазрешенияДоступаДляОбъектов(Объекты: ЧитаемыйМассив<КонтактныеЛица.ДанныеРасчетаРазрешений>): Соответствие<КонтактныеЛица.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>
|
|
знч КлиентыКонтактныхЛиц = Объекты
|
|
.Фильтровать(Объект -> Объект.Владелец != Неопределено)
|
|
.Преобразовать(Объект -> Объект.Владелец!)
|
|
|
|
знч РегионыКлиентов = Клиенты.ПолучитьРегионыКлиентов(КлиентыКонтактныхЛиц)
|
|
|
|
знч Результат = <КонтактныеЛица.ДанныеРасчетаРазрешений, Массив<РазрешениеДоступа>>{:}
|
|
|
|
для Объект из Объекты
|
|
знч Разрешения = <РазрешениеДоступа>[]
|
|
|
|
Разрешения.Добавить(ПользователиКлиентИСервер.ПолныеПраваНаСправочникДляРуководителя())
|
|
|
|
если Объект.Владелец == Неопределено
|
|
продолжить
|
|
;
|
|
|
|
знч Регион = РегионыКлиентов.ПолучитьИлиУмолчание(Объект.Владелец)
|
|
|
|
если Регион != Неопределено
|
|
Разрешения.Добавить(
|
|
новый РазрешениеДоступа(
|
|
[новый КлючДоступаМенеджера.Объект(Владелец = Регион)],
|
|
[Сущность.Право.Создание, Сущность.Право.Чтение, Сущность.Право.Изменение, Сущность.Право.Удаление])
|
|
)
|
|
;
|
|
|
|
Результат.Вставить(Объект, Разрешения)
|
|
;
|
|
|
|
возврат Результат
|
|
; |