**[[質問箱/308]] [#zf430cf8] |RIGHT:70|LEFT:410|c |~サマリ|ユーザ認証による書き込み・参照| |~バージョン|1.4| |~投稿者|[[やないっち]]| |~状態|完了| |~投稿日|&new{2003-11-05 (WED) 10:21:42};| ***質問 [#ocf97368] 過去ログで、PukiWikiを使ってユーザ認証が行えるとあったのですが、ゲストユーザは、参照のみで、特定ユーザは書き込み、削除が行える権限を持たせる。なぁんてことはできるのでしょうか? それは、やっぱり1.5から実現される機能なのでしょうか? ちなみに、やりたいこととしては、社内で書き込みをして、社外からでも参照のみさせたいと思っています。セキュリティを考慮して…。 公開しないのが一番だとは思いますが…。 よろしくお願いします。 ***回答 [#x3cab737] -[[やないっち]] &new{2003-11-05 (WED) 10:26:40}; ~自己レスです。 --[[やないっち]] &new{2003-11-05 (WED) 10:27:53}; ~すみません、変なタイミングで書き込んでしまいました。Pukiのiniファイルを見たらいろいろと編集や、閲覧の制限をかけられるみたいですが、実際はどういう認証方法になるのでしょうか?ヘルプなどで紹介されていますか?ご存じの方、教えてくださいぃ~。 --[[reimy]] &new{2003-11-05 (WED) 11:45:28}; ~下記のように設定すれば、閲覧及び編集の認証による制限が可能です。 $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; にしておけば、すべてのページの閲覧の制限はなくなり、編集だけが制限されます。 --[[やないっち]] &new{2003-11-05 (WED) 12:46:16}; ~なるほどぉ~。勉強になります。ちなみに、グループとかの話ですが、ユーザってPukiWikiにアクセスしたときにログイン画面でも表示されるのでしょうか?それとも、ベーシック認証を利用する必要があるのですか? ---[[reimy]] &new{2003-11-05 (WED) 16:01:08}; ~PukiWiki内部でBasic認証を利用しますので、サイト全体でBasic認証を設定する必要はありません。したがってPukiWiki以外のページ(他のhtmlやcgiなど)へのアクセスに影響を及ぼしません。 --[[やないっち]] &new{2003-11-05 (WED) 13:06:22}; ~自己レスです。これって、凍結解除時のパスワードによりユーザを特定しているみたいですね。もし、この解釈が誤っているなら、ご指摘ください。利用させてもらいます。 ---[[reimy]] &new{2003-11-05 (WED) 15:56:44}; ~ページの凍結・凍結解除などで使用するパスワードとはまったく別物です。 -[[だいすけ]] &new{2003-11-06 (THU) 02:10:52}; ~同じような質問になるので、下につけさせていただきます。編集制限ページの対象をすべてのページ('/*/')というのは出来ないのでしょうか?正規表現の記述が違うのか出来ません。あと新規編集ページに対しても認証は出来ないでしょうか?何卒宜しくお願い致します。 --[[reimy]] &new{2003-11-06 (THU) 07:41:02}; ~すべてのページに編集制限するには下記のように定義すれば可能です。 $edit_auth_pages = array( '/^.*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名 ); --[[だいすけ]] &new{2003-11-06 (THU) 10:26:13}; ~reimyさんありがとうございました。出来ました。 -[[いけうち]] &new{2003-11-12 (WED) 04:58:45}; ~すみません、上記の方法でデフォルトでは全てのページを編集制限にして、このページだけは編集制限しないという設定はできますか?よろしくお願いします --[[reimy]] &new{2003-11-12 (WED) 06:33:45}; ~[[正規表現]]の文字クラスの[^...]を使用すれば可能です。たとえば「☆」で始まるページ名だけを編集制限なしにするには、下記のように。 $edit_auth_pages = array( '/^[^☆].*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名 ); --[[いけうち]] &new{2003-11-12 (WED) 11:29:58}; ~うまくいきました。ありがとうございます。 -[[ななし]] &new{2003-11-13 (THU) 03:30:40}; ~全ページに編集制限をかけるが、「ゲストブック」「練習」「掲示板」だけは編集を許可したい場合はどうすれば良いのでしょうか? $edit_auth_pages = array( '/^[^ゲ][^ス][^ト][^ブ][^ッ][^ク].*$/' => 'Group2', ); とりあえず、1つだけなら対応できましたけど、あまりスマートじゃないな(^^A もっとスマートな方法ありませんかね? --[[ぱんだ]] &new{2003-11-14 (FRI) 00:02:34}; ~こんなのはどうですか。 '/^((?!^(ゲストブック|練習|掲示板)$).)*$/' --[[ななし]] &new{2003-11-15 (SAT) 00:42:34}; ~ぱんださんありがとうございます!!できました。 ~そこでもう一つ複雑なパターンを教えていただきたいのですが ~admin, user とあって、「ゲストブック」「練習」「掲示板」は認証無しで編集を許可します。「FrontPage」「管理者メモ」は admin の認証が必要。それ以外は admin か user の認証が必要。 -[[翔]] &new{2004-01-07 (WED) 23:27:01}; ~認証グループを|でやればできるかな?その場合は正規表現の/と/で括らないといけないかもしれないですね。私もその設定してみたいところあるのでやってみます。ここの質問箱は初めて見たので他の認証設定もするため時間かかるかも。変化があれば報告します。しかも、質問が延びてるので勝手に質問に戻しましたが問題があれば注意ください。 --[[翔]] &new{2004-01-07 (WED) 23:58:37}; ~まだ、試してはいないのですが、複数の認証グループの設定は「'/(ネタバレ|ねたばれ)/' => 'foo,bar,hoge'」にある通り","で区切るだけでいいかもしれないですね。早く設定して結果を報告したいです。 --[[翔]] &new{2004-01-08 (THU) 01:18:26}; ~誰も書き込む前に設定できた!ちょっとうれしいかも&heart;&br;最初のreimyさんの設定を参考に$read_auth_pagesに'Group1,Group2'と$edit_auth_pagesに'Group1'として設定したところ'Group1'は読み書きをどちらか1度の認証でもう一方を認証しないでスルーしました。'Group2'では読み込みを認証して書き込みも認証しなければならなかったです。これで'Group1'が管理者グループの読み書きと読み込み専用グループの区別ができますね。とても助かる質問箱でした。これで編集できるページを公開できます!編集できるページは追加してないけどね・・・ -[[翔]] &new{2004-01-08 (THU) 01:37:53}; ~ついでに質問します。ぱんださんの設定を利用して認証なし(認証ダイアログも出さない状態)で編集することはできないでしょうか?編集許可グループを''のように空にしてもできないようでした。何かアドバイスをお願いします。article+pcomment使ってる掲示板に自分以外書き込みできない状態になってしまった・・・ --[[翔]] &new{2004-01-08 (THU) 02:15:32}; ~1度はパス無しのグループを作成してそのグループを設定するとできたのですが、何度か書き込みしたらできなくなってしまいました。全て認証必要の上下にどちらに書いても今は認証ダイアログが出てきてしまいます。グループ名には依存しないですよね? --[[翔]] &new{2004-01-08 (THU) 03:50:23}; ~'/^((?!^(掲示板.*)$).)*$/'って書いてた。そりゃ反応しないや。article+pcommentのやり方ではページ名は「コメント/ページ名/タイトル」になってるのにさっき気づいた。'/^((?!^(コメント.*)$).)*$/'ですね。しかも、否定形だから認証したいグループを書くだけでいいじゃん・・・鬱&br;板汚してる感じですいません。消したほうがいい内容は消してもいいです。試行錯誤を置いておくのもいいかと思ってそのままにしてみます。納得がいったら状態を完了に変更してください>質問者ALL --[[sky]] &new{2004-01-13 (TUE) 20:19:08}; ~'/^((?!^(コメント\/.*)$).)*$/'とした方がよいと思いますよ。~ あとpcommentで作られたページは自由に編集できてしまうんですね。 ここにpcommentを書かれたら元のページが読み込めなくなってしまう様です(Ver.1.4.2)。 ---[[dev:BugTrack/528]] pcommentをネストした場合の脆弱性(多重書きこみ/無限ループ) -[[にし]] &new{2004-04-13 (TUE) 11:19:31}; ~すみません、添付ファイルに関する扱いも同じでしょうか。添付ファイルだけ認証をかましたいのですが...。 --[[Ark]] &new{2004-04-15 (THU) 12:10:26}; ~この質問は完了になっているので別に質問を書き込みしたほうがいいかと。 -掲示板のみにユーザ認証制限をしたいのですが、上の説明だとあまりわからないので質問しました。 $edit_auth_pages = array( '/^[^☆].*$/' => 'Group2', // 編集制限ページ(正規表現) => 編集許可グループ名 ); 上を読んでいると'/^[^☆].*$/'を変更するとできそうなんですが・・・ -- [[kai]] &new{2004-11-01 (月) 15:32:15}; --''どうしたいのかを具体的に書けば''、答えを書いてくれる人もいるでしょう。 -- &new{2004-11-01 (月) 21:23:41}; --簡易掲示板(#article)のページを連絡板として使おうと思い、そのページ(連絡板)のみユーザ認証制限をかけたいのですが上に書いてあるのを参考に $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]] &new{2004-11-01 (月) 22:42:06}; --そのページ名が''連絡板''であれば、 -- &new{2004-11-01 (月) 23:57:19}; '/^連絡板$/' => 'Group2', -- '/^連絡板$/' => 'Group2', でいいんですかね?やっぱり。上に書いてあるには「article+pcommentのやり方ではページ名は「コメント/ページ名/タイトル」になってる」と書いてあるので設定の仕方が違うのかなって思ったわけですけど、とりあえずやってみたいと思います。順番が逆になりましたがpukiwiki1.4.4です。 -- [[kai]] &new{2004-11-02 (火) 01:24:51}; --教えていただいた方法だとページの編集自体には制限かかるのですが、記事の投稿自体には制限がかかりません。記事の投稿自体に制限をかける方法はあるんですか? -- [[kai]] &new{2004-11-02 (火) 13:15:43}; ---pcommentが設置されているページを編集制限する以外にないと思います。 -- [[teanan]] &new{2004-11-02 (火) 15:37:00}; --articleの場合は投稿の制限はむずかしいですかね・・・?やっぱり -- [[kai]] &new{2004-11-08 (月) 18:25:00}; --いまいち実現されたいことが掴めていないのですが、articleが設置されているページは閲覧できるようにして投稿だけを規制したい、ということでしょうか? -- [[teanan]] &new{2004-11-08 (月) 19:32:19}; --閲覧は自由だが、articleによる投稿を特定グループに制限したいということなら --- 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); これでそのページの編集制限に従うようになります。 -- &new{2004-11-08 (月) 20:42:44}; --教えていただいたとおりに変更したところうまくいきました。やりたい事がうまく伝わってなかったみたいですみませんでした。 -- [[kai]] &new{2004-11-16 (火) 13:33:11}; - [[ななし]]さん2003-11-15 (SAT) 00:42:34の質問に対する答えが結局ないようなので、蛇足ながら。 '/^((?!^(ゲストブック|練習|掲示板|FrontPage|管理者メモ)$).)*$/' => 'admin,user', '/^(FrontPage|管理者メモ)$/' => 'admin', というよーに2行に分けたらできるかもしれません。スマートじゃないですけど。-- [[jun.o]] &new{2005-10-12 (水) 22:58:49}; - すいません、半角英のページ名はバグでスルーされてしまうのでしょうか?上記のとおり設定してもスルーされて編集が制限されません。 -- [[Rei]] &new{2006-03-21 (火) 19:58:53}; -- 上記の通りとはどの辺を指しているのでしょうか。このコメント内容だけでは情報が少なすぎ、スルーされてしまいますよ。「半角英のページ名はバグでスルー」ということは無いと思います。もう一度設定を見直してみては如何でしょう。 -- &new{2006-03-21 (火) 20:39:58}; -- [[質問箱/387]] - [[質問箱3/613]] -- &new{2007-02-14 (水) 01:16:45}; - 特定ページに閲覧認証をかけたいので、$read_auth = 1;としているのですが、まったく認証画面ポップアップが出てこずに閲覧できちゃいます。$edit_auth = 1;も同様に機能しません。 -- [[ek]] &new{2007-04-28 (土) 03:41:56}; -- userというグループを作成して、'/^:.*$/' => 'user', と記述しています。認証が出てこない原因は何が考えられますでしょうか?ご教授お願いします。-- [[ek]] &new{2007-04-28 (土) 03:42:57}; -- $non_listでは、「:」で始まるページ名は、'^\:' と書いてありますけど関係あります? -- &new{2007-04-28 (土) 10:36:55}; - っていうか、このあたりのことが正式に公開されていないのが不親切に思えてならん -- [[ ]] &new{2007-05-17 (木) 22:51:54}; -- 正式ってのがどういうことなのかを明らかにしないと意味ないですよ。ちなみに普通の意味では正式に公開されています。それ自体は親切でも不親切でもないですが。そもそも親切にしてどうこうということでもないでしょうが。 -- &new{2007-05-17 (木) 23:03:16}; - [[Q&Aに移動>Q&A/運営#yad2594f]] -- [[zm]] &new{2007-08-18 (土) 17:20:27}; -- #relatedで確認していますか?こちらのページは外部からも幾つかリンクがあるかと思います。(残念ながら外部リンクのチェックは無理っぽいですが) -- [[taru]] &new{2007-08-18 (土) 17:59:57};