カテゴリ | |
---|---|
サマリ | ユーザ認証による書き込み・参照 |
バージョン | 1.4 |
投稿者 | やないっち |
状態 | 完了 |
投稿日 | 2003-11-05 (WED) 10:21:42 |
過去ログで、PukiWikiを使ってユーザ認証が行えるとあったのですが、ゲストユーザは、参照のみで、特定ユーザは書き込み、削除が行える権限を持たせる。なぁんてことはできるのでしょうか? それは、やっぱり1.5から実現される機能なのでしょうか?
ちなみに、やりたいこととしては、社内で書き込みをして、社外からでも参照のみさせたいと思っています。セキュリティを考慮して…。 公開しないのが一番だとは思いますが…。
よろしくお願いします。
自己レスです。
すみません、変なタイミングで書き込んでしまいました。Pukiのiniファイルを見たらいろいろと編集や、閲覧の制限をかけられるみたいですが、実際はどういう認証方法になるのでしょうか?ヘルプなどで紹介されていますか?ご存じの方、教えてくださいぃ~。
下記のように設定すれば、閲覧及び編集の認証による制限が可能です。
$auth_users = array( 'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード 'Group2' => 'hegehege', // 編集許可グループ => パスワード ); $auth_method_type = "pagename"; // ページ名で制限する $read_auth = 1; // 閲覧許可有効 (0で無効) $read_auth_pages = array( '/^:.*$/' => 'Group1', // 閲覧制限ページ(正規表現) => 閲覧許可グループ名 ); $edit_auth = 1; // 編集許可有効 (0で無効) $edit_auth_pages = array( '/^.*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名 ); $search_auth = 1; // 検索対象を閲覧可能ページだけに (0で無効)
この例ではすべてのページの編集に認証が必要、「:」で始まるページ名のページの閲覧に認証が必要となります。対象となるページを正規表現で指定、編集・閲覧それぞれにグループ名を設定して認証による制限をかけることができます。$auth_usersでいくつものグループを設定できます。$read_auth_pages、$edit_auth_pagesで制限の対象となるページのパターンを複数(グループごとに)指定することも可能です。
閲覧は自由に、編集だけ制限したい場合は、
$read_auth = 0; $edit_auth = 1;にしておけば、すべてのページの閲覧の制限はなくなり、編集だけが制限されます。
なるほどぉ~。勉強になります。ちなみに、グループとかの話ですが、ユーザってPukiWikiにアクセスしたときにログイン画面でも表示されるのでしょうか?それとも、ベーシック認証を利用する必要があるのですか?
PukiWiki内部でBasic認証を利用しますので、サイト全体でBasic認証を設定する必要はありません。したがってPukiWiki以外のページ(他のhtmlやcgiなど)へのアクセスに影響を及ぼしません。
自己レスです。これって、凍結解除時のパスワードによりユーザを特定しているみたいですね。もし、この解釈が誤っているなら、ご指摘ください。利用させてもらいます。
ページの凍結・凍結解除などで使用するパスワードとはまったく別物です。
同じような質問になるので、下につけさせていただきます。編集制限ページの対象をすべてのページ('/*/')というのは出来ないのでしょうか?正規表現の記述が違うのか出来ません。あと新規編集ページに対しても認証は出来ないでしょうか?何卒宜しくお願い致します。
すみません、上記の方法でデフォルトでは全てのページを編集制限にして、このページだけは編集制限しないという設定はできますか?よろしくお願いします
全ページに編集制限をかけるが、「ゲストブック」「練習」「掲示板」だけは編集を許可したい場合はどうすれば良いのでしょうか?
$edit_auth_pages = array( '/^[^ゲ][^ス][^ト][^ブ][^ッ][^ク].*$/' => 'Group2', );とりあえず、1つだけなら対応できましたけど、あまりスマートじゃないな(^^A もっとスマートな方法ありませんかね?
認証グループを|でやればできるかな?その場合は正規表現の/と/で括らないといけないかもしれないですね。私もその設定してみたいところあるのでやってみます。ここの質問箱は初めて見たので他の認証設定もするため時間かかるかも。変化があれば報告します。しかも、質問が延びてるので勝手に質問に戻しましたが問題があれば注意ください。
まだ、試してはいないのですが、複数の認証グループの設定は「'/(ネタバレ|ねたばれ)/' => 'foo,bar,hoge'」にある通り","で区切るだけでいいかもしれないですね。早く設定して結果を報告したいです。
誰も書き込む前に設定できた!ちょっとうれしいかも&heart;
最初のreimyさんの設定を参考に$read_auth_pagesに'Group1,Group2'と$edit_auth_pagesに'Group1'として設定したところ'Group1'は読み書きをどちらか1度の認証でもう一方を認証しないでスルーしました。'Group2'では読み込みを認証して書き込みも認証しなければならなかったです。これで'Group1'が管理者グループの読み書きと読み込み専用グループの区別ができますね。とても助かる質問箱でした。これで編集できるページを公開できます!編集できるページは追加してないけどね・・・
ついでに質問します。ぱんださんの設定を利用して認証なし(認証ダイアログも出さない状態)で編集することはできないでしょうか?編集許可グループを''のように空にしてもできないようでした。何かアドバイスをお願いします。article+pcomment使ってる掲示板に自分以外書き込みできない状態になってしまった・・・
1度はパス無しのグループを作成してそのグループを設定するとできたのですが、何度か書き込みしたらできなくなってしまいました。全て認証必要の上下にどちらに書いても今は認証ダイアログが出てきてしまいます。グループ名には依存しないですよね?
'/^((?!^(掲示板.*)$).)*$/'って書いてた。そりゃ反応しないや。article+pcommentのやり方ではページ名は「コメント/ページ名/タイトル」になってるのにさっき気づいた。'/^((?!^(コメント.*)$).)*$/'ですね。しかも、否定形だから認証したいグループを書くだけでいいじゃん・・・鬱
板汚してる感じですいません。消したほうがいい内容は消してもいいです。試行錯誤を置いておくのもいいかと思ってそのままにしてみます。納得がいったら状態を完了に変更してください>質問者ALL
'/^((?!^(コメント\/.*)$).)*$/'とした方がよいと思いますよ。
あとpcommentで作られたページは自由に編集できてしまうんですね。
ここにpcommentを書かれたら元のページが読み込めなくなってしまう様です(Ver.1.4.2)。
すみません、添付ファイルに関する扱いも同じでしょうか。添付ファイルだけ認証をかましたいのですが...。
この質問は完了になっているので別に質問を書き込みしたほうがいいかと。
$edit_auth_pages = array( '/^[^☆].*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名 );上を読んでいると'/^[^☆].*$/'を変更するとできそうなんですが・・・ -- kai 2004-11-01 (月) 15:32:15
$auth_users = array( 'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード 'Group2' => 'hegehege', // 編集許可グループ => パスワード ); $auth_method_type = "pagename"; // ページ名で制限する $read_auth = 0; // 閲覧許可有効 (0で無効) $read_auth_pages = array( '/^:.*$/' => 'Group1', // 閲覧制限ページ(正規表現) => 閲覧許可グループ名 ); $edit_auth = 1; // 編集許可有効 (0で無効) $edit_auth_pages = array( '/^((?!^(コメント\/.*)$).)*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名 );としたのですがうまくいかないので質問しました。わかる方教えてください。-- kai 2004-11-01 (月) 22:42:06
'/^連絡板$/' => 'Group2',
--- article.inc.php.orig Sat Jul 31 12:09:20 2004 +++ article.inc.php Mon Nov 8 20:37:42 2004 @@ -67,6 +67,9 @@ $_mailto = array ( '' ); +///////////////////////////////////////////////// +// 投稿制限 1: 有効 0: 無効 +define('POST_AUTH', 1); function plugin_article_action() { @@ -77,6 +80,8 @@ if ($post['msg'] == '') { return array('msg'=>'','body'=>''); } + + POST_AUTH && check_editable($vars['refer'], true, true); $name = ($post['name'] == '') ? $_no_name : $post['name']; $name = ($name == '') ? '' : str_replace('$name', $name, NAME FORMAT);これでそのページの編集制限に従うようになります。 -- 2004-11-08 (月) 20:42:44
'/^((?!^(ゲストブック|練習|掲示板|FrontPage|管理者メモ)$).)*$/' => 'admin,user', '/^(FrontPage|管理者メモ)$/' => 'admin',というよーに2行に分けたらできるかもしれません。スマートじゃないですけど。-- jun.o 2005-10-12 (水) 22:58:49