[functional/security/test-user] remove naked boolean (#126652) (#126807)

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit be1028c345)

Co-authored-by: Spencer <spencer@elastic.co>
This commit is contained in:
Kibana Machine 2022-03-03 12:27:00 -05:00 committed by GitHub
parent 44c3fb380b
commit 104b760cf7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 98 additions and 85 deletions

View file

@ -40,29 +40,33 @@ export class TestUser extends FtrService {
super(ctx);
}
async restoreDefaults(shouldRefreshBrowser: boolean = true) {
if (this.enabled) {
await this.setRoles(this.config.get('security.defaultRoles'), shouldRefreshBrowser);
async restoreDefaults(options?: { skipBrowserRefresh?: boolean }) {
if (!this.enabled) {
return;
}
await this.setRoles(this.config.get('security.defaultRoles'), options);
}
async setRoles(roles: string[], shouldRefreshBrowser: boolean = true) {
if (this.enabled) {
this.log.debug(`set roles = ${roles}`);
await this.user.create(TEST_USER_NAME, {
password: TEST_USER_PASSWORD,
roles,
full_name: 'test user',
});
async setRoles(roles: string[], options?: { skipBrowserRefresh?: boolean }) {
if (!this.enabled) {
return;
}
if (this.browser && this.testSubjects && shouldRefreshBrowser) {
if (await this.testSubjects.exists('kibanaChrome', { allowHidden: true })) {
await this.browser.refresh();
// accept alert if it pops up
const alert = await this.browser.getAlert();
await alert?.accept();
await this.testSubjects.find('kibanaChrome', this.config.get('timeouts.find') * 10);
}
this.log.debug(`set roles = ${roles}`);
await this.user.create(TEST_USER_NAME, {
password: TEST_USER_PASSWORD,
roles,
full_name: 'test user',
});
if (this.browser && this.testSubjects && !options?.skipBrowserRefresh) {
if (await this.testSubjects.exists('kibanaChrome', { allowHidden: true })) {
await this.browser.refresh();
// accept alert if it pops up
const alert = await this.browser.getAlert();
await alert?.accept();
await this.testSubjects.find('kibanaChrome', this.config.get('timeouts.find') * 10);
}
}
}

View file

@ -18,7 +18,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('test large number of fields in sidebar', function () {
before(async function () {
await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/huge_fields');
await security.testUser.setRoles(['kibana_admin', 'test_testhuge_reader'], false);
await security.testUser.setRoles(['kibana_admin', 'test_testhuge_reader'], {
skipBrowserRefresh: true,
});
await kibanaServer.uiSettings.update({
'timepicker:timeDefaults': `{ "from": "2016-10-05T00:00:00", "to": "2016-10-06T00:00:00"}`,
});

View file

@ -34,7 +34,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
beforeEach(async () => {
await security.testUser.setRoles(
['kibana_admin', 'test_logstash_reader', 'kibana_sample_admin'],
false
{ skipBrowserRefresh: true }
);
await visualize.navigateToNewVisualization();
await visualize.clickVisualBuilder();

View file

@ -17,12 +17,12 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
// FLAKY: https://github.com/elastic/kibana/issues/95707
describe.skip('Security Solution', () => {
before(async () => {
await security.testUser.setRoles(['superuser'], false);
await security.testUser.setRoles(['superuser'], { skipBrowserRefresh: true });
await common.navigateToApp('security');
});
after(async () => {
await security.testUser.restoreDefaults(false);
await security.testUser.restoreDefaults({ skipBrowserRefresh: true });
});
describe('Detections', () => {

View file

@ -21,7 +21,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -41,7 +41,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with manage_security', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'manage_security'], true);
await security.testUser.setRoles(['global_dashboard_read', 'manage_security']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,7 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with ccr_user', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'ccr_user'], true);
await security.testUser.setRoles(['global_dashboard_read', 'ccr_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,7 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with manage_ilm', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'manage_ilm'], true);
await security.testUser.setRoles(['global_dashboard_read', 'manage_ilm']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -21,7 +21,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
describe('Home page', function () {
before(async () => {
await security.testUser.setRoles(['manage_ilm'], true);
await security.testUser.setRoles(['manage_ilm']);
const isCloud = await deployment.isCloud();
if (!isCloud) {
await esClient.snapshot.createRepository({

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,7 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with index_management_user', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'index_management_user'], true);
await security.testUser.setRoles(['global_dashboard_read', 'index_management_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,7 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with ingest_pipelines_user', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'ingest_pipelines_user'], true);
await security.testUser.setRoles(['global_dashboard_read', 'ingest_pipelines_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -275,7 +275,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('dashboard no-access privileges', () => {
before(async () => {
await PageObjects.common.navigateToApp('visualize');
await security.testUser.setRoles(['test_logstash_reader', 'global_visualize_all'], true);
await security.testUser.setRoles(['test_logstash_reader', 'global_visualize_all']);
});
after(async () => {
@ -317,10 +317,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('dashboard read-only privileges', () => {
before(async () => {
await security.testUser.setRoles(
['test_logstash_reader', 'global_visualize_all', 'global_dashboard_read'],
true
);
await security.testUser.setRoles([
'test_logstash_reader',
'global_visualize_all',
'global_dashboard_read',
]);
});
after(async () => {

View file

@ -44,7 +44,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'test_logstash_reader',
'global_visualize_all',
],
false
{ skipBrowserRefresh: true }
);
});
after(async () => {

View file

@ -24,7 +24,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
before(async () => {
await security.testUser.setRoles(
['global_discover_read', 'global_visualize_read', 'test_logstash_reader'],
false
{ skipBrowserRefresh: true }
);
// loading an object without reference fails, so we load data view + lens object and then unload data view
await kibanaServer.importExport.load(

View file

@ -25,7 +25,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
'global_dashboard_read',
'reporting_user', // NOTE: the built-in role granting full reporting access is deprecated. See xpack.reporting.roles.enabled
],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -28,7 +28,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
before(async () => {
await security.testUser.setRoles(
['global_discover_read', 'global_visualize_read', 'test_logstash_reader'],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,10 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with license_management_user', () => {
before(async () => {
await security.testUser.setRoles(
['global_dashboard_read', 'license_management_user'],
true
);
await security.testUser.setRoles(['global_dashboard_read', 'license_management_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,7 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with logstash_read_user', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'logstash_read_user'], true);
await security.testUser.setRoles(['global_dashboard_read', 'logstash_read_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -28,7 +28,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('no management privileges', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read'], true);
await security.testUser.setRoles(['global_dashboard_read']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,7 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -13,7 +13,9 @@ export default function ({ getPageObjects, getService }) {
describe('docvalue_fields', () => {
before(async () => {
await security.testUser.setRoles(['global_maps_read', 'test_logstash_reader'], false);
await security.testUser.setRoles(['global_maps_read', 'test_logstash_reader'], {
skipBrowserRefresh: true,
});
});
after(async () => {

View file

@ -21,7 +21,7 @@ export default function ({ getPageObjects, getService }) {
'antimeridian_points_reader',
'antimeridian_shapes_reader',
],
false
{ skipBrowserRefresh: true }
);
await PageObjects.maps.loadSavedMap('document example');
});

View file

@ -19,7 +19,9 @@ export default function ({ getPageObjects, getService }) {
describe('geo top hits', () => {
describe('split on string field', () => {
before(async () => {
await security.testUser.setRoles(['global_maps_all', 'test_logstash_reader'], false);
await security.testUser.setRoles(['global_maps_all', 'test_logstash_reader'], {
skipBrowserRefresh: true,
});
await PageObjects.maps.loadSavedMap('document example top hits');
});

View file

@ -31,7 +31,7 @@ export default function ({ getPageObjects, getService }) {
'global_dashboard_all',
'meta_for_geoshape_data_reader',
],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -28,7 +28,7 @@ export default function ({ getPageObjects, getService }) {
'meta_for_geoshape_data_reader',
'global_dashboard_read',
],
false
{ skipBrowserRefresh: true }
);
await kibanaServer.uiSettings.replace({
defaultIndex: 'c698b940-e149-11e8-a35a-370a8516603a',

View file

@ -26,7 +26,7 @@ export default function ({ getPageObjects, getService }) {
'global_dashboard_all',
'meta_for_geoshape_data_reader',
],
false
{ skipBrowserRefresh: true }
);
await kibanaServer.uiSettings.replace({
defaultIndex: 'c698b940-e149-11e8-a35a-370a8516603a',

View file

@ -16,7 +16,7 @@ export default function ({ getPageObjects, getService }) {
before(async () => {
await security.testUser.setRoles(
['test_logstash_reader', 'global_maps_all', 'global_dashboard_all'],
false
{ skipBrowserRefresh: true }
);
await PageObjects.common.navigateToApp('dashboard');
await PageObjects.dashboard.gotoDashboardEditMode('filter by map extent dashboard');

View file

@ -24,7 +24,7 @@ export default function ({ getPageObjects, getService }) {
'global_dashboard_all',
'meta_for_geoshape_data_reader',
],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -20,7 +20,7 @@ export default function ({ getPageObjects, getService }) {
before(async () => {
await security.testUser.setRoles(
['global_maps_all', 'test_logstash_reader', 'geoshape_data_reader'],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -26,7 +26,7 @@ export default function ({ getPageObjects, getService }) {
before(async () => {
await security.testUser.setRoles(
['global_maps_all', 'geoshape_data_reader', 'meta_for_geoshape_data_reader'],
false
{ skipBrowserRefresh: true }
);
await PageObjects.maps.loadSavedMap('join example');
});

View file

@ -17,7 +17,7 @@ export default function ({ getPageObjects, getService }) {
before(async () => {
await security.testUser.setRoles(
['global_maps_all', 'geoshape_data_reader', 'meta_for_geoshape_data_reader'],
false
{ skipBrowserRefresh: true }
);
await PageObjects.maps.loadSavedMap('join example');
mapboxStyle = await PageObjects.maps.getMapboxStyle();

View file

@ -18,7 +18,7 @@ export default function ({ getPageObjects, getService }) {
before(async () => {
await security.testUser.setRoles(
['global_maps_all', 'test_logstash_reader', 'geoshape_data_reader'],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -17,7 +17,7 @@ export default function ({ getPageObjects, getService }) {
before(async () => {
await security.testUser.setRoles(
['global_maps_all', 'test_logstash_reader', 'geoshape_data_reader'],
false
{ skipBrowserRefresh: true }
);
});

View file

@ -21,7 +21,7 @@ export default function ({ getPageObjects, getService, updateBaselines }) {
describe('maps loaded from sample data', () => {
before(async () => {
//installing the sample data with test user with super user role and then switching roles with limited privileges
await security.testUser.setRoles(['superuser'], false);
await security.testUser.setRoles(['superuser'], { skipBrowserRefresh: true });
await PageObjects.common.navigateToUrl('home', '/tutorial_directory/sampleData', {
useActualUrl: true,
});
@ -91,7 +91,9 @@ export default function ({ getPageObjects, getService, updateBaselines }) {
[UI_SETTINGS.TIMEPICKER_QUICK_RANGES]: SAMPLE_DATA_RANGE,
});
//running the rest of the tests with limited roles
await security.testUser.setRoles(['global_maps_all', 'kibana_sample_read'], false);
await security.testUser.setRoles(['global_maps_all', 'kibana_sample_read'], {
skipBrowserRefresh: true,
});
});
after(async () => {

View file

@ -16,7 +16,9 @@ export default function ({ getService, getPageObjects }) {
describe('maps visualize alias', () => {
describe('with write permission', () => {
before(async () => {
await security.testUser.setRoles(['global_maps_all', 'global_visualize_all'], false);
await security.testUser.setRoles(['global_maps_all', 'global_visualize_all'], {
skipBrowserRefresh: true,
});
await PageObjects.visualize.navigateToNewVisualization();
});
@ -36,7 +38,9 @@ export default function ({ getService, getPageObjects }) {
describe('without write permission', () => {
before(async () => {
await security.testUser.setRoles(['global_maps_read', 'global_visualize_all'], false);
await security.testUser.setRoles(['global_maps_read', 'global_visualize_all'], {
skipBrowserRefresh: true,
});
await PageObjects.visualize.navigateToNewVisualization();
});
@ -54,7 +58,7 @@ export default function ({ getService, getPageObjects }) {
describe('aggregion based visualizations', () => {
before(async () => {
await security.testUser.setRoles(['global_visualize_all'], false);
await security.testUser.setRoles(['global_visualize_all'], { skipBrowserRefresh: true });
await PageObjects.visualize.navigateToNewAggBasedVisualization();
});

View file

@ -27,7 +27,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -47,10 +47,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with license_management_user', () => {
before(async () => {
await security.testUser.setRoles(
['global_dashboard_read', 'license_management_user'],
true
);
await security.testUser.setRoles(['global_dashboard_read', 'license_management_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -16,7 +16,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
describe('Home page', function () {
before(async () => {
await security.testUser.setRoles(['snapshot_restore_user'], false);
await security.testUser.setRoles(['snapshot_restore_user'], { skipBrowserRefresh: true });
await pageObjects.common.navigateToApp('snapshotRestore');
});

View file

@ -28,7 +28,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -48,7 +48,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with transform_user', () => {
before(async () => {
await security.testUser.setRoles(['global_dashboard_read', 'transform_user'], true);
await security.testUser.setRoles(['global_dashboard_read', 'transform_user']);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -21,7 +21,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global all privileges (aka kibana_admin)', () => {
before(async () => {
await security.testUser.setRoles(['kibana_admin'], true);
await security.testUser.setRoles(['kibana_admin']);
});
after(async () => {
await security.testUser.restoreDefaults();
@ -41,10 +41,10 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
describe('global dashboard read with global_upgrade_assistant_role', () => {
before(async () => {
await security.testUser.setRoles(
['global_dashboard_read', 'global_upgrade_assistant_role'],
true
);
await security.testUser.setRoles([
'global_dashboard_read',
'global_upgrade_assistant_role',
]);
});
after(async () => {
await security.testUser.restoreDefaults();

View file

@ -24,7 +24,9 @@ export default function ({ getService, getPageObjects }) {
before('initialize tests', async () => {
// There may be system watches if monitoring was previously enabled
// These cannot be deleted via the UI, so we need to delete via the API
await security.testUser.setRoles(['kibana_admin', 'watcher_admin'], false);
await security.testUser.setRoles(['kibana_admin', 'watcher_admin'], {
skipBrowserRefresh: true,
});
const watches = await esSupertest.get('/.watches/_search');
if (watches.status === 200) {

View file

@ -22,7 +22,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
describe('Home page', function () {
describe('Loads the app with limited privileges', () => {
before(async () => {
await security.testUser.setRoles(['alerts_and_actions_role'], true);
await security.testUser.setRoles(['alerts_and_actions_role']);
});
after(async () => {
await security.testUser.restoreDefaults();