新しいページやフォルダを作りセキュリティー設定を行う
shimizukawa
Webサイトが1ページだけでは寂しいので、新しいページを作ってみましょう。
hello_htmlオブジェクトを作る
それでは、ルートフォルダにDTML Documentオブジェクトを作成してください。IDとTitleは例として以下を設定します。
| ID: | hello_html |
|---|---|
| Title: | Hello |
作成したhello_htmlの編集画面に以下のコードを書いてSaveします:
<dtml-var standard_html_header> <h1>&dtml-title_or_id;</h1> <dtml-var neko> <dtml-var standard_html_footer>
共通部分を再利用しているため、これだけの短いコードで一つのページが完成しました。
フォルダを作ってhello_htmlを移動する
次はフォルダを作成します。作り方はDTML Documentなどと同様にドロップダウンメニューからFolderを選択します。フォルダ新規作成画面には、DTML Document作成時と異なり、Create public interfaceとCreate user folderのチェックボックスがあります。それぞれ、index_htmlページと、フォルダ以下専用のアカウント管理機能の用意をしてくれますが、今回は必要ありません。IDとTitleは例として以下を設定します。
| ID: | subfolder |
|---|---|
| Title: | サブフォルダ |
フォルダを作成したら、そのフォルダ内にページを用意しましょう。今回は、先の例でルートフォルダに作成済みのhello_htmlをsubfolderへ移動します。
オブジェクトを移動するには、ルートフォルダでhello_htmlの左横にあるチェックボックスをチェックし、ページ下端の Cut ボタンを押します。ボタンを押しても画面上はあまり変化がありませんが、Zope内部で(正確にはcookieに)状態が保存されています。次に、subfolderへ移動して Paste ボタンを押してください。subfolderフォルダにhello_htmlオブジェクトが表示されたと思いますので、viewでページの表示を確認するか、以下のURLでページを表示してみましょう:
http://localhost:8080/subfolder/hello_html
hello_htmlはstandard_html_header等を呼び出していますが、subfolderにはstandard_html_header等はありません。これらは獲得(acuisition)機能により親フォルダのものが利用されています。このように、共通のパーツを親フォルダに置くことによって全てのサブフォルダで再利用することが出来るようになります。
フォルダにセキュリティー設定を行う
最後に、作成したフォルダの閲覧権限を設定しましょう。通常はだれてもページを表示することが出来るようになっていますが、表示するための権限を 認証済みユーザー のみに制限する設定を行います。
セキュリティー設定のために、subfolderのSecurityタブを表示してください。
Securityタブの各行は様々な機能を表しており、各列はその機能を実行するために必要な権限を表しています。Zopeではこの権限をRoleと呼びます。各Roleには以下の役割があります。
| Anonymous: | 認証していない全てのアクセスに与えられます |
|---|---|
| Authenticated: | 認証済みの全てのアクセスに与えられます |
| Manager: | 認証したユーザーがManagerのRoleを持っている場合に与えられます |
| Owner: | 認証したユーザーが所有しているオブジェクトへのアクセス時に与えられます |
また、左端の Acquire は、上位フォルダのセキュリティー設定を継承するかどうかのチェックボックスです。このフォルダのセキュリティー設定を親フォルダから独立した設定にしたい場合はチェックボックスをOFFにする必要があります。
セキュリティー設定の例として、View(ページを閲覧する機能)に必要な権限をAuthenticatedのみに制限します。View機能の行のチェックボックスから、AcquireをOFFにし、AuthenticatedをONにしてページ下端の Save Changes ボタンを押してください。
これでこのsubfolder以下の閲覧は認証無しでは行えなくなりました。確認のためには、別のブラウザを使うか、今使っているブラウザを起動し直してください。
Note
このフォルダにUser Folderオブジェクトを追加するとacl_usersフォルダが作成され、このフォルダ以下でのみ有効なユーザーを管理することが出来るようになります。


