2012-04-23 1 views
1

У меня есть пояснение, связанное с обработкой пользовательского доступа на пользовательской странице с помощью DLL-документов Interops.Tridion 2009 - Использование Interops на пользовательской странице. Пользователь должен действовать как-то вроде администратора.

Ниже приведен сценарий: -

  1. ABC user не имеет какое-либо доступ на CM (Примечание: пользователь ABC является пользователем Tridion)
  2. Если ABC пользователя доступ к пользовательской странице, пользователь должен получить олицетворять с пользователем администратора
  3. Теперь пользователь ABC будет создавать/обновлять компоненты/страницы и публиковать компоненты/страницы
  4. но проблема в истории компонентов/страницы показывает название admin user имени, но я хочу, чтобы записать с hanges с именем ABC user

Как я могу добиться этого?
OR
Без использования олицетворения, есть ли лучший способ достичь этого?

ответ

4

Мне интересно, почему вы хотите это сделать. Когда вы олицетворяете пользователя ABC пользователем Admin, пользователь ABC может делать что угодно в системе.

Почему бы вам не добавить пользователя ABC в систему CM и предоставить пользователю необходимые права и разрешения.

Чтобы записать изменения с именем пользователя ABC в истории, пользователь должен быть пользователем CM, насколько я знаю.

+0

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

+0

Если мы выдаем себя за пользователя Admin, изменения записываются в имя пользователя Admin, но не в имени пользователя ABC. –

+0

«так как это критерии» не является причиной. В чем причина, по которой вы не можете дать человеку доступ? Это вопрос домашнего задания? –

2

Я уверен, что вы пытаетесь сделать это невозможно, как это предложил @Bappi. У вас есть 2 варианта при выполнении действия над элементом Tridion. Либо сделайте это как кто-то с правами на выполнение действия ИЛИ олицетворяйте себя как пользователь, у которого есть права (т. Е. Ваш пользователь admin). CMS будет хранить системные метаданные о том, какой пользователь выполнил действие (это пользователь, которого вы видите, кто создал или изменил компонент). Эти данные не могут (и не должны) быть перезаписаны или изменены с помощью API.

Если вам действительно нужно знать, кто выполнил это действие, либо дайте им права на это (это похоже на странное требование, когда вы даете им это отверстие в петле безопасности, возможно, вы можете объяснить больше о логике это), или, возможно, добавить поле в вашу схему под названием «Автор» и использовать свою пользовательскую страницу для заполнения его именем пользователя ABC.

Если это не жизнеспособный вариант, вы можете также рассмотреть возможность предоставления пользователю ABC какой-либо временной папки в целевой публикации, где они могут сделать компонент под своей собственной учетной записью (все еще через пользовательскую страницу), чтобы вы получили историю, а затем олицетворять пользователя Admin, чтобы переместить его в нужное место.

1

Как насчет установки разрешений на уровень публикации на лету?

  1. При загрузке пользовательской страницы задайте разрешение пользователю на конкретные публикации.
  2. По завершении действия удалите разрешение пользователя.

Но, я думаю, все еще есть отверстие в петле.

Пока эта пользовательская страница работает, если пользователь обращается к Content Manager, они могут видеть публикации, и в этот момент они могут выполнять требуемые действия.