<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Selfarian</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Selfarian"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Selfarian"/>
	<updated>2026-09-20T23:01:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_categories&amp;diff=83929</id>
		<title>Archived talk:Developing a MVC Component/Adding categories</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_categories&amp;diff=83929"/>
		<updated>2013-04-05T10:00:58Z</updated>

		<summary type="html">&lt;p&gt;Selfarian: /* Difference to the attached zip-File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Why     $query = new JDatabaseQuery;&lt;br /&gt;
but not $query = &amp;amp;new JDatabaseQuery; ?&lt;br /&gt;
&lt;br /&gt;
In ../models/fields/helloworld.php on line 29&lt;br /&gt;
&lt;br /&gt;
If you use the line, $query = new JDatabaseQuery;, component works, but when helloworlds is added as menu item it causes the following error when item is clicked:&lt;br /&gt;
&lt;br /&gt;
Fatal error: Cannot instantiate abstract class JDatabaseQuery in C:\xampp\htdocs\test_site\administrator\components\com_helloworld\models\fields\helloworld.php on line 29&lt;br /&gt;
&lt;br /&gt;
Reverting back to code from part 11, $query = $db-&amp;gt;getQuery(true);, does not throw error.&lt;br /&gt;
&lt;br /&gt;
Just an observation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
People who are using Joomla &amp;gt;= 2.5.5. will probably encounter a problem with categories menu - buttons for basic user actions missing (such as &amp;quot;New&amp;quot;, &amp;quot;Edit&amp;quot; etc.) The solution can be found here: http://forum.joomla.org/viewtopic.php?f=642&amp;amp;t=730171&lt;br /&gt;
&lt;br /&gt;
== Additional explanation about the controller helloworld.php file changes would be helpful. ==&lt;br /&gt;
&lt;br /&gt;
The controller helloworld.php file changes from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;// set default view if not set&amp;lt;br/&amp;gt;&lt;br /&gt;
            JRequest::setVar(&#039;view&#039;, JRequest::getCmd(&#039;view&#039;, &#039;HelloWorlds&#039;));&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;// set default view if not set&amp;lt;br/&amp;gt;&lt;br /&gt;
            $input = JFactory::getApplication()-&amp;gt;input;&amp;lt;br/&amp;gt;&lt;br /&gt;
            $input-&amp;gt;set(&#039;view&#039;, $input-&amp;gt;getCmd(&#039;view&#039;, &#039;HelloWorlds&#039;));&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
without any explanation as to the changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*** JRequest is depricated and JInput is to be used&lt;br /&gt;
&lt;br /&gt;
== The helper filename is important ==&lt;br /&gt;
&lt;br /&gt;
I think this is the first place the helper file was discussed, and I found out the hard way that the file name needs to be the component name (in lower case I think). HelloWorldHelper.php (named after the class) seemed to work in every respect except for maintaining the submenu when on the categories submenu item. It has to be helloworld.php&lt;br /&gt;
&lt;br /&gt;
== Hiding the submenu on edit forms. ==&lt;br /&gt;
&lt;br /&gt;
I would suggest adding the code to hide the submenu on the edit form. If the user has the submenu items on the list view and goes to an edit form, the submenu is really not valuable and could cause the user to lose changes with an accidental click. The code could be done like this to only show the submenu on the list views.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static function addSubmenu($submenu) &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  $subMenuViews = array(&amp;quot;messages&amp;quot;,&amp;quot;categories&amp;quot;);&lt;br /&gt;
  // Prevent the menus from displaying on edit form views like message and category&lt;br /&gt;
  if (in_array($submenu,$subMenuViews))&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
    JSubMenuHelper::addEntry(JText::_(&#039;COM_HELLOWORLD_SUBMENU_MESSAGES&#039;),&lt;br /&gt;
           &#039;index.php?option=com_helloworld&#039;, $submenu == &#039;messages&#039;);&lt;br /&gt;
    JSubMenuHelper::addEntry(JText::_(&#039;COM_HELLOWORLD_SUBMENU_CATEGORIES&#039;),&lt;br /&gt;
           &#039;index.php?option=com_categories&amp;amp;view=categories&amp;amp;extension=com_helloworld&#039;,&lt;br /&gt;
           $submenu == &#039;categories&#039;);&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // set some global property&lt;br /&gt;
  $document = JFactory::getDocument();&lt;br /&gt;
  $document-&amp;gt;addStyleDeclaration(&#039;.icon-48-helloworld &#039; .&lt;br /&gt;
  &#039;{background-image: url(../media/com_helloworld/images/tux-48x48.png);}&#039;);&lt;br /&gt;
  if ($submenu == &#039;categories&#039;) &lt;br /&gt;
  {&lt;br /&gt;
     $document-&amp;gt;setTitle(JText::_(&#039;COM_HELLOWORLD_ADMINISTRATION_CATEGORIES&#039;));&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Difference to the attached zip-File ==&lt;br /&gt;
&lt;br /&gt;
In the zip File, there&#039;s a difference to the tutorial.&lt;br /&gt;
If the zip File is installed, there&#039;s a Triangle left to the Admin-Menu &amp;quot;Helloworld&amp;quot; and there&#039;s a kind of &amp;quot;popup&amp;quot;-Submenu.&lt;br /&gt;
&lt;br /&gt;
The Difference is in the helloworld.xml install file:&lt;br /&gt;
&amp;lt;source lang=&#039;xml&#039;&amp;gt;&lt;br /&gt;
		&amp;lt;submenu&amp;gt;&lt;br /&gt;
			&amp;lt;menu view=&amp;quot;helloworlds&amp;quot;&amp;gt;COM_HELLOWORLD_SUBMENU_MESSAGES&amp;lt;/menu&amp;gt;&lt;br /&gt;
			&amp;lt;menu link=&amp;quot;option=com_categories&amp;amp;amp;view=categories&amp;amp;amp;extension=com_helloworld&amp;quot;&amp;gt;COM_HELLOWORLD_SUBMENU_CATEGORIES&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Is there a reason, why it&#039;s not in the tutorial?&lt;/div&gt;</summary>
		<author><name>Selfarian</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_categories&amp;diff=83928</id>
		<title>Archived talk:Developing a MVC Component/Adding categories</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_categories&amp;diff=83928"/>
		<updated>2013-04-05T09:39:56Z</updated>

		<summary type="html">&lt;p&gt;Selfarian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Why     $query = new JDatabaseQuery;&lt;br /&gt;
but not $query = &amp;amp;new JDatabaseQuery; ?&lt;br /&gt;
&lt;br /&gt;
In ../models/fields/helloworld.php on line 29&lt;br /&gt;
&lt;br /&gt;
If you use the line, $query = new JDatabaseQuery;, component works, but when helloworlds is added as menu item it causes the following error when item is clicked:&lt;br /&gt;
&lt;br /&gt;
Fatal error: Cannot instantiate abstract class JDatabaseQuery in C:\xampp\htdocs\test_site\administrator\components\com_helloworld\models\fields\helloworld.php on line 29&lt;br /&gt;
&lt;br /&gt;
Reverting back to code from part 11, $query = $db-&amp;gt;getQuery(true);, does not throw error.&lt;br /&gt;
&lt;br /&gt;
Just an observation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
People who are using Joomla &amp;gt;= 2.5.5. will probably encounter a problem with categories menu - buttons for basic user actions missing (such as &amp;quot;New&amp;quot;, &amp;quot;Edit&amp;quot; etc.) The solution can be found here: http://forum.joomla.org/viewtopic.php?f=642&amp;amp;t=730171&lt;br /&gt;
&lt;br /&gt;
== Additional explanation about the controller helloworld.php file changes would be helpful. ==&lt;br /&gt;
&lt;br /&gt;
The controller helloworld.php file changes from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;// set default view if not set&amp;lt;br/&amp;gt;&lt;br /&gt;
            JRequest::setVar(&#039;view&#039;, JRequest::getCmd(&#039;view&#039;, &#039;HelloWorlds&#039;));&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;// set default view if not set&amp;lt;br/&amp;gt;&lt;br /&gt;
            $input = JFactory::getApplication()-&amp;gt;input;&amp;lt;br/&amp;gt;&lt;br /&gt;
            $input-&amp;gt;set(&#039;view&#039;, $input-&amp;gt;getCmd(&#039;view&#039;, &#039;HelloWorlds&#039;));&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
without any explanation as to the changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*** JRequest is depricated and JInput is to be used&lt;br /&gt;
&lt;br /&gt;
== The helper filename is important ==&lt;br /&gt;
&lt;br /&gt;
I think this is the first place the helper file was discussed, and I found out the hard way that the file name needs to be the component name (in lower case I think). HelloWorldHelper.php (named after the class) seemed to work in every respect except for maintaining the submenu when on the categories submenu item. It has to be helloworld.php&lt;br /&gt;
&lt;br /&gt;
== Hiding the submenu on edit forms. ==&lt;br /&gt;
&lt;br /&gt;
I would suggest adding the code to hide the submenu on the edit form. If the user has the submenu items on the list view and goes to an edit form, the submenu is really not valuable and could cause the user to lose changes with an accidental click. The code could be done like this to only show the submenu on the list views.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
public static function addSubmenu($submenu) &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  $subMenuViews = array(&amp;quot;messages&amp;quot;,&amp;quot;categories&amp;quot;);&lt;br /&gt;
  // Prevent the menus from displaying on edit form views like message and category&lt;br /&gt;
  if (in_array($submenu,$subMenuViews))&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
    JSubMenuHelper::addEntry(JText::_(&#039;COM_HELLOWORLD_SUBMENU_MESSAGES&#039;),&lt;br /&gt;
           &#039;index.php?option=com_helloworld&#039;, $submenu == &#039;messages&#039;);&lt;br /&gt;
    JSubMenuHelper::addEntry(JText::_(&#039;COM_HELLOWORLD_SUBMENU_CATEGORIES&#039;),&lt;br /&gt;
           &#039;index.php?option=com_categories&amp;amp;view=categories&amp;amp;extension=com_helloworld&#039;,&lt;br /&gt;
           $submenu == &#039;categories&#039;);&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // set some global property&lt;br /&gt;
  $document = JFactory::getDocument();&lt;br /&gt;
  $document-&amp;gt;addStyleDeclaration(&#039;.icon-48-helloworld &#039; .&lt;br /&gt;
  &#039;{background-image: url(../media/com_helloworld/images/tux-48x48.png);}&#039;);&lt;br /&gt;
  if ($submenu == &#039;categories&#039;) &lt;br /&gt;
  {&lt;br /&gt;
     $document-&amp;gt;setTitle(JText::_(&#039;COM_HELLOWORLD_ADMINISTRATION_CATEGORIES&#039;));&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Difference to the attached zip-File ==&lt;br /&gt;
&lt;br /&gt;
In the zip File, there&#039;s a difference to the tutorial.&lt;br /&gt;
If the zip File is installed, there&#039;s a Triangle left to the Admin-Menu &amp;quot;Helloworld&amp;quot; and there&#039;s a kind of &amp;quot;popup&amp;quot;-Submenu.&lt;br /&gt;
If i rebuild the tutorial, there&#039;s only one menu-point and i can only access the submenu when clicking on &amp;quot;HelloWorld&amp;quot; and then click on e.g. categories.&lt;br /&gt;
Maybe someone could help me fixing it?&lt;/div&gt;</summary>
		<author><name>Selfarian</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_ACL&amp;diff=83927</id>
		<title>Archived talk:Developing a MVC Component/Adding ACL</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_ACL&amp;diff=83927"/>
		<updated>2013-04-05T09:32:58Z</updated>

		<summary type="html">&lt;p&gt;Selfarian: /* Checking the permissions on the Server Side */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking the permissions on the Server Side ==&lt;br /&gt;
&lt;br /&gt;
The tutorial at the moment of writing is not enforcing the permissions on the server side, allowing a forged request to modify data. (Permissions are only declared and set, but not checked!)&lt;br /&gt;
&lt;br /&gt;
Looking at how this is handled in other components in Joomla I&#039;ve noticed that:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;core.delete&amp;quot;&#039;&#039;&#039; is enforced in the model class: &#039;&#039;admin/models/helloworld.php&#039;&#039; by adding these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
        /**&lt;br /&gt;
         * Method to check if it&#039;s OK to delete a message. Overwrites JModelAdmin::canDelete&lt;br /&gt;
         */&lt;br /&gt;
        protected function canDelete($record)&lt;br /&gt;
        {&lt;br /&gt;
            if( !empty( $record-&amp;gt;id ) ){&lt;br /&gt;
                $user = JFactory::getUser();&lt;br /&gt;
                return $user-&amp;gt;authorise( &amp;quot;core.delete&amp;quot;, &amp;quot;com_helloworld.message.&amp;quot; . $record-&amp;gt;id );&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;core.edit&amp;quot;&#039;&#039;&#039; (and &#039;&#039;&#039;core.add&#039;&#039;&#039; if you wish) are enforced in the sub-controller (NOT in the model). I don&#039;t know why this is so, but that&#039;s how other components do it. You need to add the following lines in the file: &#039;&#039;/admin/controllers/helloworld.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Implement to allowAdd or not&lt;br /&gt;
     *&lt;br /&gt;
     * Not used at this time (but you can look at how other components use this....)&lt;br /&gt;
     * Overwrites: JControllerForm::allowAdd&lt;br /&gt;
     *&lt;br /&gt;
     * @param array $data&lt;br /&gt;
     * @return bool&lt;br /&gt;
     */&lt;br /&gt;
    protected function allowAdd($data = array())&lt;br /&gt;
    {&lt;br /&gt;
        return parent::allowAdd($data);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Implement to allow edit or not&lt;br /&gt;
     * Overwrites: JControllerForm::allowEdit&lt;br /&gt;
     *&lt;br /&gt;
     * @param array $data&lt;br /&gt;
     * @param string $key&lt;br /&gt;
     * @return bool&lt;br /&gt;
     */&lt;br /&gt;
    protected function allowEdit($data = array(), $key = &#039;id&#039;)&lt;br /&gt;
    {&lt;br /&gt;
        $id = isset( $data[ $key ] ) ? $data[ $key ] : 0;&lt;br /&gt;
        if( !empty( $id ) ){&lt;br /&gt;
            $user = JFactory::getUser();&lt;br /&gt;
            return $user-&amp;gt;authorise( &amp;quot;core.edit&amp;quot;, &amp;quot;com_helloworld.message.&amp;quot; . $id );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you implement the changes above the tutorial should work as intended. (&#039;&#039;allowAdd&#039;&#039; should also be implemented to check for category permission at least, but since the author of the tutorial did not add a &amp;quot;core.add&amp;quot; action for the &amp;quot;message&amp;quot; section, I&#039;ll leave like it is.&lt;br /&gt;
&lt;br /&gt;
[[User:Ilie.pandia|Ilie Pandia]] ([[User talk:Ilie.pandia|talk]]) 06:08, 11 October 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
Somehow the ACL doesn&#039;t work on Edit permission for me. It shows both Save &amp;amp; New and Save as Copy buttons when it has no create rights. Gone through the code twice, but cannot see anything wrong with it... Anybody else have same problem? --[[User:A2Ggeir|A2Ggeir]] 10:19, 6 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Did a little debug and it seems the values from function canDo() in Helper does not return the right values when it is in edit view. &lt;br /&gt;
&lt;br /&gt;
Result when in listview:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   &#039;core.admin&#039; =&amp;gt; NULL,&lt;br /&gt;
   &#039;core.manage&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.create&#039; =&amp;gt; false,&lt;br /&gt;
   &#039;core.edit&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.delete&#039; =&amp;gt; false,&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result when in editview:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   &#039;core.admin&#039; =&amp;gt; NULL,&lt;br /&gt;
   &#039;core.manage&#039; =&amp;gt; NULL,&lt;br /&gt;
   &#039;core.create&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.edit&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.delete&#039; =&amp;gt; true,&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:A2Ggeir|A2Ggeir]] 12:02, 7 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Delet dosn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
when you want to delete a message it goes wrong and the message appears:&lt;br /&gt;
&lt;br /&gt;
500 - Es ist ein Fehler aufgetreten&lt;br /&gt;
&lt;br /&gt;
Layout „default“ nicht gefunden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
downt know why its not working... maybee some can check this out.&lt;br /&gt;
&lt;br /&gt;
Greetz&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ok, so I have carefully followed the tutorial to here. What I need to know now is HOW do I allow a user who only has edit.own rights to get to the admin edit for the component??&lt;br /&gt;
&lt;br /&gt;
I tried for a while to create an edit page on the front end, but no luck and no help. It occurred to me that perhaps if I could not bring the mountain to Mohammed, I could get Mohammed access to the mountain. But how to do it without making every user an administrator? Even a manager has too much other access.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:IslandBilly|&amp;amp;quot;In theory, there&amp;amp;#39;s no difference between theory and practice; in practice, there is&amp;amp;quot;  --Yogi Berra]] 10:14, 12 November 2011 (CST) Using v1.7&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
I think that this example is missing something in the bind method.&lt;br /&gt;
 &lt;br /&gt;
        // Bind the rules.&lt;br /&gt;
        if (isset($array[&#039;rules&#039;]) &amp;amp;&amp;amp; is_array($array[&#039;rules&#039;]))&lt;br /&gt;
        {&lt;br /&gt;
            $rules = new JAccessRules($array[&#039;rules&#039;]);&lt;br /&gt;
            $this-&amp;gt;setRules($rules);&lt;br /&gt;
        }&lt;br /&gt;
If we don&#039;t bind the rules then they are not saved in the asset table for the message/item...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Missing asset_id field==&lt;br /&gt;
&lt;br /&gt;
I think database table is missing field &amp;quot;asset_id&amp;quot;, which is required. Watch this link here.&lt;br /&gt;
&lt;br /&gt;
https://www.joomlajingle.com/blog/39-joomla-acl-for-developers&lt;br /&gt;
&lt;br /&gt;
[[User:Vipantonio|Vipantonio]] 06:19, 9 August 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Adding Dependent Table Permissions (Expanded from the tutorial and not part of it) ==&lt;br /&gt;
&lt;br /&gt;
It might be worth noting that if one is using dependent tables in a component, the permissions need to be extended to the dependent table&#039;s views. For example, if you had a component for making picture Galleries with pictures as Gallery Items, you would have views for Galleries, Gallery (Edit Form), GalleryItems,and GalleryItem (Edit Form).&lt;br /&gt;
&lt;br /&gt;
Adding permissions to the Gallery views (Galleries and Gallery) would be the same as shown in the tutorial. To add the permissions to the Gallery Item views (GalleryItems and GalleryItem) is slightly different. &lt;br /&gt;
&lt;br /&gt;
Assuming one wants the Gallery Items to have the same permissions as their parent Gallery (and not individual permissions for each item), the foreign key needs to be fed back to the getActions function.&lt;br /&gt;
&lt;br /&gt;
In the GalleryItems view the statement would be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$this-&amp;gt;canDo = GalleryHelper::getActions($this-&amp;gt;items[0]-&amp;gt;gallery_id);&lt;br /&gt;
// gallery_id being the foreign key to the gallery table&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since this is the list view of the items contained in the gallery, the view gets items (plural). Their foreign keys are all the same though, so looking at the first one in the array gets the correct value.&lt;br /&gt;
&lt;br /&gt;
The GalleryItem view, which only pulls up one item would be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$this-&amp;gt;canDo = GalleryHelper::getActions($this-&amp;gt;item-&amp;gt;gallery_id);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The logic may be slightly different as well. For example, adding or deleting a Gallery Item is editing the Gallery, so it may be better to simply use core.edit for every action in the Gallery Items portion of the component.&lt;br /&gt;
&lt;br /&gt;
Lastly, the permission code in the tutorial prevents the tasks from being completed. The views can still be loaded by direct url access as long as the user is logged into the back end and has access to the component. If there are actions that can be taken like using a media manager which may not require the form to be submitted, or if something confidential may be displayed, consider preventing the view with something like this for the dependent table (GalleryItems) where no action should be taken without edit permission:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.edit&#039;))&lt;br /&gt;
{&lt;br /&gt;
	parent::display($tpl);&lt;br /&gt;
} else {&lt;br /&gt;
	JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;COM_GALLERY_NO_EDIT_PERMISSION&#039;), &#039;error&#039;);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or this for the primary table (Galleries) where one might create a new gallery even if they can&#039;t edit some of the galleries:&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($this-&amp;gt;item-&amp;gt;gallery_id)&lt;br /&gt;
{&lt;br /&gt;
	if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.edit&#039;))&lt;br /&gt;
	{&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	} else {&lt;br /&gt;
		JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;COM_GALLERY_NO_EDIT_PERMISSION&#039;), &#039;error&#039;);&lt;br /&gt;
	}&lt;br /&gt;
// IF THIS IS A NEW ITEM (gallery_id == null)&lt;br /&gt;
} else {&lt;br /&gt;
	if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.create&#039;))&lt;br /&gt;
	{&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	} else {&lt;br /&gt;
		JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;COM_GALLERY_NO_CREATE_PERMISSION&#039;), &#039;error&#039;);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Neo314|Neo314]] ([[User talk:Neo314|talk]]) 07:59, 12 March 2013 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Setting of permissions on the item level is shown twice ==&lt;br /&gt;
&lt;br /&gt;
The setting of permissions on the item level is shown twice. One time directly &amp;quot;under&amp;quot; categories-selection and one time below the complete form (which is the correct one).&lt;br /&gt;
Here&#039;s my vereinsverwaltung.xml (i replaced &amp;quot;helloworld&amp;quot; with &amp;quot;vereinsverwaltung&amp;quot; so its admin/models/forms/helloworld.xml)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;xml&#039;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;form addrulepath=&amp;quot;/administrator/components/com_vereinsverwaltung/models/rules&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset&amp;gt;&lt;br /&gt;
		&amp;lt;field name=&amp;quot;id&amp;quot; type=&amp;quot;hidden&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;field name=&amp;quot;greeting&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
			label=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_GREETING_LABEL&amp;quot;&lt;br /&gt;
			description=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_GREETING_DESC&amp;quot;&lt;br /&gt;
			size=&amp;quot;40&amp;quot; class=&amp;quot;inputbox validate-greeting&amp;quot; validate=&amp;quot;greeting&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;field name=&amp;quot;catid&amp;quot; type=&amp;quot;category&amp;quot; extension=&amp;quot;com_vereinsverwaltung&amp;quot;&lt;br /&gt;
			class=&amp;quot;inputbox&amp;quot; default=&amp;quot;&amp;quot;&lt;br /&gt;
			label=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_CATID_LABEL&amp;quot;&lt;br /&gt;
			description=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_CATID_DESC&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOPTION_SELECT_CATEGORY&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/field&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;fieldset name=&amp;quot;accesscontrol&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;field name=&amp;quot;asset_id&amp;quot; type=&amp;quot;hidden&amp;quot; filter=&amp;quot;unset&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;field name=&amp;quot;rules&amp;quot;&lt;br /&gt;
                type=&amp;quot;rules&amp;quot;&lt;br /&gt;
                label=&amp;quot;JFIELD_RULES_LABEL&amp;quot;&lt;br /&gt;
                translate_label=&amp;quot;false&amp;quot;&lt;br /&gt;
                filter=&amp;quot;rules&amp;quot;&lt;br /&gt;
                validate=&amp;quot;rules&amp;quot;&lt;br /&gt;
                class=&amp;quot;inputbox&amp;quot;&lt;br /&gt;
                component=&amp;quot;com_vereinsverwaltung&amp;quot;&lt;br /&gt;
                section=&amp;quot;message&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;fieldset&lt;br /&gt;
			name = &amp;quot;params&amp;quot;&lt;br /&gt;
			label = &amp;quot;JGLOBAL_FIELDSET_DISPLAY_OPTIONS&amp;quot;&lt;br /&gt;
		&amp;gt;&lt;br /&gt;
			&amp;lt;field&lt;br /&gt;
				name=&amp;quot;show_category&amp;quot;&lt;br /&gt;
				type=&amp;quot;list&amp;quot;&lt;br /&gt;
				label=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_SHOW_CATEGORY_LABEL&amp;quot;&lt;br /&gt;
				description=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_SHOW_CATEGORY_DESC&amp;quot;&lt;br /&gt;
				default=&amp;quot;&amp;quot;&lt;br /&gt;
			&amp;gt;&lt;br /&gt;
				&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;JGLOBAL_USE_GLOBAL&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JHIDE&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JSHOW&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;/field&amp;gt;&lt;br /&gt;
		&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;/fields&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maybe someone could help me to fix it?&lt;/div&gt;</summary>
		<author><name>Selfarian</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_ACL&amp;diff=83926</id>
		<title>Archived talk:Developing a MVC Component/Adding ACL</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_ACL&amp;diff=83926"/>
		<updated>2013-04-05T09:32:13Z</updated>

		<summary type="html">&lt;p&gt;Selfarian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking the permissions on the Server Side ==&lt;br /&gt;
&lt;br /&gt;
The tutorial at the moment of writing is not enforcing the permissions on the server side, allowing a forged request to modify data. (Permissions are only declared and set, but not checked!)&lt;br /&gt;
&lt;br /&gt;
Looking at how this is handled in other components in Joomla I&#039;ve noticed that:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;core.delete&amp;quot;&#039;&#039;&#039; is enforced in the model class: &#039;&#039;admin/models/helloworld.php&#039;&#039; by adding these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
        /**&lt;br /&gt;
         * Method to check if it&#039;s OK to delete a message. Overwrites JModelAdmin::canDelete&lt;br /&gt;
         */&lt;br /&gt;
        protected function canDelete($record)&lt;br /&gt;
        {&lt;br /&gt;
            if( !empty( $record-&amp;gt;id ) ){&lt;br /&gt;
                $user = JFactory::getUser();&lt;br /&gt;
                return $user-&amp;gt;authorise( &amp;quot;core.delete&amp;quot;, &amp;quot;com_helloworld.message.&amp;quot; . $record-&amp;gt;id );&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;core.edit&amp;quot;&#039;&#039;&#039; (and &#039;&#039;&#039;core.add&#039;&#039;&#039; if you wish) are enforced in the sub-controller (NOT in the model). I don&#039;t know why this is so, but that&#039;s how other components do it. You need to add the following lines in the file: &#039;&#039;/admin/controllers/helloworld.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Implement to allowAdd or not&lt;br /&gt;
     *&lt;br /&gt;
     * Not used at this time (but you can look at how other components use this....)&lt;br /&gt;
     * Overwrites: JControllerForm::allowAdd&lt;br /&gt;
     *&lt;br /&gt;
     * @param array $data&lt;br /&gt;
     * @return bool&lt;br /&gt;
     */&lt;br /&gt;
    protected function allowAdd($data = array())&lt;br /&gt;
    {&lt;br /&gt;
        return parent::allowAdd($data);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /**&lt;br /&gt;
     * Implement to allow edit or not&lt;br /&gt;
     * Overwrites: JControllerForm::allowEdit&lt;br /&gt;
     *&lt;br /&gt;
     * @param array $data&lt;br /&gt;
     * @param string $key&lt;br /&gt;
     * @return bool&lt;br /&gt;
     */&lt;br /&gt;
    protected function allowEdit($data = array(), $key = &#039;id&#039;)&lt;br /&gt;
    {&lt;br /&gt;
        $id = isset( $data[ $key ] ) ? $data[ $key ] : 0;&lt;br /&gt;
        if( !empty( $id ) ){&lt;br /&gt;
            $user = JFactory::getUser();&lt;br /&gt;
            return $user-&amp;gt;authorise( &amp;quot;core.edit&amp;quot;, &amp;quot;com_helloworld.message.&amp;quot; . $id );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you implement the changes above the tutorial should work as intended. (&#039;&#039;allowAdd&#039;&#039; should also be implemented to check for category permission at least, but since the author of the tutorial did not add a &amp;quot;core.add&amp;quot; action for the &amp;quot;message&amp;quot; section, I&#039;ll leave like it is.&lt;br /&gt;
&lt;br /&gt;
[[User:Ilie.pandia|Ilie Pandia]] ([[User talk:Ilie.pandia|talk]]) 06:08, 11 October 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
Somehow the ACL doesn&#039;t work on Edit permission for me. It shows both Save &amp;amp; New and Save as Copy buttons when it has no create rights. Gone through the code twice, but cannot see anything wrong with it... Anybody else have same problem? --[[User:A2Ggeir|A2Ggeir]] 10:19, 6 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Did a little debug and it seems the values from function canDo() in Helper does not return the right values when it is in edit view. &lt;br /&gt;
&lt;br /&gt;
Result when in listview:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   &#039;core.admin&#039; =&amp;gt; NULL,&lt;br /&gt;
   &#039;core.manage&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.create&#039; =&amp;gt; false,&lt;br /&gt;
   &#039;core.edit&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.delete&#039; =&amp;gt; false,&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result when in editview:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   &#039;core.admin&#039; =&amp;gt; NULL,&lt;br /&gt;
   &#039;core.manage&#039; =&amp;gt; NULL,&lt;br /&gt;
   &#039;core.create&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.edit&#039; =&amp;gt; true,&lt;br /&gt;
   &#039;core.delete&#039; =&amp;gt; true,&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:A2Ggeir|A2Ggeir]] 12:02, 7 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Delet dosn&#039;t work ==&lt;br /&gt;
&lt;br /&gt;
when you want to delete a message it goes wrong and the message appears:&lt;br /&gt;
&lt;br /&gt;
500 - Es ist ein Fehler aufgetreten&lt;br /&gt;
&lt;br /&gt;
Layout „default“ nicht gefunden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
downt know why its not working... maybee some can check this out.&lt;br /&gt;
&lt;br /&gt;
Greetz&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Ok, so I have carefully followed the tutorial to here. What I need to know now is HOW do I allow a user who only has edit.own rights to get to the admin edit for the component??&lt;br /&gt;
&lt;br /&gt;
I tried for a while to create an edit page on the front end, but no luck and no help. It occurred to me that perhaps if I could not bring the mountain to Mohammed, I could get Mohammed access to the mountain. But how to do it without making every user an administrator? Even a manager has too much other access.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:IslandBilly|&amp;amp;quot;In theory, there&amp;amp;#39;s no difference between theory and practice; in practice, there is&amp;amp;quot;  --Yogi Berra]] 10:14, 12 November 2011 (CST) Using v1.7&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
I think that this example is missing something in the bind method.&lt;br /&gt;
 &lt;br /&gt;
        // Bind the rules.&lt;br /&gt;
        if (isset($array[&#039;rules&#039;]) &amp;amp;&amp;amp; is_array($array[&#039;rules&#039;]))&lt;br /&gt;
        {&lt;br /&gt;
            $rules = new JAccessRules($array[&#039;rules&#039;]);&lt;br /&gt;
            $this-&amp;gt;setRules($rules);&lt;br /&gt;
        }&lt;br /&gt;
If we don&#039;t bind the rules then they are not saved in the asset table for the message/item...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Missing asset_id field==&lt;br /&gt;
&lt;br /&gt;
I think database table is missing field &amp;quot;asset_id&amp;quot;, which is required. Watch this link here.&lt;br /&gt;
&lt;br /&gt;
https://www.joomlajingle.com/blog/39-joomla-acl-for-developers&lt;br /&gt;
&lt;br /&gt;
[[User:Vipantonio|Vipantonio]] 06:19, 9 August 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Adding Dependent Table Permissions (Expanded from the tutorial and not part of it) ==&lt;br /&gt;
&lt;br /&gt;
It might be worth noting that if one is using dependent tables in a component, the permissions need to be extended to the dependent table&#039;s views. For example, if you had a component for making picture Galleries with pictures as Gallery Items, you would have views for Galleries, Gallery (Edit Form), GalleryItems,and GalleryItem (Edit Form).&lt;br /&gt;
&lt;br /&gt;
Adding permissions to the Gallery views (Galleries and Gallery) would be the same as shown in the tutorial. To add the permissions to the Gallery Item views (GalleryItems and GalleryItem) is slightly different. &lt;br /&gt;
&lt;br /&gt;
Assuming one wants the Gallery Items to have the same permissions as their parent Gallery (and not individual permissions for each item), the foreign key needs to be fed back to the getActions function.&lt;br /&gt;
&lt;br /&gt;
In the GalleryItems view the statement would be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$this-&amp;gt;canDo = GalleryHelper::getActions($this-&amp;gt;items[0]-&amp;gt;gallery_id);&lt;br /&gt;
// gallery_id being the foreign key to the gallery table&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since this is the list view of the items contained in the gallery, the view gets items (plural). Their foreign keys are all the same though, so looking at the first one in the array gets the correct value.&lt;br /&gt;
&lt;br /&gt;
The GalleryItem view, which only pulls up one item would be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$this-&amp;gt;canDo = GalleryHelper::getActions($this-&amp;gt;item-&amp;gt;gallery_id);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The logic may be slightly different as well. For example, adding or deleting a Gallery Item is editing the Gallery, so it may be better to simply use core.edit for every action in the Gallery Items portion of the component.&lt;br /&gt;
&lt;br /&gt;
Lastly, the permission code in the tutorial prevents the tasks from being completed. The views can still be loaded by direct url access as long as the user is logged into the back end and has access to the component. If there are actions that can be taken like using a media manager which may not require the form to be submitted, or if something confidential may be displayed, consider preventing the view with something like this for the dependent table (GalleryItems) where no action should be taken without edit permission:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.edit&#039;))&lt;br /&gt;
{&lt;br /&gt;
	parent::display($tpl);&lt;br /&gt;
} else {&lt;br /&gt;
	JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;COM_GALLERY_NO_EDIT_PERMISSION&#039;), &#039;error&#039;);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or this for the primary table (Galleries) where one might create a new gallery even if they can&#039;t edit some of the galleries:&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($this-&amp;gt;item-&amp;gt;gallery_id)&lt;br /&gt;
{&lt;br /&gt;
	if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.edit&#039;))&lt;br /&gt;
	{&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	} else {&lt;br /&gt;
		JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;COM_GALLERY_NO_EDIT_PERMISSION&#039;), &#039;error&#039;);&lt;br /&gt;
	}&lt;br /&gt;
// IF THIS IS A NEW ITEM (gallery_id == null)&lt;br /&gt;
} else {&lt;br /&gt;
	if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.create&#039;))&lt;br /&gt;
	{&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	} else {&lt;br /&gt;
		JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;COM_GALLERY_NO_CREATE_PERMISSION&#039;), &#039;error&#039;);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Neo314|Neo314]] ([[User talk:Neo314|talk]]) 07:59, 12 March 2013 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Checking the permissions on the Server Side ==&lt;br /&gt;
&lt;br /&gt;
The setting of permissions on the item level is shown twice. One time directly &amp;quot;under&amp;quot; categories-selection and one time below the complete form (which is the correct one).&lt;br /&gt;
Here&#039;s my vereinsverwaltung.xml (i replaced &amp;quot;helloworld&amp;quot; with &amp;quot;vereinsverwaltung&amp;quot; so its admin/models/forms/helloworld.xml)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;xml&#039;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;form addrulepath=&amp;quot;/administrator/components/com_vereinsverwaltung/models/rules&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset&amp;gt;&lt;br /&gt;
		&amp;lt;field name=&amp;quot;id&amp;quot; type=&amp;quot;hidden&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;field name=&amp;quot;greeting&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
			label=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_GREETING_LABEL&amp;quot;&lt;br /&gt;
			description=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_GREETING_DESC&amp;quot;&lt;br /&gt;
			size=&amp;quot;40&amp;quot; class=&amp;quot;inputbox validate-greeting&amp;quot; validate=&amp;quot;greeting&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;field name=&amp;quot;catid&amp;quot; type=&amp;quot;category&amp;quot; extension=&amp;quot;com_vereinsverwaltung&amp;quot;&lt;br /&gt;
			class=&amp;quot;inputbox&amp;quot; default=&amp;quot;&amp;quot;&lt;br /&gt;
			label=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_CATID_LABEL&amp;quot;&lt;br /&gt;
			description=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_CATID_DESC&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOPTION_SELECT_CATEGORY&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/field&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;fieldset name=&amp;quot;accesscontrol&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;field name=&amp;quot;asset_id&amp;quot; type=&amp;quot;hidden&amp;quot; filter=&amp;quot;unset&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;field name=&amp;quot;rules&amp;quot;&lt;br /&gt;
                type=&amp;quot;rules&amp;quot;&lt;br /&gt;
                label=&amp;quot;JFIELD_RULES_LABEL&amp;quot;&lt;br /&gt;
                translate_label=&amp;quot;false&amp;quot;&lt;br /&gt;
                filter=&amp;quot;rules&amp;quot;&lt;br /&gt;
                validate=&amp;quot;rules&amp;quot;&lt;br /&gt;
                class=&amp;quot;inputbox&amp;quot;&lt;br /&gt;
                component=&amp;quot;com_vereinsverwaltung&amp;quot;&lt;br /&gt;
                section=&amp;quot;message&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;fieldset&lt;br /&gt;
			name = &amp;quot;params&amp;quot;&lt;br /&gt;
			label = &amp;quot;JGLOBAL_FIELDSET_DISPLAY_OPTIONS&amp;quot;&lt;br /&gt;
		&amp;gt;&lt;br /&gt;
			&amp;lt;field&lt;br /&gt;
				name=&amp;quot;show_category&amp;quot;&lt;br /&gt;
				type=&amp;quot;list&amp;quot;&lt;br /&gt;
				label=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_SHOW_CATEGORY_LABEL&amp;quot;&lt;br /&gt;
				description=&amp;quot;COM_VEREINSVERWALTUNG_VEREINSVERWALTUNG_FIELD_SHOW_CATEGORY_DESC&amp;quot;&lt;br /&gt;
				default=&amp;quot;&amp;quot;&lt;br /&gt;
			&amp;gt;&lt;br /&gt;
				&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;JGLOBAL_USE_GLOBAL&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JHIDE&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JSHOW&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;/field&amp;gt;&lt;br /&gt;
		&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;/fields&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maybe someone could help me to fix it?&lt;/div&gt;</summary>
		<author><name>Selfarian</name></author>
	</entry>
</feed>