Отключить промежуточное ведение журнала для определенных элементов в Kentico

Меня смущает сценарий прикрепленного образа... Мне нужно отключить промежуточное ведение журнала для пользователей с ролью externalrole. Итак, в этом случае мне нужно отключить ведение журнала для 3 элементов.

введите здесь описание изображения

Это означает, что мне нужно сделать 3 проверки. Мне нужна помощь с проверкой №1 и №2.

1: если пользователь является внешним пользователем, то не входить в систему. Мне нужна помощь с проверкой второй части, здесь IsExternal = true.

2: если внешний пользователь добавлен на сайт, то не логиниться. Какой чек будет в этом случае?

3: если роль внешняя, то не логировать. Этот чек хороший.

Фрагмент кода:

var obj = e.Settings.InfoObj;

          if (
                (obj.ObjectTye == PredefinedObjectType.USER && (Check IsExternal ??????)) ||
                (check that external user did not get added to the website – how to make this check????) ||
(obj.ObjectType == PredefinedObjectType.ROLE && obj.ObjectCodeName.StartsWith("externalrole"))


)

           {

               e.Settings.LogStaging = false;

           }

person learning...    schedule 24.07.2014    source источник


Ответы (1)


У вас есть объект, который вы уже используете - var obj = e.Settings.InfoObj;

Итак, из объекта "e" вы можете получить идентификатор пользователя (e.Settings.InfoObj.ObjectID) и по идентификатору вы можете получить информацию, является ли пользователь внешним и принадлежит ли он сайту, используя стандартный API, где вы получите информацию о пользователе по идентификатору пользователя, затем вы можете проверить, является ли он внешним, а также использовать метод CMS.CMSHelper.CurrentUserInfo.IsInSite(string siteName), чтобы проверить, назначен ли пользователь сайту или нет

если (obj.ObjectTye == PredefinedObjectType.USER) {

UserInfo updateUser = UserInfoProvider.GetUserInfo(e.Settings.InfoObj.ObjectID);

if ((updateUser.IsExternal) || (updateUser.IsInSite("имя сайта")) || (updateUser.IsInRole("roleName")) { .... }

person fixo    schedule 24.07.2014