Page MenuHomePhabricator

Panels should be simply hidden to users without the permissions to see them
Closed, DuplicatePublic

Description

Have a dashboard with several panels with Public permissions and just one for All Users.

EXPECTED
Anonymous users can see the dashboard and all the panels except the one that has no Public permissions.

ACTUALLY
The policy of the panel for All Users drags the rest of the Public dashboard, and no content is visible at all for anonymous users.

The same happens in any other combination of less/more restrictive policies. It would be better if the content with more restrictive policies wouldn't be rendered, still showing all the content compliant with the policy.

Event Timeline

qgil raised the priority of this task from to Needs Triage.
qgil updated the task description. (Show Details)
qgil added a project: Dashboards.
qgil added a subscriber: qgil.

We don't plan to pursue the proposed behavior because it's confusing (different users get dramatically different views of the same dashboard, and it's not obvious why). Can you explain your use case for this?

(There are some permissions issues with Dashboards that we're tracking, which should make it easier to get these things consistent.)

As anonymous user, visit https://phab-01.wmflabs.org/

  • The "All Testers Welcome" shows "No data", and no anonymous user will guess what does that mean (it means that such panel is for All Users only).
  • The "Assigned To Me" tab throws "Exception: Query "assigned" is unknown to application search engine "ManiphestTaskSearchEngine"!" Smart anonymous users will understand that being anonymous Phabricator cannot show them any task assigned to them, but still it's confusing.

If anonymous users would not see any of these panels, they would not be confused at all, because they don't know what they are missing. All Users (registered) will be hardly confused either, they just get a few more options now that they logged in -- a pretty standard behavior in many sites. Phabricator also shows more options only to admins, for instance. For the rest, these options are simply not rendered.

On the other hand, we had our Phabricator homepage blocked for any anonymous users almost during a week. All they saw was the login form. All because one of the many panels we were using had been set accidentally to All Users instead of Public. None of us noticed because we were all logged in. Nobody complained because they thought that this was an intended behavior. *That* was confusing.

It's not important, and I won't fight, :) but I still think that makes sense.

We should probably roll this into T4103 and let admins define an 'anonymous' homepage and default 'user' homepage.

I'll second this. Been wondering for a while now, why we couldn't set up a public home page, but constantly had it defaulting to the login. Spent quite a while hunting through security setting before I finally figured out that there was one of the panels set to "All users" rather than public.

If the permissions aren't overhauled completely, this really needs to pop up a warning or something when the settings are inconsistent across the panels.

In T6155#76768, @chad wrote:

We should probably roll this into T4103 and let admins define an 'anonymous' homepage and default 'user' homepage.

Yes, please to that last feature.

For the home dashboard to be really useful to developers (at least in larger organizations), they need to see task, projects and reviews which are relevant specifically to them. But this dashboard, if viewed by an anonymous user, will display a bunch of error messages which makes for a really bad first impression. We are thus - currently - left with sacrificing the usability of the home page for developers (or having every one of them install a private dashboard), or creating something which looks bad for anonymous users.

Having non-public panels be hidden, as @qgil suggests would solve the problem, but this would work fine too.

A thought, as we prepare our Phabricator site to go public:

Wouldn't it make sense for the "Assigned Tasks" and "Active revisions" query to return "No Data" for anonymous users/invalid queries, instead of 'Exception: Query "assigned" is unknown to application search engine "ManiphestTaskSearchEngine"!' and 'Exception: Query "active" is unknown to application search engine "DifferentialRevisionSearchEngine"!'?

"No data" at least gives the users the impression that there could be data in those panels. The exception messages make it look as if the site is broken.

I'm updating the task description of T4103 and rolling this up into it. We'd prefer in general not to hide stuff around permissions (which is why action links for example are grey if inactionable) and feel T4103 will resolve your main issue.

I agree with the principle of not hiding, then, but note that currently Phabricator is hiding the whole homepage when only one panel doesn't fit with the policy. Anyway, this is a minor problem once you are aware of this.