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