Notes on Permissions

jDownloads Notes on Permissions

A simple way of seeing the Permissions for the jDownloads component is to go to the Control panel and then click on the Options button near top right. This button is also available on the User Groups Settings.

This set permissions are often referred to as the Component Permissions.

This article is a first look at Permissions.  To see how to use them together with View Access Levels see the article Controlled Access to Categories and Downloads (Permissions & Access Levels)

Control Panel

This shows the root or Component jDownloads Permissions for each user group. This set of permissions provide the basis of what the Categories and Downloads will inherit.

After clicking on the Options button it opens up for the Public group as shown below. These settings are the initial default access levels for the Public group; note that there is no public access for anything. That is why when installing jDownloads for Joomla 2.5.x or 3.x that you are requested to visit the Permissions setup. For most publically accessible sites the very least would be to set the Download access to ‘allowed’.

However in all but the very simplest permissions scheme these 'Component Permissions' will be set to Inherit for the Download permission.  Leaving Pubic user group with Allowed will mean everyone can download everything.  So after initial testing be prepared to reset the Download permission back to Inherit.

ACL jDownloads-ACLs 

Typically ‘Edit Own’ as well as ‘Download’ would be allowed as indicated below. Note that when you change from ‘Inherited’ to ‘Allowed’ using the pull-down box the actual status in the right hand column does not change until you do a Save. This applies to any change of the Permissions.

ACL jDownloads-ACLs2

jDownloads Permissions

ACL jDownloads-Configure
 ACL jDownloads-AccesAdmin
 ACL jDownloads-Create
 ACL jDownloads-Delete
 ACL jDownloads-Edit
 ACL jDownloads-EditState
 ACL jDownloads-EditOwn
ACL jDownloads-Download 
ACL jDownloads-Config-Tools
ACL jDownloads-UserGroup
 

There are ten Permissions that apply to the component as a whole. Notes on the interpretation on the states are shown opposite. Certain Permissions are only applicable to using the jDownloads Component itself, specifically:

  • Configure,
  • Access Administration Interface,
  • Configuration & Tools
  • User Group Settings

Categories, subcategories and further sub sub categories and so on, and Downloads all have their own individual Permissions for each Joomla user group. As noted earlier the Component Permissions act as the ‘master defaults’ for the top level category Permissions. That is when we create a main Category the initial default permission settings for each user group are set from those in the Component Permissions for that user group.

 These Component Permissions for each user group are accessible by using the Options button on jDownloads Control page tool bar.

 

 

 

 

 

 

 

 

Categories, Subcategories and Downloads form a tree structure as illustrated opposite.Folders tree
In this very simple example there are two ‘main’ categories, each with two sub categories, and each sub-category has three downloads. Of course we can have sub-sub-categories and so on. Also we can have Downloads at any level except at the root. The actual structure may be, and usually is, much more complex than the one illustrated.

This tree structure is the way a regular file system is organised; it is also the way the download files are stored in directories. More significantly in the present context it represents the way in which new categories and downloads get their default Permissions. Here the Root level is the Component Permission. New categories and downloads  get their default Permissions for each user group from their immediate parent.

Remember however that as is usual for permission schemes, the Joomla Permissions scheme is based upon ‘deny’. Thus if a Permission is ‘denied’ at one level then it cannot be regained at a subsequent child level. For example if a particular group is denied ‘Download’ access at the Component level, which is the root level, then that group cannot execute a download of anything. Basically when stting up permissions for jDownloads never use Deny as it is most likely to have unwanted side effects.

Now let us carry out some simple examples of creating a category with emphasis on the Permissions. We will use the Public Group Permissions as setting permissions for other groups is very similar.

In this example the Component PermissionsPublicComponentsDefault for the Public Group is shown opposite. So these will be the default settings when we create a first level Category.

 

 

 

 

 

 

 

Now suppose we create a new ‘main’ category,ColinCat
which is one with no parent category, as shown opposite.

 

 

 

 

 

 

 

When we click on the Set permissions buttonColinCatACL-before SAVE then we are taken to the view opposite.

Now this might cause some confusion, and perhaps concern, as all permissions appear as ‘Not Allowed’ when we were expecting Edit Own and Downloads to be permitted. This is because we need to do a Save before the actual permissions are shown. This is not due to jDownloads but is a ‘feature’ of Joomla!

 After doing thColinCatACL After SAVEe Save then we have the permissions as expected.

 

 

 

 

Suppose we now create a sub category Colin SubCatand look at the permissions. As before one needs to do a Save in order to see what is actually set. Also suppose that we now wish to disallow ‘Edit Own’. This is quite simple as we just use the pulldown and select ‘Disallowed’.

The result is shown below after we have Saved.

 

 

SubCatACL

As a final step let us create a Download in this sub-categoryNew Download

 

 

 

 

 

After Saving, the permissions for the Public Group will look like below as they have been 'cascaded down' from those of the parent sub category.

SubCatACL

Now suppose we realise that we actually want to allow Edit Own, and to do this we could try setting the ‘Denied’ to ‘Allowed’. So after remembering to Save,  this will then show as a ‘conflict’.

 DownloadACLconflict

  To correct this we need to go back up a level and set ‘Edit Own’ back to ‘Inherited’, and of course Save.

 

Colin Mercer, July 2014 V1.4 - revised Nov 2014 and Feb 2015

  • Written by: Colin Mercer
  • Monday, 31 March 2014