Skip to content

Commit

Permalink
[Reporting] Allow custom roles to use image reporting in dashboard (e…
Browse files Browse the repository at this point in the history
…lastic#163873)

## Summary

This PR fixes a bug mentioned in
elastic/sdh-kibana#4016 from
elastic#153429 where users with custom
roles should allow them the ability to generate reports (with
`xpack.reporting.roles.enabled: false`) in Dashboard. This bug doesn't
arise for users with all privileges.

- set xpack.reporting.roles.enabled false in the kibana.yml 
- load sample data 
- create a custom role where the index (whatever sample data index you
want) has the read and view_index_metadata privilege.
- Add the Kibana privilege for all spaces Analytics > Dashboard >
Generate PDF or PNG Reports and Download Csv reports from Saved Search
panels. Create the global privilege and then the role.
- Apply that role to a new user and log in using that user. 


## Before 

You can see in the console that usesUiCapabilitie in
register_pdf_png_reporting.tsx is true

<img width="1458" alt="Screenshot 2023-08-14 at 12 34 38 PM"
src="https://github.com/elastic/kibana/assets/20343860/f6b567fa-3fbd-4039-aa64-fd28bb4534fb">


## After
<img width="1343" alt="Screenshot 2023-08-14 at 2 18 30 PM"
src="https://github.com/elastic/kibana/assets/20343860/1e4ade9e-332c-4431-954a-38e8a16d4131">


### Checklist

Delete any items that are not applicable to this PR.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
  • Loading branch information
2 people authored and hop-dev committed Aug 16, 2023
1 parent 9abd3ab commit c8c4048
Showing 1 changed file with 5 additions and 2 deletions.
Expand Up @@ -82,7 +82,6 @@ export const reportingScreenshotShareProvider = ({
let capabilityHasDashboardScreenshotReporting = false;
let capabilityHasVisualizeScreenshotReporting = false;
if (usesUiCapabilities) {
// TODO: add abstractions in ExportTypeRegistry to use here?
capabilityHasDashboardScreenshotReporting =
application.capabilities.dashboard?.generateScreenshot === true;
capabilityHasVisualizeScreenshotReporting =
Expand All @@ -106,7 +105,11 @@ export const reportingScreenshotShareProvider = ({
return [];
}

if (isSupportedType && !capabilityHasVisualizeScreenshotReporting) {
if (
isSupportedType &&
!capabilityHasVisualizeScreenshotReporting &&
!capabilityHasDashboardScreenshotReporting
) {
return [];
}

Expand Down

0 comments on commit c8c4048

Please sign in to comment.