エントリー

freoの投稿者ユーザーがログインしたとき他ユーザーの情報を表示させない方法

freoのサークル管理プラグイン、プロフィール管理プラグインでは、権限が投稿者のユーザーがログインしたときにも自分以外のユーザーの情報も表示、編集ができてしまうので、他のユーザーの情報を表示させない方法です。

サークル管理プラグインの場合

1) templates/plugins/circle/admin.html の46~56行目あたりにある

<!--{foreach from=$users|smarty:nodefaults item='user'}-->
<tr>
  <td>{$user.id}</td>
  <td><!--{if $user.created|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$user.created|date_format:'%H:%M:%S'}<!--{else}-->{$user.created|date_format:'%Y/%m/%d'}<!--{/if}--></td>
  <td>{$user.name}</td>
  <td>{$plugin_circles[$user.id].name}</td>
  <td>{$plugin_circles[$user.id].owner_name}</td>
  <td><!--{if $user.authority == 'root'}-->管理者<!--{elseif $user.authority == 'author'}-->投稿者<!--{elseif $user.authority == 'guest'}-->ゲスト<!--{/if}--></td>
  <td><a href="{$freo.core.http_file}/circle/admin_form?id={$user.id}">編集</a></td>
</tr>
<!--{/foreach}-->

の部分を、

<!--{foreach from=$users|smarty:nodefaults item='user'}-->
<!--{if $freo.user.authority == 'root' or $freo.user.id == $user.id}-->
<!--{if $user.approved == 'yes'}-->
<tr>
  <td>{$user.id}</td>
  <td><!--{if $user.created|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$user.created|date_format:'%H:%M:%S'}<!--{else}-->{$user.created|date_format:'%Y/%m/%d'}<!--{/if}--></td>
  <td>{$user.name}</td>
  <td>{$plugin_circles[$user.id].name}</td>
  <td>{$plugin_circles[$user.id].owner_name}</td>
  <td><!--{if $user.authority == 'root'}-->管理者<!--{elseif $user.authority == 'author'}-->投稿者<!--{elseif $user.authority == 'guest'}-->ゲスト<!--{/if}--></td>
  <td><a href="{$freo.core.http_file}/circle/admin_form?id={$user.id}">編集</a></td>
</tr>
<!--{/if}-->
<!--{/if}-->
<!--{/foreach}-->

に変更(赤字部分を追加)します。

この場合、投稿者ユーザー(例:ID「author」)の管理画面は以下のように表示されます。
ファイル 87-1.jpg
また管理者の管理画面には未承認ユーザーの情報は表示されません。

【2013.11.26追記】
2) 投稿者ユーザーがURLを弄って他のユーザーの編集ができないようにするため、templates/plugins/circle/admin_form.html の3行目にある

<h2>ID.{$freo.query.id}のサークルを編集</h2>

に、

<!--{if $freo.user.authority == 'root' or $freo.user.id == $freo.query.id}-->

を追加します。
同じく、templates/plugins/circle/admin_form.html下から3行目にある

</form>

に、

<!--{else}-->
  <ul class="attention">
    <li>権限がありません。</li>
  </ul>
<!--{/if}-->

を追加します。
この場合、投稿者ユーザーが他のユーザーの編集にアクセスすると以下のように表示されます。
ファイル 87-3.jpg

プロフィール管理プラグインの場合

1) templates/plugins/profile/admin.html の36行目あたりと47行目あたりにある

<th>並び順</th>

の部分をそれぞれ

<!--{if $freo.user.authority == 'root'}-->
<th>並び順</th>
<!--{/if}-->

に変更(赤字部分を追加)します。

2) 同じく52~62行目あたりにある

<!--{foreach from=$users|smarty:nodefaults item='user'}-->
<tr>
  <td>{$user.id}</td>
  <td><!--{if $user.created|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$user.created|date_format:'%H:%M:%S'}<!--{else}-->{$user.created|date_format:'%Y/%m/%d'}<!--{/if}--></td>
  <td>{$user.name}</td>
  <td>{$plugin_profiles[$user.id].kana}</td>
  <td><!--{if $user.authority == 'root'}-->管理者<!--{elseif $user.authority == 'author'}-->投稿者<!--{elseif $user.authority == 'guest'}-->ゲスト<!--{/if}--></td>
  <td class="number"><!--{if $plugin_profiles[$user.id].sort != ''}--><input type="text" name="sort[{$user.id}]" size="3" value="{$plugin_profiles[$user.id].sort}" /><!--{/if}--></td>
  <td><a href="{$freo.core.http_file}/profile/admin_form?id={$user.id}">編集</a></td>
</tr>
<!--{/foreach}-->

の部分を、

<!--{foreach from=$users|smarty:nodefaults item='user'}-->
<!--{if $freo.user.authority == 'root' or $freo.user.id == $user.id}-->
<!--{if $user.approved == 'yes'}-->
<tr>
  <td>{$user.id}</td>
  <td><!--{if $user.created|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$user.created|date_format:'%H:%M:%S'}<!--{else}-->{$user.created|date_format:'%Y/%m/%d'}<!--{/if}--></td>
  <td>{$user.name}</td>
  <td>{$plugin_profiles[$user.id].kana}</td>
  <td><!--{if $user.authority == 'root'}-->管理者<!--{elseif $user.authority == 'author'}-->投稿者<!--{elseif $user.authority == 'guest'}-->ゲスト<!--{/if}--></td>
  <!--{if $freo.user.authority == 'root'}-->
  <td class="number"><!--{if $plugin_profiles[$user.id].sort != ''}--><input type="text" name="sort[{$user.id}]" size="3" value="{$plugin_profiles[$user.id].sort}" /><!--{/if}--></td>
  <!--{/if}-->
  <td><a href="{$freo.core.http_file}/profile/admin_form?id={$user.id}">編集</a></td>
</tr>
<!--{/if}-->
<!--{/if}-->
<!--{/foreach}-->

に変更(赤字部分を追加)します。

3) 同じく65行目あたりにある

<p><input type="submit" value="並び順を編集する" /></p>

の部分を、

<!--{if $freo.user.authority == 'root'}-->
<p><input type="submit" value="並び順を編集する" /></p>
<!--{/if}-->

に変更(赤字部分を追加)します。

この場合、投稿者ユーザー(例:ID「author」)の管理画面は以下のように表示されます。
ファイル 87-2.jpg
また管理者の管理画面には未承認ユーザーの情報は表示されません。

【2013.11.26追記】
4) 投稿者ユーザーがURLを弄って他のユーザーの編集ができないようにするため、templates/plugins/profile/admin_form.html の3行目にある

<h2>ID.{$freo.query.id}のプロフィールを編集</h2>

に、

<!--{if $freo.user.authority == 'root' or $freo.user.id == $freo.query.id}-->

を追加します。
同じく、templates/plugins/profile/admin_form.html下から3行目にある

</form>

に、

<!--{else}-->
  <ul class="attention">
    <li>権限がありません。</li>
  </ul>
<!--{/if}-->

を追加します。
この場合、投稿者ユーザーが他のユーザーの編集にアクセスすると以下のように表示されます。
ファイル 87-4.jpg

※注文管理プラグインも同様のカスタマイズが必要ですが、こちら で紹介しています。

ページ移動

関連エントリー

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
  • 一旦登録したコメントは、あとで編集できませんのでご注意下さい。
登録フォーム

基本的には「全体に公開」されますが、内容によっては管理人の方で公開を制限する場合がありますので、その旨ご了承下さい。

ユーティリティ

2024年03月

- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -

キーワード検索

キーワード検索フォーム

ユーザー

  • cccのアバター

新着画像

ブログパーツ

Twitter

Twilogを見る

Feed