0

Joomla 2.5 用のコンポーネントを作成しました。それはうまくいきます。ただし、アクセス制御の問題があります。コンポーネントはドキュメントを管理します。クライアントは、それらをアップロード、タグ付け、検索などを行うことができます。これらはすべて正常に機能します。ドキュメントを表示、編集、および削除できるようにするには、ユーザーがシステムにログインする必要があります。

残念ながら、システムは編集と削除を制限していますが、閲覧を制限しているようには見えません。ログインしているユーザーのみにビューを制限しません。ドキュメントのコンポーネント URL をブラウザ バーに直接入力すると、ビューが読み込まれます。

http://www.mydomain.com/component/document_managment/1.html?view=document

私は周りを検索しましたが、役立つものは何も見つかりません。私が間違っていたかもしれないことについて何か考えはありますか?

4

1 に答える 1

0

documentsすでに完全な ACL が実装されていると仮定しています。つまり、テーブルにアセット列がありaccess.xml、いくつかの ACL ルールが定義されています。

<section name="component">
  <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
...
  1. (通常は管理者コンポーネントのルートにあります) にACL ルールを追加core.viewします。core.view.ownaccess.xml

    <action name="core.view" title="View all documents"
    <action name="core.view.own" title="View own documents"
    
  2. コンポーネント構成で、ユーザーに権限を割り当てて、スーパー ユーザーがすべてを表示できるようにし (管理者にはcore.view権限があります)、すべての登録ユーザーが権限を持っています。core.view.own

  3. モデルの view.html またはさらに良いことに、データをロードする前に権限をテストします。

    $user = JFactory::getUser();
    $id = $app->input->getInt('id') // load the document id
    $canView = false;
    if($id){
        $canView = $user->authorise('core.view', 'com_yourcomponent.document') || 
            $user->authorise('core.view.own', 'com_yourcomponent.document.'.$id);
    }
    
于 2013-09-21T07:55:42.303 に答える