2005/05/21 作成
2007/09/29 更新
| 以下の記述は、Plone 2.0.x をベースに書いているので、記述のほとんどが現在では正しくないと思います。参考のために残しておきますが、内容の正当性についてはよく検討してください。(2007/09/29) |
Ploneについて気づいたことを取り留めなく書いてみる。人に読んでもらうことを考えてないので、意味不明な点があるかも。
カスタマイズについては Plone カスタマイズメモ 参照。
内部的には、Group名に相当するユーザーを作っている。
Groupに参加させたい Userに Group の権限を与える(どうやって?)ことにより、
Groupに User が属するという概念を実現している。
Ploneの共有タブでのファイルの共有は、その Group(という内部的にはユーザー)や
純粋な意味のユーザーに Proxy Roleで、所有者(Owner)権限を与えることによって行っている。
($portal_url/acl_users/Users/acl_users/manage_main でできるけど)
Group の数だけ Role を作成しなくても良いので便利。
Ploneでは、Groupを作った時に、(Groupを作った Manager が Owner となって)$portal_url/groups/[グループ名] というフォルダができる(portal_groups で設定の変更ができる)。
そのフォルダは、対応するグループが所有者として共有(Ownerの Local Role
を付加)されているので、デフォルトでグループのメンバーがコンテンツを共有できる。
(問題点)
グループ Foo に所属する Alice が $portal_url/groups/Foo にドキュメントを作成した後に、Aliceが異動で グループ Foo
を外されても、引き続きドキュメントの所有者は Aliceなので、編集や Workflowの移動ができてしまう。
コンテンツに Local Roleを割り当てるのではなく、所有者自体を変更する方法はないかの?
Member が最初にログインすると、$portal_url/Members/[ユーザー名] というフォルダ
ができるが、メンバー名のフォルダを作るかどうかと、「Members」 というフォルダ名
は portal_membershipで変更できる。
他の acl_users で割り振られているユーザーの Role と Ploneでの Role
(Member,Reviewer,...)のマッピングが、portal_membershipできる。
ユーザーに直接 Roleを与えるのではなく、ユーザーをグループに所属させて、
グループに Roleを設定するようになっている。
デフォルトでは、Event だけだけど、portal_calender の Configureタブで設定できる
ZMI のセキュリティタブで Set own properties の Authenticated のチェックを OFF。
ただし、これだと自分のパスワードまで変えられなくなってしまう。
Set own password のチェックを OFFにすると、パスワードだけが変えられなくなる。
バランスの取れた配色の skinを一から作るのは作るのは大変なので、これをベースにカスタマイズすると良いかも。
お金を出せば、この会社でオーダーできるらしい(http://skins.quintagroup.com/gallery)。
Plone では、フォーム変数の値チェックができる Controller Page Template オブジェクトと
Controller Python Script オブジェクトが用意されている。
それらのオブジェクトでは、Validation タブで、値チェックをする Controller Validator オブジェクトを指定する。
また、Actions タブで、Validationがうまくいった場合やうまくいかない場合に、
次にどのような動作をするか指定する。
Controller Validator オブジェクトは、status という変数を持つ点だけが Python Scriptと 異なり status
に、値チェックをした結果を入れる。
サポートページ http://plone-book.agmweb.ca/
他に、SilverCity http://silvercity.sf.net/ のインストールが必要
validators=() の指定で入力の値チェックをする validator
を指定できるみたいだけど、値を設定する前にオブジェクトが作成されるので注意。
(validationの範囲外の値を持つオブジェクトが存在することになる)
あと、Range Validator はうまくいかないみたい(
http://www.liris.org/zope/blog/419)。