Comme toujours, je bricole dans mon IDE. Le défi actuel consiste à configurer des règles de LCA au niveau de la vue pour chacun des différents gestionnaires (vues de liste/formulaire) de mon composant de gestion des tests.
J'ai d'abord ajouté les sections requises au fichier access.xml
<?xml version="1.0" encoding="UTF-8"?>
<access component="com_babelu_exams">
<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="JACTION_EDITSTATE_COMPONENT_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" />
</section>
<section name="category">
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_CATEGORY_DESC" />
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_CATEGORY_DESC" />
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_CATEGORY_DESC" />
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_CATEGORY_DESC" />
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_CATEGORY_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_CATEGORY_DESC" />
</section>
<section name="level">
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_LEVEL_DESC" />
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_LEVEL_DESC" />
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_LEVEL_DESC" />
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_LEVEL_DESC" />
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_LEVEL_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_LEVEL_DESC" />
</section>
<section name="exam">
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_EXAM_DESC" />
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_EXAM_DESC" />
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_EXAM_DESC" />
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_EXAM_DESC" />
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_EXAM_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_EXAM_DESC" />
</section>
<section name="section">
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_SECTION_DESC" />
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_SECTION_DESC" />
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_SECTION_DESC" />
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_SECTION_DESC" />
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_SECTION_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_SECTION_DESC" />
</section>
<section name="problem">
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_PROBLEM_DESC" />
<action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_PROBLEM_DESC" />
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_PROBLEM_DESC" />
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_PROBLEM_DESC" />
<action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_PROBLEM_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_PROBLEM_DESC" />
</section>
<section name="result">
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_RESULT_DESC" />
<action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_RESULT_DESC" />
<action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_RESULT_DESC" />
<action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_RESULT_DESC" />
</section>
Ensuite, j'ai essayé de les ajouter à mon fichier config.xml sous le champ permissions.
<!-- SOF PERMISSIONS -->
<fieldset name="permissions" description="JCONFIG_PERMISSIONS_DESC"
label="JCONFIG_PERMISSIONS_LABEL">
<field name="rules" type="rules" component="com_babelu_exams"
filter="rules" validate="rules" label="JCONFIG_PERMISSIONS_LABEL"
section="component" />
<field name="rules" type="rules" component="com_babelu_exams"
filter="rules" validate="rules" label="JCONFIG_PERMISSIONS_LABEL"
section="category" />
</fieldset>
<!-- EOF PERMISSIONS -->
Cependant, cela ne fonctionnait pas car les règles de catégorie remplaçaient les règles de composant. J'ai donc essayé de faire des règles un tableau
<!-- SOF PERMISSIONS -->
<fieldset name="permissions" description="JCONFIG_PERMISSIONS_DESC"
label="JCONFIG_PERMISSIONS_LABEL">
<field name="rules[]" type="rules" component="com_babelu_exams"
filter="rules" validate="rules" label="JCONFIG_PERMISSIONS_LABEL"
section="component" />
<field name="rules[]" type="rules" component="com_babelu_exams"
filter="rules" validate="rules" label="JCONFIG_PERMISSIONS_LABEL"
section="category" />
</fieldset>
<!-- EOF PERMISSIONS -->
mais cela a eu le même effet. J'ai donc essayé d'ajouter la section à l'attribut composant, mais cela a simplement rendu le contrôle des autorisations entier vide.
Alors, est-ce que quelqu'un sait si ce que j'essaie de faire est possible dans la vue du composant com_config?
La raison pour laquelle je souhaite avoir cela au niveau des composants est parce que j'essaie d'obtenir une liste de contrôle d'accès complète en cascade. Où dans le super administrateur peut définir ACL sur le composant-> la vue-> l'enregistrement. Ce qui me permettra de masquer des sections du composant qui ne sont pas relatives aux autorisations d'accès des utilisateurs actuels.
Donc, si vous savez comment cela pourrait être fait en utilisant com_config, veuillez me le faire savoir. = ^ D Je chercherai une solution entre-temps, si je la trouve, je la posterai.
Heureux Joomla! Ng
Pas sûr que ce soit une faute de frappe mais access.xml manque la fermeture </access>
tag.
Je n'ai jamais essayé, mais je ne pense pas que vous puissiez avoir plusieurs champs d'autorisations dans la même configuration.
component
est utilisée dans les options de niveau composant.category
est utilisé par com_categories pour les autorisations de catégorie unique.com_content
vous avez une section article
qui permet de définir les autorisations pour chaque article individuellement.Si vous avez besoin d'une liste de contrôle d'accès distincte pour chaque vue, vous devez créer vos propres règles de liste de contrôle d'accès et ne pas utiliser celles de base. Comme com_babelu_exams.level.create
.