diff --git a/x-pack/plugins/security/common/model/kibana_application_privilege.ts b/x-pack/plugins/security/common/model/kibana_application_privilege.ts deleted file mode 100644 index 54350ec2abcef0..00000000000000 --- a/x-pack/plugins/security/common/model/kibana_application_privilege.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { KibanaPrivilege } from './kibana_privilege'; - -export interface KibanaApplicationPrivilege { - name: KibanaPrivilege; -} diff --git a/x-pack/plugins/security/common/model/kibana_privilege.ts b/x-pack/plugins/security/common/model/kibana_privilege.ts index 834e62570fe263..20cac65b4ca792 100644 --- a/x-pack/plugins/security/common/model/kibana_privilege.ts +++ b/x-pack/plugins/security/common/model/kibana_privilege.ts @@ -5,3 +5,5 @@ */ export type KibanaPrivilege = 'none' | 'read' | 'all'; + +export const KibanaAppPrivileges: KibanaPrivilege[] = ['read', 'all']; diff --git a/x-pack/plugins/security/index.js b/x-pack/plugins/security/index.js index 6ee655f8b0426b..7262eadb999c63 100644 --- a/x-pack/plugins/security/index.js +++ b/x-pack/plugins/security/index.js @@ -16,7 +16,6 @@ import { validateConfig } from './server/lib/validate_config'; import { authenticateFactory } from './server/lib/auth_redirect'; import { checkLicense } from './server/lib/check_license'; import { initAuthenticator } from './server/lib/authentication/authenticator'; -import { initPrivilegesApi } from './server/routes/api/v1/privileges'; import { SecurityAuditLogger } from './server/lib/audit_logger'; import { AuditLogger } from '../../server/lib/audit_logger'; import { createAuthorizationService, registerPrivilegesWithCluster } from './server/lib/authorization'; @@ -161,7 +160,6 @@ export const security = (kibana) => new kibana.Plugin({ initUsersApi(server); initPublicRolesApi(server); initIndicesApi(server); - initPrivilegesApi(server); initLoginView(server, xpackMainPlugin); initLogoutView(server); diff --git a/x-pack/plugins/security/public/views/management/edit_role/components/edit_role_page.tsx b/x-pack/plugins/security/public/views/management/edit_role/components/edit_role_page.tsx index d4497582a75119..74396481e27ba5 100644 --- a/x-pack/plugins/security/public/views/management/edit_role/components/edit_role_page.tsx +++ b/x-pack/plugins/security/public/views/management/edit_role/components/edit_role_page.tsx @@ -24,7 +24,7 @@ import React, { ChangeEvent, Component, HTMLProps } from 'react'; import { toastNotifications } from 'ui/notify'; import { Space } from '../../../../../../spaces/common/model/space'; import { IndexPrivilege } from '../../../../../common/model/index_privilege'; -import { KibanaApplicationPrivilege } from '../../../../../common/model/kibana_application_privilege'; +import { KibanaPrivilege } from '../../../../../common/model/kibana_privilege'; import { Role } from '../../../../../common/model/role'; import { isReservedRole } from '../../../../lib/role'; import { deleteRole, saveRole } from '../../../../objects'; @@ -42,7 +42,7 @@ interface Props { rbacEnabled: boolean; allowDocumentLevelSecurity: boolean; allowFieldLevelSecurity: boolean; - kibanaAppPrivileges: KibanaApplicationPrivilege[]; + kibanaAppPrivileges: KibanaPrivilege[]; notifier: any; spaces?: Space[]; spacesEnabled: boolean; diff --git a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/kibana_privileges.tsx b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/kibana_privileges.tsx index d9a4ba73af9639..1ff7b62f715a7a 100644 --- a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/kibana_privileges.tsx +++ b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/kibana_privileges.tsx @@ -6,7 +6,7 @@ import React, { Component } from 'react'; import { Space } from '../../../../../../../../spaces/common/model/space'; -import { KibanaApplicationPrivilege } from '../../../../../../../common/model/kibana_application_privilege'; +import { KibanaPrivilege } from '../../../../../../../common/model/kibana_privilege'; import { Role } from '../../../../../../../common/model/role'; import { RoleValidator } from '../../../lib/validate_role'; import { CollapsiblePanel } from '../../collapsible_panel'; @@ -18,7 +18,7 @@ interface Props { spacesEnabled: boolean; spaces?: Space[]; editable: boolean; - kibanaAppPrivileges: KibanaApplicationPrivilege[]; + kibanaAppPrivileges: KibanaPrivilege[]; onChange: (role: Role) => void; validator: RoleValidator; } diff --git a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.test.tsx b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.test.tsx index 018aed7df9bb18..d6ecbdb705b746 100644 --- a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.test.tsx +++ b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.test.tsx @@ -24,14 +24,7 @@ const buildProps = (customProps?: any) => { }, }, editable: true, - kibanaAppPrivileges: [ - { - name: 'all', - }, - { - name: 'read', - }, - ], + kibanaAppPrivileges: ['all', 'read'], onChange: jest.fn(), ...customProps, }; diff --git a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.tsx b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.tsx index 4d8892d88fce4d..71b881c4a85efe 100644 --- a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.tsx +++ b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/simple_privilege_form.tsx @@ -10,7 +10,6 @@ import { EuiFormRow, } from '@elastic/eui'; import React, { Component, Fragment } from 'react'; -import { KibanaApplicationPrivilege } from '../../../../../../../common/model/kibana_application_privilege'; import { KibanaPrivilege } from '../../../../../../../common/model/kibana_privilege'; import { Role } from '../../../../../../../common/model/role'; import { isReservedRole } from '../../../../../../lib/role'; @@ -19,7 +18,7 @@ import { copyRole } from '../../../lib/copy_role'; import { PrivilegeSelector } from './privilege_selector'; interface Props { - kibanaAppPrivileges: KibanaApplicationPrivilege[]; + kibanaAppPrivileges: KibanaPrivilege[]; role: Role; onChange: (role: Role) => void; editable: boolean; @@ -30,7 +29,6 @@ export class SimplePrivilegeForm extends Component { const { kibanaAppPrivileges, role } = this.props; const assignedPrivileges = role.kibana; - const availablePrivileges = kibanaAppPrivileges.map(privilege => privilege.name); const kibanaPrivilege: KibanaPrivilege = assignedPrivileges.global.length > 0 @@ -45,7 +43,7 @@ export class SimplePrivilegeForm extends Component { { }, ], editable: true, - kibanaAppPrivileges: [ - { - name: 'all', - }, - { - name: 'read', - }, - ], + kibanaAppPrivileges: ['all', 'read'], onChange: jest.fn(), validator: new RoleValidator(), ...customProps, diff --git a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/space_aware_privilege_form.tsx b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/space_aware_privilege_form.tsx index af76691b060f59..c48aa6d2047797 100644 --- a/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/space_aware_privilege_form.tsx +++ b/x-pack/plugins/security/public/views/management/edit_role/components/privileges/kibana/space_aware_privilege_form.tsx @@ -17,7 +17,6 @@ import { } from '@elastic/eui'; import React, { Component, Fragment } from 'react'; import { Space } from '../../../../../../../../spaces/common/model/space'; -import { KibanaApplicationPrivilege } from '../../../../../../../common/model/kibana_application_privilege'; import { KibanaPrivilege } from '../../../../../../../common/model/kibana_privilege'; import { Role } from '../../../../../../../common/model/role'; import { isReservedRole } from '../../../../../../lib/role'; @@ -32,7 +31,7 @@ import { PrivilegeSpaceForm } from './privilege_space_form'; import { PrivilegeSpaceTable } from './privilege_space_table'; interface Props { - kibanaAppPrivileges: KibanaApplicationPrivilege[]; + kibanaAppPrivileges: KibanaPrivilege[]; role: Role; spaces: Space[]; onChange: (role: Role) => void; @@ -74,7 +73,6 @@ export class SpaceAwarePrivilegeForm extends Component { const { kibanaAppPrivileges, role } = this.props; const assignedPrivileges = role.kibana; - const availablePrivileges = kibanaAppPrivileges.map(privilege => privilege.name); const basePrivilege = assignedPrivileges.global.length > 0 ? assignedPrivileges.global[0] : NO_PRIVILEGE_VALUE; @@ -101,7 +99,7 @@ export class SpaceAwarePrivilegeForm extends Component { { - {this.renderSpacePrivileges(basePrivilege, availablePrivileges)} + {this.renderSpacePrivileges(basePrivilege, kibanaAppPrivileges)} ); } diff --git a/x-pack/plugins/security/public/views/management/edit_role/index.js b/x-pack/plugins/security/public/views/management/edit_role/index.js index 4fa4aaba4e2b08..5c744c908824cd 100644 --- a/x-pack/plugins/security/public/views/management/edit_role/index.js +++ b/x-pack/plugins/security/public/views/management/edit_role/index.js @@ -27,6 +27,7 @@ import { EditRolePage } from './components'; import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; +import { KibanaAppPrivileges } from '../../../../common/model/kibana_privilege'; routes.when(`${EDIT_ROLES_PATH}/:name?`, { template, @@ -120,16 +121,13 @@ routes.when(`${EDIT_ROLES_PATH}/:name?`, { spaces, } = $route.current.locals; - // todo: don't hard-code this... - const kibanaApplicationPrivilege = [{ name: 'all' }, { name: 'read' } ]; - $scope.$$postDigest(() => { const domNode = document.getElementById('editRoleReactRoot'); render(