サイト管理用の設定 [Plone3.3]
各サイトの管理者用にサイト管理者グループを定義する。このグループには全ての権限(Managerロール)を与えず、Editor、Contributor、Reviewerロールに加え、新たにSiteAdmin ロールを定義して必要な権限を与える。このグループメンバーは、サイトのすべてのコンテンツ編集に加え、主にグループメンバーの変更、共有の変更ができ、ZMIへのアクセスはできないものとする。
サイト管理者グループの作成
SiteAdminロールの権限ではPloneのサイト設定にはアクセスできないため、サイト管理者グループのメンバー変更専用のテンプレートを定義する。
サイト管理者グループのメンバー管理用テンプレートの作成
portal_skins/plone_prefs/prefs_group_members をスキンフォルダにコピーし、テンプレートの id を prefs_site-admin-group として編集する。
- <div id="region-content" class="documentEditable">
+ <div>
:
- <ul class="contentViews">
+ <ul class="contentViews" tal:condition="nothing">
:
- <div class="contentActions">
-
- </div>
:
- <h1 class="documentFirstHeading"
- i18n:translate="heading_group_members_of">
- Members of the <span tal:content="grouptitle" tal:omit-tag=""
- i18n:name="groupname">Groupname</span> group
+ <h1>
+ <span tal:content="grouptitle">Groupname</span>
</h1>
- <a href=""
- class="link-parent"
- tal:attributes="href string: $portal_url/prefs_groups_overview"
- i18n:translate="label_up_to_groups_overview">
- Up to Groups Overview
- </a>
:
<input type="submit"
class="searchButton"
name="form.button.FindAll"
value="Show all"
i18n:attributes="value label_search_large;"
- tal:condition="not:site_properties/many_users" />
+ tal:condition="nothing" />
:
<tal:block tal:condition="python: not isGroup(this_user)">
<td>
<img src="user.gif" alt="" />
- <a href="" tal:attributes="href python:'prefs_user_details?'
- + mq(userid=this_user.getId())"
- tal:content="this_user/getId | default">
- <span i18n:translate="link_username_not_available">
- username not available
- </span>
- </a>
+ <span tal:content="python:this_user.getProperty('fullname')">
+ </span>
</td>
</tal:block>
:
<tal:block tal:condition="python:not isGroup(this_user)">
<img src="user.gif" alt="" />
- <a href="" tal:attributes="href python:'prefs_user_details?'
- + mq(userid=this_user.getId())"
- tal:content="this_user/getId | default">
- <span i18n:translate="link_username_not_available">
- username not available</span>
- </a>
+ <span tal:content="python:this_user.getProperty('fullname')">
+ </span>
</tal:block>
また、Actions タブを開き Edit Default Actionss の項目で Argument を次のように変更する。
tring:prefs_group_members を string:prefs_site-admin-group に変更 tring:prefs_group_members_add を string:prefs_site-admin-group_add に変更 tring:prefs_group_members_delete を string:prefs_site-admin-group_delete に変更
サイト管理者グループのメンバー追加用スクリプトの作成
portal_skins/plone_prefs/prefs_group_members_add をスキンフォルダにコピーし、テンプレートの id を prefs_site-admin-group_add に変更する。Actions タブを開き Edit Default Actionss の項目で Argument を次のように変更する。
string:prefs_group_members を string:prefs_site-admin-group に変更
サイト管理者グループのメンバー削除用スクリプトの作成
portal_skins/plone_prefs/prefs_group_members_delete をスキンフォルダにコピーし、テンプレートの id を prefs_site-admin-group_delete に変更する。Actions タブを開き Edit Default Actionss の項目で Argument を次のように変更する。
string:prefs_group_members を string:prefs_site-admin-group に変更
サイト管理者グループのメンバー管理ページへのリンクを作成する
このテンプレートにアクセスできるように、工学ではフッタにリンクを作成する。SiteAdminロール、またはManagerロールがあれば表示されるようにする。
+ <div class="footer-setup">
+ <a tal:define="user python:context.portal_membership.getAuthenticatedMember()"
+ tal:attributes="href python:context.portal_url() + '/prefs_site-admin-group?groupname=site-admin-group'"
+ tal:condition="python:user.has_role('SiteAdmin') or user.has_role('Manager')"
+ i18n:translate="Site Setup">
+ Site Setup
+ </a>
+ </div>
<div class="footer-login" ...
SiteAdminロールの追加
ZMI で Plone のルートの Security タブを開き User defined roles から SiteAdmin を追加する。
SiteAdminロールの設定
ZMI で Plone(≠Zope) のルートの Security タブを開き、SiteAdmin ロールに次の権限を与える。
Add portal member Manage users View Groups
このようにすることで SiteAdmin ロールを持つユーザが、ユーザの追加やグループメンバーの変更等を行うことができる。
サイト管理者グループの作成
Plone に管理者でログインし、ユーザとグループの管理より「サイト管理者グループ」を追加する。
名前 : site-admin-group タイトル : サイト管理者グループ
サイト管理者グループのロール設定
Plone に管理者でログインし、ユーザとグループの管理より上記「サイト管理者グループ」に与えるロールを設定する。グループのユーザ変更および、コンテンツの追加・編集を可能とするため次のロールを与える。
Contributor Editor Reviewer SiteAdmin
共有タブをManagerかSiteAdminロールのみに表示
Plone のルートの Securities を開き
Sharing page: Delegate roles を変更する。
Acquire? : OFF Manager : ON SiteAdmin : ON その他 : OFF
共有タブからSiteAdminがContributorロールも設定できるようにする
Plone のルートの Securities を開き Sharing page: Delegate Contributor role を変更する。
SiteAdmin : ON
共有タブからSiteAdminがReviewerロールも設定できるようにする
Plone のルートの Securities を開き Sharing page: Delegate Reviewer role を変更する。
SiteAdmin : ON

