{"action":"created","issue":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/20508","repository_url":"https://api.github.com/repos/joomla/joomla-cms","labels_url":"https://api.github.com/repos/joomla/joomla-cms/issues/20508/labels{/name}","comments_url":"https://api.github.com/repos/joomla/joomla-cms/issues/20508/comments","events_url":"https://api.github.com/repos/joomla/joomla-cms/issues/20508/events","html_url":"https://github.com/joomla/joomla-cms/pull/20508","id":324729406,"number":20508,"title":"Content Manager Improvements for Sites w/Distributed User Editing Groups","user":{"login":"orware","id":931650,"avatar_url":"https://avatars3.githubusercontent.com/u/931650?v=4","gravatar_id":"","url":"https://api.github.com/users/orware","html_url":"https://github.com/orware","followers_url":"https://api.github.com/users/orware/followers","following_url":"https://api.github.com/users/orware/following{/other_user}","gists_url":"https://api.github.com/users/orware/gists{/gist_id}","starred_url":"https://api.github.com/users/orware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orware/subscriptions","organizations_url":"https://api.github.com/users/orware/orgs","repos_url":"https://api.github.com/users/orware/repos","events_url":"https://api.github.com/users/orware/events{/privacy}","received_events_url":"https://api.github.com/users/orware/received_events","type":"User","site_admin":false},"labels":[{"id":60721348,"url":"https://api.github.com/repos/joomla/joomla-cms/labels/PR-staging","name":"PR-staging","color":"c7def8","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-05-20T18:14:23Z","updated_at":"2018-05-21T16:12:05Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/joomla/joomla-cms/pulls/20508","html_url":"https://github.com/joomla/joomla-cms/pull/20508","diff_url":"https://github.com/joomla/joomla-cms/pull/20508.diff","patch_url":"https://github.com/joomla/joomla-cms/pull/20508.patch"},"body":"Pull Request for Issue #20506. A few screenshots have been added on the Issue page but I'm also open to creating a Youtube video going over the before/after effects of the changes if that would be helpful and/or making available the test database I've  been using for testing on my end if that would be helpful to testers.\r\n\r\n### Summary of Changes\r\n\r\nThese are the main items that the PR will address:\r\n\r\n* 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.\r\n* 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.\r\n* 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.\r\n\r\nFor 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.\r\n\r\nTwo additional commits as part of the PR will address the following extra items:\r\n\r\n* 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.\r\n* 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).\r\n\r\nI 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).\r\n\r\n### Testing Instructions\r\n\r\nThis 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.\r\n\r\nCreate a fresh/new Joomla install\r\n\r\nCreate Admin User:\r\nE: admin@example.com\r\nU: admin\r\nP: 1234\r\n\r\nCreate Basic Backend Access Group:\r\n\r\n1. Create a new group named \"Basic Backend Access\" with the \"Registered\" group set as its parent.\r\n2. Add the new \"Basic Backend Access\" group to the \"Special\" Access Level.\r\n3. 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.\r\n\r\nThis \"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.\r\n\r\nCreate Backend Content Creators Group:\r\n\r\n1. Create a new group named \"Backend Content Creators\" with the \"Basic Backend Access\" group set as its parent.\r\n2. 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.\r\n\r\nThis \"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.\r\n\r\nAt this point, if you wish, you can create a test user.\r\n\r\nCreate Test User:\r\nE: test@example.com\r\nU: test\r\nP: 1234\r\n\r\nYou 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.\r\nThen 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.\r\n\r\nNext, 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).\r\n\r\nJust to keep things somewhat simple, these are the extra categories that were created:\r\n```\r\n1st Level Category\r\n\t2nd Level Category\r\n\t\t3rd Level Category\r\n\t\t\t4th Level Category\r\n\t\t\t\t5th Level Category\r\n1st Level Category - Example 2\r\n\t2nd Level Category - Example 2\r\n\t\t3rd Level Category - Example 2\r\n```\r\n\t\t\r\nIn 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.\r\n\r\nNow, let's go ahead and create a new group that will give a user access to the 3rd Level Category and its children.\r\n\r\nCreate a 3rd Level Content Group:\r\n\r\n1. Create a new group named \"3rd Level Content Group\" with the \"Backend Content Creators\" group as its parent.\r\n2. 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.\r\n\r\nNow put the Test user into this 3rd Level Content Group and login using it once again.\r\n\r\n(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).\r\n\r\n### Expected result\r\n\r\n* Have ability to filter by one or more Categories in the Categories List View\r\n* 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).\r\n* Have Limited Users be able to see the Edit / Publish / Unpublish / Archive / Trash buttons in the Toolbar area\r\n\r\n### Actual result\r\n\r\nWith 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.\r\n\r\nWith 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).\r\n\r\nCategory Manager Issues Noted When Using a Limited User Account:\r\n\r\n1. List View shows All Categories in the System (rather than just the set of Categories the user has access to). \r\nAs 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).\r\n2. 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).\r\n\r\nArticle Manager Issues Noted When Using a Limited User Account:\r\n\r\n1. List View shows All Articles in the System (rather than just the set of Articles the user has access to).\r\nMy 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.\r\n2. List View should only allow filtering by Allowed Parent Categories (rather than the entire set of Categories).\r\nI 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.\r\n\r\nWhen 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.\r\n\r\nThis 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.\r\n\r\nBefore 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.\r\nAfter the changes are applied, the issues described above should be resolved.\r\n\r\n### Documentation Changes Required\r\n\r\nI'm not sure what additional documentation changes might be required. I've always thought it might be helpful to include something like the \"Basic Backend Access\" and \"Backend Content Creators\" groups described by default as default groups available \"out of the box\" with Joomla, but that's a different item/issue (it would make the testing process a little simpler if they were available out of the box, but since they aren't it means they have to be created first in order to move forward with the testing process)."},"comment":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/comments/390702302","html_url":"https://github.com/joomla/joomla-cms/pull/20508#issuecomment-390702302","issue_url":"https://api.github.com/repos/joomla/joomla-cms/issues/20508","id":390702302,"user":{"login":"carlitorweb","id":3956472,"avatar_url":"https://avatars3.githubusercontent.com/u/3956472?v=4","gravatar_id":"","url":"https://api.github.com/users/carlitorweb","html_url":"https://github.com/carlitorweb","followers_url":"https://api.github.com/users/carlitorweb/followers","following_url":"https://api.github.com/users/carlitorweb/following{/other_user}","gists_url":"https://api.github.com/users/carlitorweb/gists{/gist_id}","starred_url":"https://api.github.com/users/carlitorweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carlitorweb/subscriptions","organizations_url":"https://api.github.com/users/carlitorweb/orgs","repos_url":"https://api.github.com/users/carlitorweb/repos","events_url":"https://api.github.com/users/carlitorweb/events{/privacy}","received_events_url":"https://api.github.com/users/carlitorweb/received_events","type":"User","site_admin":false},"created_at":"2018-05-21T16:12:05Z","updated_at":"2018-05-21T16:12:05Z","author_association":"NONE","body":"> Super Users and Limited Users do not have an easy way to filter the Categories List View by one or more categories...\r\n\r\nI'm not sure how much can improve as far as UX is concerned, list in your case 1600 categories, to select a category. (a comment outside the topic, you should rethink this structure, maybe your problem can be solved by optimizing and grouping in a category, other related)\r\nIn this case, with 1600 categories on my site, I prefer to use the search field, for filter a certain category\r\n![screenshot_20180521114410](https://user-images.githubusercontent.com/3956472/40316637-f2f4cda8-5cec-11e8-857a-14a75c40b47a.png)\r\n\r\n> Limited Users only see the Articles in the Categories they have access to...\r\n\r\nI like my users manage they site using the backend. In fact, almost all my site, who have a workflow I put they inside the backend for all the work. Longtime I wanted to make a PR for handle this you did, because IMO a user who not have the core.edit or core.edit.own no have sense list the articles cant edit. But, searching for how the project handles this opinion I found this you want to do, \"It can be done from the frontend, and the backend is for manager as an admin all your site\" (This is a brief summary of all the opinions I read). And that is why even a limited user can see all the articles inside the site.\r\nNow, also, this change (In case it is accepted by the project) will have a B/C break. So, you need to handle this as an option you can turn on/off and as default off. (i think the best place for this option is the com_config for com_content)\r\n\r\n> Limited Users normally do not get to see the Edit / Publish / Unpublish / Archive / Trash buttons ....\r\n\r\nIf a user no need see the Trash button, because he cant delete nothing, then is better not show it. A better UX, less is better.\r\n\r\n> 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).\r\n\r\nWill be good have a separate PR just to handle this issue."}}
{"actor":{"display_login":"carlitorweb"}}