?
avatar orware
orware
20 May 2018

Summary About the Issue

After creating this issue I'll be submitting a pull request with the relatively minor changes needed to help with the issues I've encountered managing a relatively larger Joomla site where I've created ~100 different groups that limit our staff to only working with Categories/Articles for the areas they need to manage on our website.

Even if we didn't have the need for all of this distributed management and just had a Super User managing the over 1600 categories we have on the site, these updates will also be useful.

These are the main items that the PR will address:

  • Super Users do not have an easy way to filter the Categories List View by one or more categories. There is simply no Category filter at all currently. However, this comes in handy for Super Users who may receive a request and need to make a set of changes affecting a particular section on their website. The Search functionality is helpful for retrieving a specific Category quickly for editing, but isn't really useful if you're going to be working with let's say that category and its children too. Being able to filter by a Category helps with this situation quite a bit and makes it easier to manage a Category and its children easily in the backend.
  • Limited Users, which have been assigned to a group with limited access to a couple of categories (and their subcategories) currently have a really hard time managing their content with the way things are currently. On our site, with the over 1600 categories, these limited users are forced to go through the paginated results until they find the page where their particular categories are in the hierarchy (all of the categories they don't have access to are listed, but grayed out). This isn't a really good experience for them. A better thing to do would be to filter the list of categories these users are presented to just the ones they have access to, which would lead to a much cleaner backend experience for them and improve usability considerably for these users.
  • Additionally, in the Articles List View, Limited Users are also similarly presented with the list of all articles in the system, even if they do not have access to them. This is less of an issue on our site (where we primarily use Categories for our site structure) but for those that might have hundreds of articles it would presents a similar usability issue for Limited Users so a similar filtering should be occurring in this view too so that these users will only see the Articles in the Categories they have access to.

For existing user Groups inhering from groups like the Manager / Administrator / Super Users there shouldn't be any visible behavior changes aside from the new Category filtering additions mentioned in the first item above. Mainly this set of changes only takes effect if you happen to be in a Limited User Group.

Two additional commits as part of the PR will address the following extra items:

  • Limited Users normally do not get to see the Edit / Publish / Unpublish / Archive / Trash buttons in the top toolbar of the List View. A minor change to the view.html.php file helps allow those buttons to be visible for these users.
  • When clearing the filters in the Categories List View I noticed the redirection that was occurring seemed to be missing the extension parameter in the URL (which causes an issue if you want to go to your address bar and click in there and press Enter to Reload the page). The same thing occurs when running a normal search. A minor adjustment to action attribute of the form used in this view helps restore that value so that it is always present after running a search or clearing the filters. (NOTE: This issue does not affect Super Users or Administrators, but does affect the Managers group...so this may be why it hasn't been reported previously).

I originally made these changes as custom additions in our much older Joomla site, but since moving to Joomla 3 more recently I hadn't spent the extra time needed to recreate them for Joomla 3. My goal with creating this issue and the PR for it, would be to have these additions be included for all to benefit from and to help make it easier for me moving forward (because otherwise I'll have to maintain these patches and apply them manually after each Joomla update, and it would be best if they were simply a part of Joomla).

Steps to reproduce the issue

This will be fairly lengthy since I need to provide all of the details needed to create a Limited Group first, but if it ends up being more helpful to demonstrate the issue by providing a simple backup copy of my test site I have locally or to create a Youtube video going over things I can do that as well.

Create a fresh/new Joomla install

Create Admin User:
E: admin@example.com
U: admin
P: 1234

Create Basic Backend Access Group:

  1. Create a new group named "Basic Backend Access" with the "Registered" group set as its parent.
  2. Add the new "Basic Backend Access" group to the "Special" Access Level.
  3. Go to the System | Global Configuration area and then switch to the Permissions subtab. Set the "Administrator Login" permission to "Allowed" for the "Basic Backend Access" group.

This "Basic Backend Access" group will allow a clean slate for you to build off of for granting users backend access without all of the extra default access provided by the default Administrator groups provided by Joomla.

Create Backend Content Creators Group:

  1. Create a new group named "Backend Content Creators" with the "Basic Backend Access" group set as its parent.
  2. Go to the "Articles" Options view and go to the Permissions subtab. Set the "Access Administration Interface" permission to "Allowed" for the "Backend Content Creators" group.

This "Backend Content Creators" group will allow a clean slate for you to build off of for granting users access to various content items (Articles or Categories) to manage.

At this point, if you wish, you can create a test user.

Create Test User:
E: test@example.com
U: test
P: 1234

You can assign the Test User to the Basic Backend Access group and test it to see how when you login with that group, you can get into the Backend, but you can't do anything in there.
Then you can assign the Test User to the Backend Content Creators group and see that now you can get into the Articles and Categories areas, but since you don't have any other permissions you can't edit anything or create any new content items.

Next, let's create a few Categories and then we'll create another group and assign it to have access to one of these new Categories, creating a situation where a user that only has access to a limited set of Categories (which is our use case for this setup for our employees to handle their content areas on our website).

Just to keep things somewhat simple, these are the extra categories that were created:

1st Level Category
	2nd Level Category
		3rd Level Category
			4th Level Category
				5th Level Category
1st Level Category - Example 2
	2nd Level Category - Example 2
		3rd Level Category - Example 2

In addition, I created an article in each of the categories as an example so that there would be some articles in the system for taking some screenshots.

Now, let's go ahead and create a new group that will give a user access to the 3rd Level Category and its children.

Create a 3rd Level Content Group:

  1. Create a new group named "3rd Level Content Group" with the "Backend Content Creators" group as its parent.
  2. Go to the "3rd Level Category" in the Category Manager and go to its Permissions subtab. Set the various permissions (Create/Delete/Edit/Edit State/Edit Own) to "Allowed" and save.

Now put the Test user into this 3rd Level Content Group and login using it once again.

(You may want to skip down to the Actual result section first since it continues the testing steps and then come back up to the Expected result section afterward).

Expected result

  • Have ability to filter by one or more Categories in the Categories List View
  • Have Limited Users only see the Articles or Categories they have access to in the backend (rather than all Articles and Categories with the majority of them grayed out).
  • Have Limited Users be able to see the Edit / Publish / Unpublish / Archive / Trash buttons in the Toolbar area

Actual result

With the default Administrator groups provided by Joomla, the type of issues I've noticed with our larger distributed content management setup (similar to what's described above) aren't normally encountered, because even the "basic" Manager group provides full access to com_content.

With the limited Test user account though, created using all of the steps shared above, Joomla by default does a few things that aren't the best, particularly once your site has grown to a large number of categories like ours (since we use Categories primarily, so we have about 1600+ of them currently).

Category Manager Issues Noted When Using a Limited User Account:

  1. List View shows All Categories in the System (rather than just the set of Categories the user has access to).
    As you can imagine, when you have a lot of Categories, and you're using limited access groups like the "3rd Level Content Group" example above, if the backend is going to show you all of the categories it makes it really difficult for our users who would much rather see just the list of Categories that they have access to. Since Joomla doesn't currently do this by default, these users have to browse through multiple pages in the Categories List View to find the ones they have access to or must resort to the Search feature (which is helpful for a specific category, but doesn't let you know easily work with a whole hierarchy of the categories a user might have access to).
  2. List View does not allow filtering by Parent Category. The Articles view allows filtering articles by Parent Category, but it's implementation is somewhat flawed in that it provides the full list of Categories the user has access to in the filter dropdown, rather than just the Categories the user has access to. In the Categories view, filtering by Parent Category is not provided as an option, but it would be very handy to include, particularly for users that have access to lots of Categories (e.g. As a super user overseeing a whole site, at times you have to assist an area with changes in their Categories, so it can be useful to be able to quickly filter the Categories List to just a particular hierarchy so that you can more easily work with the correct Categories).

Article Manager Issues Noted When Using a Limited User Account:

  1. List View shows All Articles in the System (rather than just the set of Articles the user has access to).
    My feelings here are similar to the situation for the Categories above. For a site that would be primarily using Articles as their main type of Content, this ability would make a lot of sense to have available, just like it makes sense for our site which has a lot of Categories.
  2. List View should only allow filtering by Allowed Parent Categories (rather than the entire set of Categories).
    I noticed that for a limited user, the dropdown filter for Categories on the Articles view shows all Categories when it should really just show the Categories the user has access to.

When editing or creating a new Article or Category the Category selection dropdown on those views correctly shows just the Categories a user has access to so no changes are needed there that I can think of.

This would mainly be an enhancement of the Articles and Categories List Views if adopted and likely wouldn't impact current sites negatively, since most are using the built-in Joomla Groups for Administration. This would mainly apply to larger, more complex sites like ours which uses Limited User Groups for Editing Content as I've described above since it would only change the way things are for these types of Administrator users.

Before the changes shared in this pull request are applied, the Articles and Categories List Views will behave as described above when using a Limited User Group.
After the changes are applied, the issues described above should be resolved.

System information (as much as possible)

The functionality desired/described above is currently missing in the current release of Joomla as of this report date (05/20/2018).

Additional comments

After submitting this issue and the PR to go with it I'll take a closer look at what Travis CI tells me in terms of issues and get those corrected. If some folks would like a copy of my test site to see the issue more easily for themselves I can provide a copy of the database I'm using on my end which has the test accounts, groups, categories, and articles I've described above. I'll try and create a Youtube video as well since that may actually be the easiest way of going over the issue in more detail visually. I have some screenshots already made that should hopefully show the issue too which I can attach here.

avatar orware orware - open - 20 May 2018
avatar joomla-cms-bot joomla-cms-bot - labeled - 20 May 2018
avatar orware
orware - comment - 20 May 2018

These four screenshots show the following steps in the pre-testing/setup process:

  • Logging in with the "Basic Backend Access" group (you can login to the Administrator area, but don't have access to do anything)
  • Logging in with the "Backend Content Creators" group (you can login to the Administrator area, and access com_content areas, but do not have any direct access to any Articles/Categories so any you have will be displayed but will be grayed out due to lack of permissions).
  • The 3rd image shows the Articles area with the grayed out sample article
  • The 4th image shows the Categories area with the grayed out sample category
    This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.
avatar orware
orware - comment - 20 May 2018

Hmmm...images didn't get uploaded correctly in the previous comment.

Image #1 - Logging in with the "Basic Backend Access" group

Image #2 - Logging in with the "Backend Content Creators" group

Image #3 - Image shows the Articles area with the grayed out sample article

Image #4 - Image shows the Categories area with the grayed out sample category


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 20 May 2018

The next two images show:

  • Category Manager for a Limited User (also note that there is no Category filter available in the Search Tools area)
  • Article Manager for a Limited User

Note that in both situations the user sees the full list of Categories or Articles on the site but those they do not have access to are grayed out. Now imagine you have a whole lot more Categories and Articles (so the List View is paginated). A limited user will have a much harder time finding the ones they have access to modify in this case because those will not be displayed in the first page of results as shown in my screenshot...they would have to browse through multiple pages each time which isn't a great user experience.

screen shot 2018-05-20 at 17 47 41

screen shot 2018-05-20 at 17 47 43


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 20 May 2018

The next 3 images go over the permissions setup for the Basic Backend Access group:

  • First, create a new User Group named "Basic Backend Access" that inherits from the "Registered" user group.
  • Next, add the "Basic Backend Access" group to the "Special" User Access Level.
  • Lastly, go to the Global Configuration Permissions area and add the "Basic Backend Access" group to the "Administrator Login" permission.

Now if you were to test this with a user, they would be able to login to the Administrator, but would not have access to do anything so this gives you a blank slate to build off of and just assign the extra rights a user might need from a group that inherits from this one.

screen shot 2018-05-20 at 17 53 00

screen shot 2018-05-20 at 17 53 05

screen shot 2018-05-20 at 17 53 08


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 20 May 2018

The next two images are for creating the "Backend Content Creators" group.

  • First, you create a new user group named "Backend Content Creators" that inherits from the "Basic Backend Access" group we just created above.
  • Next, we go into com_content's Options area to the Permissions tab and assign the "Backend Content Creators" group the "Access Administration Interface" permission.

This gives us a foundation to inherit from for any user we want to have working with content on our site because the user will be able to login to the Administrator area and will be able to access com_content (but will not have access to any specific Articles/Categories yet).

screen shot 2018-05-20 at 17 57 07

screen shot 2018-05-20 at 17 57 11


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 20 May 2018

The next two screenshots show an example of creating a Limited User Group which will only have access to a specific set of Categories on our site.

With the foundation previously created with the "Basic Backend Access" and "Backend Content Creators" groups we will:

  • Create a new group to represent the area the group will be managing. For this test example, the group is named "3rd Level Content Group" since they will be able to access that 3rd Level Category and its children (but not the 1st and 2nd Level Categories). This group will be inheriting from the "Backend Content Creators" group.
  • Next, go find the Category the user will be assigned and open it up for Editing. Then go to its Permissions tab and assign the new "3rd Level Content Group" all of the permissions for that Category (Create / Delete / Edit / Edit State / Edit Own).

Once saved and assigned to a user, this group will now allow that user to only access the 3rd Level Category and its children (and their articles) on your site.

By default, Joomla would show these users all of the Articles and Categories on your site in addition to the ones they have access to, but will have the others grayed out. For a site with a lot of Articles / Categories finding just the ones the user has been assigned will be somewhat difficult and would force them to continuously use the Search option just to filter the results to something a bit more meaningful for them.

After applying the changes provided in the PR, this will make for a more usable experience for these users since they will only be presented with the Articles / Categories they have access to. For Super Users they will also be able to take advantage of the new Category filter available in the Categories List View, to make it easier for them to filter the list of Categories to a particular area they might be working with on that particular day.

screen shot 2018-05-20 at 18 00 15

screen shot 2018-05-20 at 18 00 18


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 20 May 2018

The following two screenshots show the way the backend would look for a limited user assigned to the "3rd Level Content Group" after the changes in the associated Pull Request have been applied.

  • In the first screenshot you'll note that no grayed out Categories are included in the list (only ones the user has access to will be listed). The appropriate toolbar buttons are still displayed for these users to utilize as well.
  • In the second screenshot you'll see that the limited results have been further filtered by the "4th Level Category" so the "3rd Level Category" above it is excluded from the results.

screen shot 2018-05-20 at 23 31 12

screen shot 2018-05-20 at 23 31 16


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 20 May 2018

The following two screenshots show the way the Articles List view would look for a limited user assigned to the "3rd Level Content Group" after the changes in the associated Pull Request have been applied.

  • In the first screenshot you'll see that only the Articles the user has access to are being displayed (no grayed out articles are included since they are automatically being filtered out since those other articles belong to categories the user doesn't have access to).
  • In the second screenshot the list of Articles has been filtered so only those filed within the "4th Level Category" or one of its children are included in the results (this filters out the "3rd Level Article" shown in the first screenshot).

screen shot 2018-05-20 at 23 34 04

screen shot 2018-05-20 at 23 34 07


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar orware
orware - comment - 21 May 2018

Pull Request Link:

Pull Request #20508


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.

avatar joomla-cms-bot joomla-cms-bot - change - 21 May 2018
Closed_By franz-wohlkoenig joomla-cms-bot
avatar joomla-cms-bot joomla-cms-bot - close - 21 May 2018
avatar franz-wohlkoenig franz-wohlkoenig - change - 21 May 2018
Status New Closed
Closed_Date 0000-00-00 00:00:00 2018-05-21 05:35:25
Closed_By franz-wohlkoenig
avatar joomla-cms-bot
joomla-cms-bot - comment - 21 May 2018
avatar franz-wohlkoenig
franz-wohlkoenig - comment - 21 May 2018

closed as having Pull Request #20508.

Add a Comment

Login with GitHub to post a comment