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:
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:
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).
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:
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:
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:
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).
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:
Article Manager Issues Noted When Using a Limited User Account:
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.
The functionality desired/described above is currently missing in the current release of Joomla as of this report date (05/20/2018).
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.
Hmmm...images didn't get uploaded correctly in the previous comment.
The next two images show:
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.
The next 3 images go over the permissions setup for the Basic Backend Access group:
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.
The next two images are for creating the "Backend Content Creators" group.
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).
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:
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.
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.
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.
Pull Request Link:
Closed_By | franz-wohlkoenig | ⇒ | joomla-cms-bot |
Status | New | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2018-05-21 05:35:25 |
Closed_By | ⇒ | franz-wohlkoenig |
Set to "closed" on behalf of @franz-wohlkoenig by The JTracker Application at issues.joomla.org/joomla-cms/20506
These four screenshots show the following steps in the pre-testing/setup process:
This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20506.