マルチドメインのアクセス権について

160 views
Skip to first unread message

Pierre Ganasonic

unread,
Jul 9, 2013, 3:52:08 AM7/9/13
to ez-publi...@googlegroups.com
こんにちは

現在CMSを調査しています。
eZ Publishはマルチドメインに対応しているようですが、そのアクセス権について質問です。
以下のようにA、B、C、Dサイトを複数作ったとします。

172.23.254.221/ezpublish/
 ┣━A (172.23.254.221/ezpublish/a_site
 ┣━B (172.23.254.221/ezpublish/b_site
 ┣━C (172.23.254.221/ezpublish/c_site
 ┗━D (172.23.254.221/ezpublish/d_site

A、B、C、DのサイトはSuperAdminが全てのサイトを管理(メンバー追加・削除、編集etc)できる。
A、B、C、Dのサイトはログインしなくても簡単な情報は閲覧できる。
各サイトにはそれぞれメンバーが登録される。
A、B、C、Dのサイトにログインすれば秘密の情報を閲覧できる。
AのサイトのメンバーはBのサイトのユーザーでなければ秘密の情報は閲覧できない。
A、B、C、Dのサイトは各サイトのAdminが管理できる。
各サイトのAdminはそのサイトのメンバーの追加・削除や編集ができる。
それぞれのAdminは別のサイトを管理できない。
 →たとえばAの管理者はBのサイトのメンバーの追加・削除や編集はできない。
SuperAdminはAdminを追加・削除できる。

eZ Publishではこのよなアクセス権の設定はできますでしょうか?

以上よろしくお願いします。


Eric Sagnes

unread,
Jul 9, 2013, 5:56:47 AM7/9/13
to ez-publi...@googlegroups.com, Pierre Ganasonic
Pierreさん

このような設定はeZ Publishでできます。

eZ Publishでマルチサイトを実装する場合は各サイトにサイトアクセスを使います。

サイトアクセスの勉強会のスライドにもマルチサイトの事を紹介しますので、
ぜひ参考にしてください。 [1]

マルチサイトをする場合に2つの方法があります。
a/ サイト毎に別なデータベースを利用
b/ 全サイトで同データベースを利用する

今回のニーズは「SuperAdminが全てのサイトを管理」となりますので、
bはいいと思います。

bの実装の場合はコンテンツツリーのルートノード直下が各サイトのトップとなります:
===
ルートノード
- サイトAトップ
- サイトAコンテンツ
- サイトBトップ
- サイトBコンテンツ
- サイトCトップ
- サイトCコンテンツ
- サイトDトップ
- サイトDコンテンツ
===

各サイトトップがトップページになるようには、各サイトアクセスのsite.iniを下記の様に編集します
===
[SiteAccessSettings]
# すべてのURLに追加する部分
PathPrefix=<サイトトップAのURLアリアス>
[SiteSettings]
# サイトのトップページのURL
IndexPage=<サイトトップAのURLアリアス>
# ルートノードの深さ
RootNodeDepth=2
===
ニーズがあれば、匿名ユーザの設定やセッション名の設定もできます。

ユーザ設定については、ユーザのツリーを下記の様につくるのはおすすめです。
===
- 全体管理者
- サイトA
 - 管理者
 - メンバー
- サイトB
 - 管理者
 - メンバー
....
===

ロールの設定は割り当ての時のサブツリー制限を使えば、
同じロールを各サイトで再利用することもできます。

ロールについては資料がありますので、ぜひ参考にしてください。[2]

それ以外にいろいろ細かい設定もできますが、
基本の実装方法はサイトアクセスでサイトを切り分け、
サイトアクセスの設定で調整します。

よろしくお願いします。

[1] - http://www.slideshare.net/ericsagnes/seminar-201205
[2] - http://www.slideshare.net/ericsagnes/seminar-201207

--
Eric Sagnes
サニエ エリック

signature.asc

Pierre Ganasonic

unread,
Jul 9, 2013, 8:52:48 PM7/9/13
to ez-publi...@googlegroups.com, Pierre Ganasonic
Ericさま

早々の返信ありがとうございました。
権限についてやりたいことができそうなのでeZ Publishを使ってみたいと思います。
使うに当たってたくさん不明な点が出てくると思いますが
そのときはよろしくお願いします。
まずはマルチドメインを構築して各サイトに管理者を設定してみます。



2013年7月9日火曜日 18時56分47秒 UTC+9 Eric:

Pierre Ganasonic

unread,
Jul 10, 2013, 12:25:59 AM7/10/13
to ez-publi...@googlegroups.com, Pierre Ganasonic
Ericさま

コンテンツツリーのルートノード直下に各サイトのトップを作成するときの質問です。

===
ルートノード
 - サイトAトップ
   - サイトAコンテンツ
 - サイトBトップ
   - サイトBコンテンツ

===

このように各サイトを作成するときは、FrontPageを追加するのでしょうか?
それともFolderでしょうか?

また、各サイトトップがトップページになるようにする設定は各サイトアクセスのsite.iniを編集するようですが少し分かりません。
管理者画面でルートノードAdmin HomeにFolderでA_homeとB_homeを追加しました。
===
Admin Home
 - A_home
   - サイトAコンテンツ
 - B_home
   - サイトBコンテンツ
===
この場合のA_home、A_homeのURLはどのようになるのでしょうか?
具体的な例では管理者画面におけるコンテンツツリーのA_homeのURLは以下です。
http://172.16.32.91/cms/ezpublish5_2013.06/ezpublish_legacy/index.php/ezwebin_site_admin/A_home

Samba経由で「\\172.16.32.91\www\cms\ezpublish5_2013.06\ezpublish_legacy\settings\siteaccess」に
ezwebin_siteをコピーしてA_homeにリネームしてsite.ini.append.phpを編集するときに以下の値はどうなりますでしょうか?
「サイトトップAのURLアリアスは」以下の値になりますか?
http://172.16.32.91/cms/ezpublish5_2013.06/ezpublish_legacy/index.php/ezwebin_site/A_home
それとも
http://172.16.32.91/cms/ezpublish5_2013.06/ezpublish_legacy/index.php/A_home
でしょうか?

===

[SiteAccessSettings]
# すべてのURLに追加する部分
PathPrefix=<サイトトップAのURLアリアス>
[SiteSettings]
# サイトのトップページのURL
IndexPage=<サイトトップAのURLアリアス>
# ルートノードの深さ
RootNodeDepth=2

また、SiteAccessSettingsにはSiteURLというkeyがありますが、IndexPageと同じでしょうか?

質問ばかりで申し訳ありません。
文献が少なくて...


2013年7月9日火曜日 18時56分47秒 UTC+9 Eric:

Eric Sagnes

unread,
Jul 11, 2013, 10:16:35 PM7/11/13
to ez-publi...@googlegroups.com
Pierreさん

返事おそくなりました。

設定を説明するにはサンプルがあるのは一番簡いいと思いますので、
サンプルを作って見ました。

下記のリンクにあります:
https://bitbucket.org/ericsagnes/ezpublish-multisite/overview

ダウンロードは下記のコマンドでできます:
git clone g...@bitbucket.org:ericsagnes/ezpublish-multisite.git

エクステンションベースで実装していますので、
コードはextension/multisiteに入っています。

https://bitbucket.org/ericsagnes/ezpublish-multisite/src/bd7f24798f29a4077d968a086793a6028fa83cd3/extension/multisite?at=master

エクステンション内に「related_files」というフォルダーがあり、
その中にDBのダンプとバーチャルホストの例があります。
ホストベースのマルチサイトなので、ホストファイルの変更も必要となります。

URLは以下の設定になっています
http://site_a.multisite.ez.arch/ -> サイトA
http://site_b.multisite.ez.arch/ -> サイトB
http://multisite.ez.arch/back/ -> 管理画面

https://bitbucket.org/ericsagnes/ezpublish-multisite/src/bd7f24798f29a4077d968a086793a6028fa83cd3/settings/override/site.ini.append.php?at=master#cl-52
にはサイトアクセスのマッチングルールを設定します。

後はmultisiteエクステンションで書くサイトアクセスの設定をします。
サイトAの場合は
https://bitbucket.org/ericsagnes/ezpublish-multisite/src/bd7f24798f29a4077d968a086793a6028fa83cd3/extension/multisite/settings/siteaccess/site_a/site.ini.append.php?at=master
サイトBの場合は
https://bitbucket.org/ericsagnes/ezpublish-multisite/src/bd7f24798f29a4077d968a086793a6028fa83cd3/extension/multisite/settings/siteaccess/site_b/site.ini.append.php?at=master

登録されているユーザは:
全サイト管理者 id: admin pw: ezpublish
サイトA管理者 id: a_admin pw:sitea
サイトB管理者 id: b_admin pw:siteb

細かい設定はしていないですが、コンテンツツリーの権限はできています。
ユーザ管理の権限を追加する場合にコンテンツ管理とユーザ管理の権限を2つ作り、
サブツリー制限で割り当てれば大丈夫です。

よろしくお願いします。

> n_site/A_home それとも

signature.asc

Pierre Ganasonic

unread,
Jul 15, 2013, 9:30:39 PM7/15/13
to ez-publi...@googlegroups.com
Ericさま

返信おそくなって申し訳ありません。
マルチサイトの設定の仕方についていろいろアドバイスを頂きありがとうございました。
これを参考に検証してみます。

また何かありましたらよろしくお願いします。


2013年7月12日金曜日 11時16分35秒 UTC+9 Eric:
Reply all
Reply to author
Forward
0 new messages