Вопрос

Апдейт от имени Системного администратора

Добрый день.

Создал несколько дробных полей в заказе, которые никто не может видеть, кроме нескольких людей. Как мне правильно на каждом событии OrderProductSaved сделать пересчет этих полей, если у текущего пользователя нет доступа к этим полям?

в ESQ-запрос передать не UserConnection, а админа? И как это правильно сделать?

Спасибо.

Нравится

6 комментариев
Лучший ответ

Alex Zaslavsky,

Предлагаю пользоваться классами Select для получения колонок и Update для обновления. В этом случае права не будут проверяться.

Добрый день!

Если не нужно генерировать сигнал от изменения этих полей, то делайте обновление классом Update, а не ESQ, тогда проверки на права не будет

Сидоров Александр В.,

Нужно из заказа скрытые колонки, от которых зависит пересчет, потянуть с помощью ESQ-запроса, пересчитать остальные колонки и проапдейтить, что делать в этом случае?

 

Alex Zaslavsky,

Предлагаю пользоваться классами Select для получения колонок и Update для обновления. В этом случае права не будут проверяться.

Можно получить системное UserConnection и работать с ним:

UserConnection _userConnection = (HttpContext.Current.Application["AppConnection"] as AppConnection).SystemUserConnection;

Или, если уже есть обычное UserConnection:

UserConnection _userConnection = UserConnection.AppConnection.SystemUserConnection;

Либо же работать с классами Select и Update, как посоветовали выше.

Зверев Александр,

Я вот пробовал второй вариант, как Вы написали и потом при добавлении продуктов на деталь "Продукты в заказе", у меня висит вечная загрузка, чуть позже скину пример кода, возможно я где-то ошибся.

C#-скрипты выполняются на сервере. Для выяснения причины, если сайт развёрнут локально, можно подключиться в Visual Studio и пошагово отладить их выполнение.

Показать все комментарии