フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年7月29日 at 16:32

もう、タイトル通りなのですが、

フォームブロックを設置して、入力された内容を
管理画面から「レポート」機能で参照可能ですが、
この「レポート」機能で、各フォームを全て、権限で参照可能にするのではなく、

フォームの結果(回答)Aは、権限Aだけに
フォームの結果(回答)Bは、権限Bだけに

それぞれ、アクセス許可を与えたいのですが、そんな設定をするにはどうしたらよろしいでしょうか?

管理者権限では、全てのレポートが一覧、回答ともに参照でき
それ以外は、ページ所有者として設定されているページに設定されたフォームの結果の一覧と回答のみが参照できるようにしたい。

バージョンは以下のとおりです。
# concrete5 Version
Core Version - 5.7.5.8
Version Installed - 5.7.5.8
Database Version - 20160412000000

タグ:

Re: フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年8月1日 at 9:57
案件で全く同じ状況になりました。

その時は、オリジナル開発で、
そのフォームの結果しか見れない Single Page を作成しました。

一つの独立したページにすることで、権限の設定が個々に割り当てられます。
 

Re: フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年8月1日 at 10:43
どこまで厳密にするかによると思います。管理画面のレポートで表示をさせないだけなのか、直接URLたたいても表示できないようにするのか?
 

Re: フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年8月1日 at 11:05
ありがとうございます。

どこまで厳密にするかによると思います。管理画面のレポートで表示をさせないだけなのか、直接URLたたいても表示できないようにするのか?


【ミニマム仕様】
・URLを直叩きして、ログイン後、レポート結果(回答)ページが参照可能
・権限がない場合は、レポート結果(回答)ページを参照不可
・該当ユーザ(グループ)にDashboadの表示権限は与えない(管理画面を見せたくない)

【フルフル仕様】
・サイトログインしている場合、レポート結果(回答)ページの参照権限がある場合は、
 レポートメニューから、レポート(フォーム)一覧に、参照可能なフォームのみの一覧表示と
 そこから、レポート結果(回答)ページまでの遷移を可能としたい
・レポート結果ページの参照権限がない場合は、設定されている(権限外の)フォームの存在もみえないようにしたい。

一旦、ミニマム仕様でもできたら、運用が楽になるのですが、そういった事は可能でしょうか?
 

Re: Re: フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年8月1日 at 14:01
[管理画面→レポートフォーム]をコピーして新しいシングルページを作成すればできると思います。

そのシングルページではフォームのbIDでデータを取ってきているのでbIDからページの所有者を割り出し権限OKだったらフォーム一覧に表示してあげればできると思います。

回答の表示も、ページの所有者で表示・非表示を分岐すれば可能かと思います。
 

Re: Re: Re: フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年8月1日 at 14:29
フォームブロックが設置してあるページの所有者かどうかは、下記のコードで判別できると思います。試してないのでたぶんですが。。

$u = new User();
if($block->getOriginalCollectionObject()->getCollectionUserID() === $u->getUserID())

※ $blockにはフォームのブロックオブジェクトが入っています
 

Re: Re: Re: フォームブロックの結果(管理画面のレポート機能)を権限設定で公開したい

2016年8月1日 at 16:21
ありがとうございます。

下記のコードで判別できると思います。試してないのでたぶんですが。。

$u = new User();
if($block->getOriginalCollectionObject()->getCollectionUserID() === $u->getUserID())


今、仕事場には入るのですが、ちょっとアレコレできなくて、夜に教えて頂いた内容含めていじってみたいと思います。