Процедура СК_ГР_ПроверкаБезопасностиПользователя() экспорт
УстановитьПривилегированныйРежим(Истина);
Выборка = ПользователиИнформационнойБазы.ПолучитьПользователей();
МассивДляОтчета=Новый Массив();
данные="";
бд=НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref");
Для Каждого ЭлементМассива Из Выборка Цикл
если ЭлементМассива.АутентификацияОС=ложь тогда
если ЭлементМассива.АутентификацияСтандартная=истина тогда
инф=Новый Структура("полноеимя,имя,email,датапароля,показыватьвспискевыбора,роли,пользователь,ЗапускВебКлиента,ЗапускТолстогоКлиента,ЗапускТонкогоКлиента,ЗапускВнешнегоСоединения");
инф.полноеимя=ЭлементМассива.ПолноеИмя;
инф.имя=ЭлементМассива.Имя;
инф.email=ЭлементМассива.АдресЭлектроннойПочты;
инф.датапароля=ЭлементМассива.ДатаУстановкиПароля;
инф.показыватьвспискевыбора=ЭлементМассива.ПоказыватьВСпискеВыбора;
инф.роли="";
ЕстьПароль = ЭлементМассива.ПарольУстановлен;
Роли = ЭлементМассива.Роли;
Для Каждого Роль Из Роли Цикл
если ПравоДоступа("ВебКлиент",Метаданные,Роль) тогда
инф.роли=инф.роли+Роль.Имя+", ";
иначеесли ПравоДоступа("ВнешнееСоединение",Метаданные,Роль) тогда
инф.роли=инф.роли+Роль.Имя+", ";
иначеесли ПравоДоступа("ТолстыйКлиент",Метаданные,Роль) тогда
инф.роли=инф.роли+Роль.Имя+", ";
иначеесли ПравоДоступа("ТонкийКлиент",Метаданные,Роль) тогда
инф.роли=инф.роли+Роль.Имя+", ";
конецесли;
КонецЦикла;
поль=Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ",ЭлементМассива.УникальныйИдентификатор);
ЗапускРоль="";
если поль<>Справочники.Пользователи.ПустаяСсылка() тогда
инф.ЗапускВебКлиента=УправлениеДоступом.ЕстьРоль("ЗапускВебКлиента",, поль);
если инф.ЗапускВебКлиента=истина тогда
ЗапускРоль=ЗапускРоль+"Веб, ";
конецесли;
инф.ЗапускТолстогоКлиента=УправлениеДоступом.ЕстьРоль("ЗапускТолстогоКлиента",, поль);
если инф.ЗапускТолстогоКлиента=истина тогда
ЗапускРоль=ЗапускРоль+"Толстый, ";
конецесли;
инф.ЗапускТонкогоКлиента=УправлениеДоступом.ЕстьРоль("ЗапускТонкогоКлиента",, поль);
если инф.ЗапускТонкогоКлиента=истина тогда
ЗапускРоль=ЗапускРоль+"Тонкий, ";
конецесли;
инф.ЗапускВнешнегоСоединения=УправлениеДоступом.ЕстьРоль("ЗапускВнешнегоСоединения",, поль);
если инф.ЗапускВнешнегоСоединения=истина тогда
ЗапускРоль=ЗапускРоль+"Внешние, ";
конецесли;
конецесли;
инф.пользователь=поль.Наименование;
МассивДляОтчета.Добавить(инф);
данные=данные+"<tr>";
данные=данные+" <td>"+инф.полноеимя+"</td>";
данные=данные+" <td>"+инф.имя+"</td>";
данные=данные+" <td>"+инф.пользователь+"</td>";
данные=данные+" <td>"+инф.email+"</td>";
данные=данные+" <td>"+инф.датапароля+"</td>";
данные=данные+" <td>"+инф.показыватьвспискевыбора+"</td>";
данные=данные+" <td>"+ЗапускРоль+"</td>";
данные=данные+" <td>"+инф.роли+"</td>";
данные=данные+"</tr>";
Конецесли;
Конецесли;
КонецЦикла;
если МассивДляОтчета.Количество()>0 тогда
тело="<style>td {border: 1px solid;} th{border: 1px solid;} table.table {word-wrap:true;border-collapse: collapse;border-spacing: 0;}table.table > thead > tr > th {font-size: 14px;font-weight: normal;padding-top: 7px;padding-bottom: 7px;}.table > thead > tr > th {vertical-align: bottom;border-bottom: 2px solid #ddd;}table.table th {background-color: #153e76;}</style>";
тело=тело+"Критерии попадания в этот список: отключена доменная авторизация, разрешен вход в 1С<br/>";
тело=тело+"<strong>Подозрительные учётки</strong>: <br/>";
тело=тело+"<table class='table'>";
тело=тело+" <thead>";
тело=тело+" <tr>";
тело=тело+" <th scope='col'> Полное имя</th>";
тело=тело+" <th scope='col'> Имя</th>";
тело=тело+" <th scope='col'> Пользователь</th>";
тело=тело+" <th scope='col'> Email</th>";
тело=тело+" <th scope='col'> Дата пароля</th>";
тело=тело+" <th scope='col'> В списке выбора</th>";
тело=тело+" <th scope='col'> Вид запуска</th>";
тело=тело+" <th scope='col'> Роли с доступом в 1С</th>";
тело=тело+" </tr>";
тело=тело+" </thead>";
тело=тело+" <tbody>";
тело=тело+данные;
тело=тело+" </tbody>";
тело=тело+"</table>";
emails=Новый Массив();
emails.Добавить("цкуаука@куауцкацук.ru");
для каждого email из emails цикл
если email<>"" тогда
попытка
ПараметрыПисьма = Новый Структура("Кому, Тема, Тело,ТипТекста", email, "Подозрительные учётки в БД: "+бд, тело,"HTML");
если бд="укму" тогда
УчетнаяЗаписьПочты = РаботаСПочтовымиСообщениями.ПолучитьСистемнуюУчетнуюЗапись();
РаботаСПочтовымиСообщениями.ОтправитьСообщение(УчетнаяЗаписьПочты, ПараметрыПисьма);
иначеесли бд="куепуке" тогда
УчетнаяЗаписьПочты = РаботаСПочтовымиСообщениями.ПолучитьСистемнуюУчетнуюЗапись();
РаботаСПочтовымиСообщениями.ОтправитьСообщение(УчетнаяЗаписьПочты, ПараметрыПисьма);
иначеесли бд="укепуке" тогда
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись(),ПараметрыПисьма);
иначеесли бд="куепук" тогда
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись(),ПараметрыПисьма);
конецесли;
исключение
ЗаписьЖурналаРегистрации("Ошибка", УровеньЖурналаРегистрации.Ошибка,,ОписаниеОшибки(),);
конецпопытки;
конецесли;
конеццикла;
конецесли;
УстановитьПривилегированныйРежим(ложь);
КонецПроцедуры