任意のページごとの閲覧・編集制限†
- ページ: BugTrack
- 投稿者: Ynak
- 優先順位: 緊急
- 状態: 完了
- カテゴリー: 本体新機能
- 投稿日: 2003-06-06 (金) 19:09:18
- バージョン:
メッセージ†
PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限でまとめた機能を本体に取り込んで頂くことは出来ませんか?
本体がバージョンアップするたびに、改造を反映するのが面倒なの
で…。
ただ、既存の関数であるcheck_editable, edit_authのシグネチャが変更になるので、それらを使っているいくつかのプラグイン*1はそのままだとまずいかもしれないですね。
- edit_authの呼び出しを(標準のプラグインだけでなく)多数のプラグインで行なっているので、edit_authの呼び出しに影響のないように仕様変更せずに取り込んでください。 -- reimy
- edit_authだけで良いですか?であれば、edit_authの引数にデフォルト値を設定するだけで互換性を保てそうな気がします。ちょっと調べてみます。 -- Ynak
- またシグネチャをちょっと変えました。edit_auth, check_editableともに第2、第3引数を指定できるようにしました。両者ともデフォルト値を設定してあり、デフォルト値(true)の場合は現状の振る舞いと変わらないようになっているつもりです。修正点は例のページに再度アップしました。 -- Ynak
- cvsに投入しました。 -- ぱんだ
- 変数名が変わるなど、互換性が維持されていない… -- reimy
- 日本語メッセージが直書きされているので、lang=enのとき、化ける。 -- reimy
- 変数名の件は、pukiwiki.ini.phpの$edit_auth_usersが$auth_usersになっている、ということでしょうか?$edit_auth_usersを使用している部分はfunc.inc.phpにカプセル化されていたので問題ないと判断していましたが、まずかったでしょうか? -- Ynak
- どこで使われているかではなく、globalな変数名がころころ変わるのはまずいってことでは? 自作プラグインを作っている人にとっては。
- pukiwiki.ini.phpの変数は、それ自体がAPIだってことですかね。
それなら確かにまずいですね。互換性を保つために、$edit_auth_users自体も残した
方がいいのでしょうか。--Ynak
- あと、日本語メッセージの件ですが、include, calendar_viewer, pcommentのことですよね?元々日本語メッセージの埋め込みがされていたようでしたのでこれも問題ないかと思っていましたが、まずかったでしょうか? -- Ynak
- ja.lng.en.lngで定義するか、プラグインの中のplugin_xxxx_init()の中で定義することになってたはず。
- そうでしたか。結構適当にいじりながら作っていたので、そういう規約をチェックしてませんでした。すみません。--Ynak
- あ、遅れましたが、ぱんださんどうもありがとうございました。 -- Ynak
- 結局、従来通りの認証方式での編集制限の場合、pukiwiki.ini.phpをどのように設定すればいいんですか? 変更したら変更したで、そのあたりのサポートをきちんとよろしく。 -- reimy
- 従来通りの認証方式での編集制限が効かなくなり、困ってます。元に戻してください。 -- reimy
- ご迷惑をおかけしています。従来(edit_auth単体だったころ)と同様の「編集をuser/passで制限、閲覧は制限なし」を実現するための設定は以下のようになります。お試しください。 -- ぱんだ
- pukiwiki.ini.php
- $edit_auth_usersを$auth_usersに変更('ユーザ名'=>'パスワード')
$auth_users = array(
'hoge' => 'fuga'
);
- $auth_method_type を "pagename" に
$auth_method_type = "pagename";
- $read_authを0に、$read_auth_pagesはそのまま(使用しません。)
$read_auth = 0;
$read_auth_pages = array(...);
- $edit_authを1に
$edit_auth = 1;
- $edit_auth_pagesを以下のように指定('すべてのページにマッチするパターン' => 'ユーザ名')
$edit_auth_pages = array(
'/.*/' => 'hoge',
);
- $search_authを0に
$search_auth = 0;
- メッセージをlngまたはplugin_initに移動する件はもうしばらくのご猶予を。 -- ぱんだ