• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Evaluate и @ismember

  • Автор темы MMN
  • Дата начала
M

MMN

объясните почему данная конструкция работает коректно
ChangRoles=Evaluate(|@IsMember("[Admin]";@UserRoles)|,doc)

а вот такая уже почему то не работет
ChangRoles=Evaluate(|@IsMember("[Admin]":"[Pr]";@UserRoles)|,doc)
всегда выдает 0
 
O

Omh

А
Код:
db.QueryAccessRoles
что не позволяет заюзать?
Зачем вообще использовать этот Evaluate в тех местах, где можно прекрасно обойтись без него?

Эта конструкция
Код:
ChangRoles=Evaluate(|@IsMember("[Admin]":"[Pr]";@UserRoles)|,doc)
вернёт единицу, только если у тебя обе роли сразу, а не какая либо из них.
 
N

nvyush

объясните почему данная конструкция работает коректно
ChangRoles=Evaluate(|@IsMember("[Admin]";@UserRoles)|,doc)

а вот такая уже почему то не работет
ChangRoles=Evaluate(|@IsMember("[Admin]":"[Pr]";@UserRoles)|,doc)
всегда выдает 0

Если хочется на собаках, то надо так:
ChangRoles=Evaluate(|!@IsNotMember("[Admin]":"[Pr]";@UserRoles)|,doc)
 
M

morpheus

если именно на собаках то может

( @UserRoles *= "[Admin]":"[Pr]" ) - означает что у юзера есть хотябы одна из этих ролей,

но если ЛС так как привел ОМХ
 
T

TIA

а вот такая уже почему то не работет
ChangRoles=Evaluate(|@IsMember("[Admin]":"[Pr]";@UserRoles)|,doc)
всегда выдает 0
Потому что данная функция вернёт True только если ВСЕ элементы первого параметра есть во втором. См. хелп.
 
O

Omh

Если так приспичило делать через evaluate, то, кмк, вариант Morpheus'a проще и понятнее.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!