Skip to content

Commit

Permalink
[Maps] fix users without access to Maps should not have the option to…
Browse files Browse the repository at this point in the history
… create them
  • Loading branch information
nreese committed Jan 20, 2021
1 parent 2ec6f6c commit 86edce2
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 29 deletions.
4 changes: 4 additions & 0 deletions x-pack/plugins/maps/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,10 @@ export class MapsPlugin
// unregisters the OSS alias
plugins.visualizations.unRegisterAlias(PLUGIN_ID_OSS);

if (!core.application.capabilities.maps.save) {
plugins.visualizations.unRegisterAlias(APP_ID);
}

return {
createLayerDescriptors,
registerLayerWizard,
Expand Down
82 changes: 53 additions & 29 deletions x-pack/test/functional/apps/maps/visualize_create_menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,42 +12,66 @@ export default function ({ getService, getPageObjects }) {
const security = getService('security');

describe('visualize create menu', () => {
before(async () => {
await security.testUser.setRoles(
['test_logstash_reader', 'global_maps_all', 'geoshape_data_reader', 'global_visualize_all'],
false
);
describe('maps visualize alias', () => {
describe('with write permission', () => {
before(async () => {
await security.testUser.setRoles(['global_maps_all', 'global_visualize_all'], false);

await PageObjects.visualize.navigateToNewVisualization();
});
await PageObjects.visualize.navigateToNewVisualization();
});

after(async () => {
await security.testUser.restoreDefaults();
});
it('should show maps application in create menu', async () => {
const hasMapsApp = await PageObjects.visualize.hasMapsApp();
expect(hasMapsApp).to.equal(true);
});

it('should show maps application in create menu', async () => {
const hasMapsApp = await PageObjects.visualize.hasMapsApp();
expect(hasMapsApp).to.equal(true);
});
it('should take users to Maps application when Maps is clicked', async () => {
await PageObjects.visualize.clickMapsApp();
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.maps.waitForLayersToLoad();
const doesLayerExist = await PageObjects.maps.doesLayerExist('Road map');
expect(doesLayerExist).to.equal(true);
});
});

it('should not show legacy region map visualizion in create menu', async () => {
await PageObjects.visualize.clickAggBasedVisualizations();
const hasLegecyViz = await PageObjects.visualize.hasRegionMap();
expect(hasLegecyViz).to.equal(false);
});
describe('without write permission', () => {
before(async () => {
await security.testUser.setRoles(['global_maps_read', 'global_visualize_all'], false);

await PageObjects.visualize.navigateToNewVisualization();
});

it('should not show legacy tilemap map visualizion in create menu', async () => {
const hasLegecyViz = await PageObjects.visualize.hasTileMap();
expect(hasLegecyViz).to.equal(false);
after(async () => {
await security.testUser.restoreDefaults();
});

it('should not show legacy region map visualizion in create menu', async () => {
const hasMapsApp = await PageObjects.visualize.hasMapsApp();
expect(hasMapsApp).to.equal(false);
});
});
});

it('should take users to Maps application when Maps is clicked', async () => {
await PageObjects.visualize.goBackToGroups();
await PageObjects.visualize.clickMapsApp();
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.maps.waitForLayersToLoad();
const doesLayerExist = await PageObjects.maps.doesLayerExist('Road map');
expect(doesLayerExist).to.equal(true);
describe('aggregion based visualizations', () => {
before(async () => {
await security.testUser.setRoles(['global_visualize_all'], false);

await PageObjects.visualize.navigateToNewAggBasedVisualization();
});

after(async () => {
await security.testUser.restoreDefaults();
});

it('should not show legacy region map visualizion in create menu', async () => {
const hasLegecyViz = await PageObjects.visualize.hasRegionMap();
expect(hasLegecyViz).to.equal(false);
});

it('should not show legacy tilemap map visualizion in create menu', async () => {
const hasLegecyViz = await PageObjects.visualize.hasTileMap();
expect(hasLegecyViz).to.equal(false);
});
});
});
}

0 comments on commit 86edce2

Please sign in to comment.