2016-10-10 9 views
3

У меня есть тип содержимого ловкости с его собственным рабочим процессом, и я пытаюсь получить ссылку на историю, чтобы отображаться в окне просмотра, которое дает название, автора, дату, созданную/измененную.Plone - В виллетте с информацией о названии/авторе, почему ссылка на историю скрыта для пользователей без роли владельца?

В шаблоне моего типа контента, я есть:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 
    xmlns:tal="http://xml.zope.org/namespaces/tal" 
    xmlns:metal="http://xml.zope.org/namespaces/metal" 
    xmlns:i18n="http://xml.zope.org/namespaces/i18n" 
    lang="en" 
    metal:use-macro="context/main_template/macros/master" 
    i18n:domain="my.product"> 

    <body> 

     <metal:content-core fill-slot="content-core"> 
      <metal:content-core define-macro="content-core"> 

      .... 

      </metal:content-core> 
     </metal:content-core>   
    </body> 

</html> 

Что странно, что, если я пойду к самой истории страницы с помощью ручного ввода URL, история показывает, отображающее создания, изменения и рабочий процесс изменения. Ролям, имеющим доступ к истории, присваивается обзор содержимого портала (роли, которые могут одобрять/отклонять) и запрос (роли, которые могут отправляться на проверку), но сама ссылка не появится.

Есть ли необходимость в отдельном разрешении?

Редактирование: Я взглянул на plone.app.layout.viewlets.content, который я вижу в HistoryByLineView в функции, называемой show_history, которая проверяет, имеет ли пользователь разрешение «CMFEditions: Access previous versions» и возвращает False, если они этого не делают. В шаблоне history_view это, как представляется, называется, показывать или нет ссылку на представление истории. Это разрешение, которое я действительно ищу?

Редактировать: Моя версия Plone - это 4.3.11.

ответ

4

Я посмотрел на plone.app.layout.viewlets.content, который я вижу в в HistoryByLineView функцию под названием show_history, который проверяет, чтобы увидеть, если пользователь имеет разрешение «CMFEditions: доступ к предыдущим версиям» и возвращает False, если они этого не делают. В шаблоне history_view это, как представляется, называется, показывать или нет ссылку на представление истории. Это разрешение, которое я действительно ищу?

Я думаю, что вы правы. В CMFEditions, that permission is assigned to Manager and Site Administrator only

AccessPreviousVersions = 'CMFEditions: Access previous versions' 
setDefaultRoles(AccessPreviousVersions, ('Manager', 'Site Administrator')) 

Вы можете попытаться назначить его на другую роль (например, Reviewer или Member) в /manage_access.

+0

Это будет ошибка, не так ли? –

+1

Спасибо за ваш ответ! Я ценю это. manage_access действительно удобен для этого случая. Хотя я нахожу их использование разрешения немного странным. Увидев, как я могу получить доступ к странице истории без CMFEditions: получить доступ к предыдущим версиям, я думаю, что было бы более разумно, если бы они использовали те же разрешения, что и в списке просмотра истории, чтобы просмотреть внесенные изменения. Я могу понять, что есть необходимость скрыть History Viewlet. –