Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2005-03-01 22:44:51

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

ダウンロードはプラグインWikiからできます

<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=950">viewtopic.php?t=950</a><!-- l -->
で話題になったようなアクセス制限を付けたブログを実現するプラグインを作ってみました。
機能としては,
・ログインしているユーザーだけがブログを見られるようにする
(ログインしていない場合はログイン画面を出す)
・デフォルトスキンと明示的に設定したスキン以外で表示できないようにする
の二つがあります。いずれもデフォルトはオフで,ブログオプションで設定するようにしています。

NP_MultiBlogsなどのプラグインでメインのブログ以外のブログ・コンテンツを表示する場合にも
一応対応します。
「一応」というのは,(1)テンプレートを使わずに表示するものは制限できない,(2)アイテムの内容は
表示しないがタイトルは表示してしまう,という制限があるからです。

プラグインのほかに,ログイン画面を出すためのスキン(loginform)を同梱しています。スキンもブログごとに
設定できます。デフォルトではgreyのスタイルを使っているので,お好きなように変更してください。

v0.3 (2005/3/2) チーム・メンバ判定のバグを修正
v0.6 (2005/3/3) スキンで制御する場合にタイトル表示を消すように修正。コメントも表示しないように修正
v0.7(2005/3/4)他のブログにログイン中に,要ログインブログにアクセスできてしまうバグを修正

オフライン

#2 2005-03-01 23:29:59

jun
メンバー
登録日: 2004-02-07
投稿: 345

Re: NP_AccessControl

うーん。ローカルで試しているせいか、エラーが出まくってます。(おそらくNP_MultiBlogs絡み)

●「ログイン・ユーザーにだけ表示」を選択して非ログイン状態でアクセス

mySQL error with query SELECT * FROM nucleus_team WHERE tblog=1 and tmember=: You have an error in your SQL syntax near '' at line 1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\phpdev\www\public\nucleus\libs\MEMBER.php on line 148

また、各アイテムに謎の「1」が表示されます。なんとなくブログidのような気がしますが。ちなみに、これはログインしているときにも出ます。(※プラグインをアンインストールすると消えます)

・Nucleus v3.15(※コードeuc)
・Apache 1.3.27
・PHP 4.2.3
・MySQL 4.0.0-alpha-nt
・WinXP Pro sp2

オフライン

#3 2005-03-01 23:44:12

jun
メンバー
登録日: 2004-02-07
投稿: 345

Re: NP_AccessControl

jun さんの発言:

うーん。ローカルで試しているせいか、エラーが出まくってます。(おそらくNP_MultiBlogs絡み)

<%blog%>でも同様のエラーが出たから、原因はNP_MultiBlogsじゃないみたいです。

オフライン

#4 2005-03-02 12:02:40

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

jun さんの発言:

また、各アイテムに謎の「1」が表示されます。なんとなくブログidのような気がしますが。ちなみに、これはログインしているときにも出ます。(※プラグインをアンインストールすると消えます)

これは純粋にデバグ用コードの取り忘れです :oops:
114行目の

debug($bid);

を消してください。
SQLのエラーの方は非ログイン・ユーザーに対してユーザーの情報を取りに行っているということだと思います。対処方法を考えてみます。
もしかするとサーバー依存のところがあるのかも…

なお,書き忘れましたがNP_CacheやNP_GZipとは多分共存できません。もしかするとインストールする順序によっては使えるかもしれませんが,まだ試していません。

オフライン

#5 2005-03-02 13:34:54

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

jun さんの発言:

うーん。ローカルで試しているせいか、エラーが出まくってます。(おそらくNP_MultiBlogs絡み)

●「ログイン・ユーザーにだけ表示」を選択して非ログイン状態でアクセス

mySQL error with query SELECT * FROM nucleus_team WHERE tblog=1 and tmember=: You have an error in your SQL syntax near '' at line 1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\phpdev\www\public\nucleus\libs\MEMBER.php on line 148

非ログイン・ユーザーに対してチーム・メンバーかどうかの判定をしているのが間違いでした。一回ログインしているかどうかをチェックしてからチーム・メンバーかどうかのチェックをするようにしました。

具体的には115行目が

		if (($this->getBlogOption($bid, 'login_needed') == "yes") && (!$member->isLoggedIn() || !$member->isTeamMember($bid))) {

となります。

バージョン0.3に上げました。上からダウンロードしてください。

オフライン

#6 2005-03-02 16:43:43

jun
メンバー
登録日: 2004-02-07
投稿: 345

Re: NP_AccessControl

指定されたブログのチームに所属している場合のみ、全て表示されることを確認しました。ところで、ログインしていても、チームに所属していないときには、「このアイテムは表示できません」が表示されるということでよろしいですよね?

それと私の環境では、IE6、Firefox共に、非ログイン時に「<%parsedinclude()%>」を読み込んでくれない場合があるようです。 :?

オフライン

#7 2005-03-02 17:10:54

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

jun さんの発言:

指定されたブログのチームに所属している場合のみ、全て表示されることを確認しました。ところで、ログインしていても、チームに所属していないときには、「このアイテムは表示できません」が表示されるということでよろしいですよね?

はい,そうです。

jun さんの発言:

それと私の環境では、IE6、Firefox共に、非ログイン時に「<%parsedinclude()%>」を読み込んでくれない場合があるようです。 :?

これは難問ですね。 roll
このプラグインを組み込んだときだけ起こるわけですね?
出力のバッファリング関係?

オフライン

#8 2005-03-02 17:24:48

jun
メンバー
登録日: 2004-02-07
投稿: 345

Re: NP_AccessControl

Andyさん さんの発言:

このプラグインを組み込んだときだけ起こるわけですね?

です。

少し調べたところ、原因は「function event_PreSkinParse」の「ob_start(array(&$this, 'ob_DoNothing'));」でした。これをコメントアウトすると問題なく動作します。

オフライン

#9 2005-03-02 17:37:48

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

jun さんの発言:

少し調べたところ、原因は「function event_PreSkinParse」の「ob_start(array(&$this, 'ob_DoNothing'));」でした。これをコメントアウトすると問題なく動作します。

ここを実行するのは,ログインが必要なページでログインしていない場合(つまり,ログイン用のスキンを表示する場合)だけのはずですが,通常表示するユーザーの場合でも行ってしまうのでしょうか? すみませんが,その条件を教えてください。 :shock:

オフライン

#10 2005-03-02 17:38:06

jun
メンバー
登録日: 2004-02-07
投稿: 345

Re: NP_AccessControl

それとタイトル部分ですが「event_PreItem」に2箇所「$data['item']->title = '';」を追加すれば消えます。

また「PreComment」を使って、コメントについても同様に対処した方がいいかもしれません。コメントの情報については下記ページが参考になると思います。
http://www.speciii.com/item/45/catid/18.html

オフライン

#11 2005-03-02 18:10:27

jun
メンバー
登録日: 2004-02-07
投稿: 345

Re: NP_AccessControl

Andyさん さんの発言:

通常表示するユーザーの場合でも行ってしまうのでしょうか? すみませんが,その条件を教えてください。 :shock:

原因が分かりました。「ログインしていない時に表示するスキン」に、インストールされていないスキン名を指定したときにこの症状が現れます。要するに「loginform」スキンを入れてなかったわけです。スミマセンでした…
私みたいな人がいるから、以下の文言を明記しておいた方がいいかも。

ログインしているユーザーだけがブログを見られるようにする場合は、必ず「ログインしていない時に表示するスキン」のところにインストール済みのスキン名を記入してください。(※「loginform」スキンをインストールしていないのならば、例えば「grey」などを記入)

また、「skinbackup.xml」を「loginform」フォルダに入れて配布した方が親切なのかもしれません。


ところで、「表示に使うスキンを限定」オプションもいいですね。 smile

オフライン

#12 2005-03-03 02:27:35

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

jun さんの発言:

それとタイトル部分ですが「event_PreItem」に2箇所「$data['item']->title = '';」を追加すれば消えます。

これは素晴らしい。ありがとうございます。
ついでにエラー表示をタイトルでするようにして,本体は空にしました。

jun さんの発言:

また「PreComment」を使って、コメントについても同様に対処した方がいいかもしれません。

こちらは僕も気付いていました。対処したバージョンをアップします。
いろいろありがとうございます

オフライン

#13 2005-03-04 16:30:19

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

ログイン中に,権限のないブログにアクセスできてしまうバグを修正しました。
ついでに判定コードを分離してプログラムを整理しました。
上からダウンロードしてください。

オフライン

#14 2005-05-10 21:34:36

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

新版を作りました。
強化点は三つ。

  • 保護のレベルがログインとユーザーの二つになりました

  • ログインフォームでログインした後,もともと表示しようとしていたページに飛ぶようになりました(環境によっては動かないかも…)

  • ログインの最大失敗回数を指定できるようになりました

ダウンロードや詳しい説明はこちら

オフライン

#15 2005-08-28 19:37:40

ava
メンバー
From: 中国地方
登録日: 2005-08-25
投稿: 37
ウェブサイト

Re: NP_AccessControl

Nucleusに挑戦中のものです。
一部のアイテムをメンバー限定公開するために、NP_AccessControlを利用させていただいています。
しかし、ひとつ困ったことが。

非ログイン状態でも、コメントが表示されてしまいます。
Ver0.6から対処済みらしいのですが・・・
PreCommentのとこが、なんか問題なのかなー?と見てみますが、PHP自体あまり
理解していない私には、なんら解決できません :cry:

NP_AccessControl Ver1.0
Nucleus Ver3.21
使用サーバ サクラインターネット

よろしくご教授おねがいします。

オフライン

#16 2005-08-29 00:18:10

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=1013">viewtopic.php?t=1013</a><!-- l -->
で書いたコアの修正をしてみてください。
AccessControlでここに対処していたかどうか,調べてみないと分からないのですが,
コメントを表示しないためには,この修正が必要です。

オフライン

#17 2005-08-29 11:47:52

ava
メンバー
From: 中国地方
登録日: 2005-08-25
投稿: 37
ウェブサイト

Re: NP_AccessControl

Andy様、早速のご返信ありがとうございました。


コアの修正をして、サーバにアップロードしました。
しかし、やはりコメントが表示されてしまいます。
ついでに、NP_ProtectItemもいれて試してみたんですが、やはりコメントが表示されてしまいます。


使っているスキンはNucleus3.21のデフォルトのもので、
http://www.matsubarafamily.com/lab/?&blogid=1
と同じものです。
アイテムのタイトル下の

(ふきだしアイコン)1 Comment

というところをクリックするとログインしてなくても(ProtectItemではPass入力してなくても)、コメントが表示されるんです。
スキンが問題なんでしょうか?

お手数をおかけしますが、宜しくお願いします。

追記:
大変失礼とは存じますが、上記URLのブログの7/14の保護されている記事にコメントをつけさせていただきました。ログインしなくても見えるようです。(ログインせずに書いているからかもしれませんが・・・)

オフライン

#18 2005-08-29 13:28:07

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

NP_AccessControl1.1をアップしました。コアの修正なくてもコメントを表示しないようになったと思います。
NP_AccessControl.phpを上書きするだけで結構です。

オフライン

#19 2005-08-29 15:27:38

ava
メンバー
From: 中国地方
登録日: 2005-08-25
投稿: 37
ウェブサイト

Re: NP_AccessControl

Ver1.1導入させていただきました。
わがままに、すばやく手を差し伸べていただき、大変感謝しております。
ありがとうございました。

オフライン

#20 2006-01-15 15:13:29

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: NP_AccessControl

v1.1をNP_MultiBlogsとの共存環境で使ってみました。

1.アイテムに対して、チームメンバーに制限を実施
2.チーム外の登録メンバーでログイン。
3.保護したアイテムを試みる

このとき、「このアイテムは表示できません」としてタイトルが表示されますが、<%more%>の続きを読むが有効になって、個別アイテムページでもtitleおよびbodyは見られませんが、moreが見えています。

NP_MultiBlogsの動作がいまいち完全に把握できていないので、現象のみご報告です。

オフライン

#21 2006-01-16 02:54:58

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: NP_AccessControl

kosugiatkips さんの発言:

このとき、「このアイテムは表示できません」としてタイトルが表示されますが、<%more%>の続きを読むが有効になって、個別アイテムページでもtitleおよびbodyは見られませんが、moreが見えています。

MultiBlogsとは関係なく,AccessControlのバグです。バグ修正ついでに,入れたかった機能を追加して新版を作りました。

新機能は,ブログの保護機能を使っているときにRSSにアクセスできるようにしたこと。BASIC認証を利用します。

ダウンロードや詳しい説明はこちら

オフライン

#22 2006-01-16 10:52:05

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: NP_AccessControl

早速修正されたv1.2を試してみました。

いいですねこれ。ありがたく使わせていただきます。

オフライン

#23 2006-02-26 13:01:17

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: NP_AccessControl

Andy さんの発言:

ダウンロードや詳しい説明は[url=http://www.matsubarafamily.com/lab/index.php?itemid=23]こちら[/url:3il0ldoq]。

NP_AccessControlはver1.2が最新のようなのですが、上記のページにはダウンロードのリンクが見当たりません。
ダウンロード先のリンクはどこかに移動されたのでしょうか?


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

#24 2006-02-26 13:25:11

kosugiatkips
メンバー
From: 金沢区
登録日: 2006-01-15
投稿: 353

Re: NP_AccessControl

今は暫定的にここに上がってます。
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?p=10211#10211">viewtopic.php?p=10211#10211</a><!-- l -->

オフライン

#25 2006-02-26 15:19:53

Z10
メンバー
From: 神奈川
登録日: 2005-06-30
投稿: 228

Re: NP_AccessControl

ありがとうございます。ダウンロードさせていただきました。

ログイン・ユーザーに限定
チーム・メンバーに限定

とプルダウンに二つ選択があり、ブログの制限を設定するようになっていますが、”チーム・メンバーに限定”は「Nucleusで登録管理するメンバー」のアクセスを制限するということはわかりました。
しかし、”ログイン・ユーザーに限定”のユーザーはどこで設定するのか、もしくはどこを参照するのかがわからないのです。
Nucleusのメンバー管理とは別にhtpasswordなどで設定したユーザーのアクセスを制限をしたいのですが、NP_AccessControlはそういったことを行うプラグインとは異なるのでしょうか?


Kilax.org
http://kilax.org
Kilax : Nucleus HTML5 w/Responsive Skin
http://kilax.org/blog/catid_2-itemid_3.html

オフライン

Board footer