サイト管理用の設定 [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