2

私が作成しているカスタム コンポーネントで、Joomla 2.5 バックエンド ユーザーを特定の機能/ビューに制限する方法を特定するのに問題があるようです。私の理解によると、ビューを access.xml ファイルのセクションとして追加できるはずです。セクションにビューと同じ名前を付けてこれを試みましたが、コンポーネント全体から独立してそのビューへのアクセスを変更できないようです。私が確認できるより詳細な例やヒントはありますか? これは可能ですか?

4

1 に答える 1

1

あなたがやろうとしていることは、Joomla ではサポートされていないと思います。私の提案は、access.xml にビューのカスタム ルールを追加することです。

<section name="component">
   <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
   <action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
   <action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" />
   <action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" />
   <action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" />
   <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" />
</section>

<section name="views">
   <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
</section>

次に、ビューを の#__assetsような名前でテーブルに保存しますcom_component.view.playerlistrulesフィールドには、JSON でエンコードされたルールのリストを保存する必要があります。

{"core.admin":{}}

を使用して、現在のユーザーが確定セクションにアクセスできるかどうかを確認できますJAccess

$user_id=JFactory::getUser()->id;
$has_permission = JAccess::check($user_id,'core.admin','com_component.view.playerlist');
if($has_permission){
    draw_view();
}else{
    JError::riseError(403,JText::_('PERMISSION_DENIED'));
    // or
    JError::raiseWarning(403,JText::_('PERMISSION_DENIED'));
}

ご不明な点がございましたら、お気軽にコメントください。

于 2013-03-27T11:35:16.877 に答える