メモ
TypeKeyとFOAFによる認証
準備
- Wiki#can_showにパッチを当てる必要
- プラグイン名はとりあえずproject。
FOAF指定ページを用意し、管理者編集・閲覧権限にしておく
- 記述方法
*プロジェクト名,[FOAFのURI],深さ
この指定ページ名自体はconfigか何かに書いておく。プロジェクト名に対応するfoafファイルを管理者は指定する。深さはFOAFのknowsを辿る深度。0ならそのURIに記載されているknowsまでということ。
FOAFのPersonはTypeKeyを利用してプロジェクト名に属するページを閲覧・編集できる(下記参照)。
これで(深さが許される限り)URI及びknowsのseeAlso先のfoafファイルを編集できる人は、そのファイルにknowsに加えることで、新たにプロジェクト名に対応する編集権者を設定できる。
新規ページ作成、編集時
新規ページの先頭に
{{project プロジェクト名}}
としておく。
ページをsaveする際に、projectプラグインが機能し、typekeyによってセッションログに記されたmbox_sha1sumがFOAF指定ページのprojectに対応するuri(及びそのknowsなPersonのseeAlso先)に存在するかチェック。存在すればsave完了。また、管理者編集・閲覧のみで設定される。
- {{project}}を外すと普通のページになる。
- {{project}}はcategoryプラグインと同等の機能を有する。
閲覧時
typekeyによってセッションログに記されたmbox_sha1sumがFOAF指定ページのprojectに対応するuri(及びそのknowsなPersonのseeAlso先)に存在するかチェック。存在すれば閲覧可能。
その他
- 実用のためには認証された人物のデータを一定時間キャッシュしておく。その間はuriをチェックしないでキャッシュをみる。
- save_beforeフックを利用して、projectカテゴリを外すさいには、一度意思確認するようにしたい。