РолиПользователя.Удалить

Методы · Delete

Удаляет указанную роль из коллекции используемых ролей пользователя.

Синтаксис

Удалить(<Роль>)
Полное описание, параметры и ограничения

РолиПользователя.Удалить (UserRoles.Delete)

РолиПользователя (UserRoles)

Удалить (Delete)

Доступен, начиная с версии 8.0.

Синтаксис:
Удалить(<Роль>)
Параметры:

<Роль> (обязательный)
Тип: ОбъектМетаданных: Роль.
Удаляемая роль.
Описание:

Удаляет указанную роль из коллекции используемых ролей пользователя.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Подготовить роли незаписанного пользователя

Добавляем собственную учебную роль, проверяем членство и удаляем её из черновика. Коллекция ролей реального пользователя не используется.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.

  2. Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.

  3. СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.

  4. Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.

  5. В учебной конфигурации создайте роль УчебноеЧтение с правом чтения только собственного учебного справочника. Не используйте ПолныеПрава.

УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
    ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
РольЧтения = Метаданные.Роли.Найти("УчебноеЧтение");
Если РольЧтения = Неопределено Тогда
    ВызватьИсключение "Создайте только собственную учебную роль УчебноеЧтение";
КонецЕсли;
Черновик.Роли.Очистить();
Сообщить(Не Черновик.Роли.Содержит(РольЧтения));
Черновик.Роли.Добавить(РольЧтения);
Сообщить(Черновик.Роли.Содержит(РольЧтения));
Черновик.Роли.Удалить(РольЧтения);
Сообщить(Не Черновик.Роли.Содержит(РольЧтения));
Черновик.Роли.Добавить(РольЧтения);
Черновик.Роли.Очистить();
Сообщить(Не Черновик.Роли.Содержит(РольЧтения));
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));

Разбор по шагам

  1. Роль — объект метаданных. Находим точное собственное имя, проверяем отсутствие до передачи в коллекцию.

  2. Содержит получает сам объект роли, а не её подпись или строковый индекс.

  3. Добавить, Удалить и Очистить изменяют только коллекцию нового незаписанного описания.

  4. У реального пользователя роль влияет на доступ вместе с другими ролями и ограничениями; здесь вход и RLS не проверяются.

Как проверить результат

  1. Четыре сравнения членства Истина.

  2. После последней очистки собственная роль не содержится в черновике. Существующие права не поменялись.

  3. Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.

Ожидаемый результат

Отработаны четыре метода РолиПользователя на собственном описании.

На что обратить внимание

  1. Не заменяйте Черновик на ТекущийПользователь или найденного сотрудника: это другой объект и другой риск.

  2. Членство в роли не является доказательством фактического доступа через RLS.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.