@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix exception for anonymous viewers on dashboard query panels with user-specific data

Summary:
When a viewer is not logged in and opens a public dashboard which embeds a query panel whose data requires a Current Viewer context (e.g. assigned or authored tasks, or joined projects), do not throw an exception but show an explanatory placeholder sentence (similar to already existing 'No tasks found.' or 'No documents found.' strings).

```
EXCEPTION: (Exception) Query "assigned" is unknown to application search engine "ManiphestTaskSearchEngine"! at [<phorge>/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php:80]
EXCEPTION: (Exception) Query "joined" is unknown to application search engine "PhabricatorProjectSearchEngine"! at [<phorge>/src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php:80]
```

Closes T15792

Test Plan: While logged in, set up a dashboard query panel with "Search For: Maniphest Tasks" and "Query: Assigned" and add it to a public Dashboard. While logged out, access the Dashboard and see explanation message instead of `Exception: Query "assigned" is unknown to application search engine "ManiphestTaskSearchEngine"!` on the dashboard.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15792

Differential Revision: https://we.phorge.it/D25598

+8
+2
src/__phutil_library_map__.php
··· 1798 1798 'ManiphestCustomFieldStringIndex' => 'applications/maniphest/storage/ManiphestCustomFieldStringIndex.php', 1799 1799 'ManiphestDAO' => 'applications/maniphest/storage/ManiphestDAO.php', 1800 1800 'ManiphestDefaultEditCapability' => 'applications/maniphest/capability/ManiphestDefaultEditCapability.php', 1801 + 'ManiphestDefaultPriorityEditCapability' => 'applications/maniphest/capability/ManiphestDefaultPriorityEditCapability.php', 1801 1802 'ManiphestDefaultViewCapability' => 'applications/maniphest/capability/ManiphestDefaultViewCapability.php', 1802 1803 'ManiphestEditConduitAPIMethod' => 'applications/maniphest/conduit/ManiphestEditConduitAPIMethod.php', 1803 1804 'ManiphestEditEngine' => 'applications/maniphest/editor/ManiphestEditEngine.php', ··· 8004 8005 'ManiphestCustomFieldStringIndex' => 'PhabricatorCustomFieldStringIndexStorage', 8005 8006 'ManiphestDAO' => 'PhabricatorLiskDAO', 8006 8007 'ManiphestDefaultEditCapability' => 'PhabricatorPolicyCapability', 8008 + 'ManiphestDefaultPriorityEditCapability' => 'PhabricatorPolicyCapability', 8007 8009 'ManiphestDefaultViewCapability' => 'PhabricatorPolicyCapability', 8008 8010 'ManiphestEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod', 8009 8011 'ManiphestEditEngine' => 'PhabricatorEditEngine',
+6
src/applications/dashboard/paneltype/PhabricatorDashboardQueryPanelType.php
··· 77 77 } 78 78 79 79 if (!$saved) { 80 + if (!$viewer->isLoggedIn()) { 81 + // If user is not logged in, authored/assigned/etc queries are empty. 82 + return id(new PHUIObjectItemListView()) 83 + ->setUser($viewer) 84 + ->setNoDataString(pht('You must log in to access this panel.')); 85 + } 80 86 throw new Exception( 81 87 pht( 82 88 'Query "%s" is unknown to application search engine "%s"!',