メンバープロフィールページの他人への非表示

2016年7月31日 at 20:14

メンバープロフィールページを
ログインした自分本人と管理者にしか見えないようにしたいのですが
方法はありますでしょうか

バージョン 5.7です
宜しくお願いいたします。

タグ:

Re: メンバープロフィールページの他人への非表示

2016年8月17日 at 22:23
返信遅れてすいません。

concrete5には、メンバー一覧ページとプロフィール詳細ページがあるのですが、
メンバー一覧ページは管理者のみが見えるように、プロフィール詳細ページは管理者か本人でなければ表示しないという仕組みですかね。

メンバー一覧ページは、上級権限モードにして、メンバー一覧ページの表示権限を管理者に与えることで可能なので、管理画面から可能です。

プロフィールページについては、PHP と concrete5 の知識が必要です。

- プロフィール関連ファイル「/concrete/single_pages/members/profile.php」を 「/application/single_pages/members/profile.php」にコピー

- /application/single_pages/members/profile.php に下記の変更を加える

http://gist.github.com/katzueno/7409d6730b8b55d951d674f46e68cbe3/revisions?diff=unified#diff-de29e79949b41ef3aa464090149a86b2R4

これで、「管理者」グループに属しているユーザーと、ユーザー自身しかプロフィールページを見ることができなくなるはずです。
 

Re: メンバープロフィールページの他人への非表示

2016年8月29日 at 19:39
気づくのが遅くなってしまい申し訳ありません

思っていた通りに設定する事ができました
大変大変助かりました
ありがとうございました。
 

Re: メンバープロフィールページの他人への非表示

2016年8月31日 at 1:30
度々すみません
おかげさまで本人しか見る事が出来なくなったのですが
管理者も弾かれてしまうようです
どのような理由が考えられますでしょうか
宜しくお願い致します。
 

Re: メンバープロフィールページの他人への非表示

2016年8月31日 at 9:07
管理者ユーザーは、きちんと管理者グループに所属していますか?
 

Re: メンバープロフィールページの他人への非表示

2016年8月31日 at 10:29
はい、一応一番最初に作ったアカウント&管理者として設定もしていますが
弾かれてしまうようです。
クループ詳細の『Administrators』から名前変更も行っていません。
 

Re: メンバープロフィールページの他人への非表示

2016年8月31日 at 10:50
うーむー。
では、

$adminGroup = Group::getByName('Administrators');



$adminGroup = Group::getByID(3);

に変えてみてくれますか?
concrete5 ではインストールのママでは、管理者グループの ID (これは機械的に付与される数字の識別番号)は 3 なので。
 

Re: メンバープロフィールページの他人への非表示

2016年8月31日 at 10:51
補足

管理者でログインした状態で

[concrete5 サイト]/index.php/dashboard/users/groups/-/edit/3

でアクセスすると、きちんと管理者グループの詳細編集画面が出ることを確認してください。
 

Re: Re: メンバープロフィールページの他人への非表示

2016年8月31日 at 14:19
$adminGroup = Group::getByID(3);
に変更してみましたが変わらずでした。

/index.php/dashboard/users/groups/-/edit/3
きちんと管理者グループの詳細編集画面が出ています。

インストールしたての真っ新なもので試していますがだめでした
バージョン5.7.5.8になります。

念のため変更箇所のみの変更ではなく、作成していただいた「profile.php」
全文コピペでいってみましたが結果変わらずでした。

取りあえず本人しか見えなくなっただけでもありがたいです
お手数おかけしてしまいすみません。
 

Re: メンバープロフィールページの他人への非表示

2016年9月9日 at 11:03
Naonaoさん、すいません。

正しいコードに修正しました。
http://gist.github.com/katzueno/7409d6730b8b55d951d674f46e68cbe3


$isAdmin = ($profile->inGroup($adminGroup)) ? true : false;


が本当は

$isAdmin = $u->inGroup($adminGroup);


でした。

Acliss さん、ありがとうございます!
 

Re: メンバープロフィールページの他人への非表示

2016年9月18日 at 19:54
出来ました!
とても助かりました
本当にありがとうございます。