mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[Cases][ResponseOps] Splitting out cases privileges (#134860)
* Splitting out cases privs * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' * Getting tests working * Fixing import error * Fixing tests * Fixing role to only have delete permissions * Extracting sub feature tests to trial license * Removing deletion user from common tests * Addressing feedback * Fixing tests Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
4b7b363e9c
commit
c4c9c73668
13 changed files with 728 additions and 107 deletions
|
@ -530,7 +530,11 @@ Array [
|
|||
],
|
||||
"cases": Object {
|
||||
"all": Array [],
|
||||
"create": Array [],
|
||||
"delete": Array [],
|
||||
"push": Array [],
|
||||
"read": Array [],
|
||||
"update": Array [],
|
||||
},
|
||||
"catalogue": Array [
|
||||
"dashboard",
|
||||
|
@ -682,7 +686,11 @@ Array [
|
|||
],
|
||||
"cases": Object {
|
||||
"all": Array [],
|
||||
"create": Array [],
|
||||
"delete": Array [],
|
||||
"push": Array [],
|
||||
"read": Array [],
|
||||
"update": Array [],
|
||||
},
|
||||
"catalogue": Array [
|
||||
"discover",
|
||||
|
@ -893,7 +901,11 @@ Array [
|
|||
],
|
||||
"cases": Object {
|
||||
"all": Array [],
|
||||
"create": Array [],
|
||||
"delete": Array [],
|
||||
"push": Array [],
|
||||
"read": Array [],
|
||||
"update": Array [],
|
||||
},
|
||||
"catalogue": Array [
|
||||
"visualize",
|
||||
|
@ -1026,7 +1038,11 @@ Array [
|
|||
],
|
||||
"cases": Object {
|
||||
"all": Array [],
|
||||
"create": Array [],
|
||||
"delete": Array [],
|
||||
"push": Array [],
|
||||
"read": Array [],
|
||||
"update": Array [],
|
||||
},
|
||||
"catalogue": Array [
|
||||
"dashboard",
|
||||
|
@ -1178,7 +1194,11 @@ Array [
|
|||
],
|
||||
"cases": Object {
|
||||
"all": Array [],
|
||||
"create": Array [],
|
||||
"delete": Array [],
|
||||
"push": Array [],
|
||||
"read": Array [],
|
||||
"update": Array [],
|
||||
},
|
||||
"catalogue": Array [
|
||||
"discover",
|
||||
|
@ -1389,7 +1409,11 @@ Array [
|
|||
],
|
||||
"cases": Object {
|
||||
"all": Array [],
|
||||
"create": Array [],
|
||||
"delete": Array [],
|
||||
"push": Array [],
|
||||
"read": Array [],
|
||||
"update": Array [],
|
||||
},
|
||||
"catalogue": Array [
|
||||
"visualize",
|
||||
|
|
|
@ -72,7 +72,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -137,7 +141,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -201,7 +209,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -267,7 +279,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -303,7 +319,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -360,7 +380,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -402,7 +426,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -465,7 +493,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -522,7 +554,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -564,7 +600,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -627,7 +667,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -685,7 +729,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -730,7 +778,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type', 'cases-all-sub-type'],
|
||||
create: ['cases-create-type', 'cases-create-sub-type'],
|
||||
read: ['cases-read-type', 'cases-read-sub-type'],
|
||||
update: ['cases-update-type', 'cases-update-sub-type'],
|
||||
delete: ['cases-delete-type', 'cases-delete-sub-type'],
|
||||
push: ['cases-push-type', 'cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-action', 'ui-sub-type'],
|
||||
},
|
||||
|
@ -762,6 +814,10 @@ describe('featurePrivilegeIterator', () => {
|
|||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
read: ['cases-read-type', 'cases-read-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-action', 'ui-sub-type'],
|
||||
},
|
||||
|
@ -799,7 +855,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -899,7 +959,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -929,7 +993,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: [],
|
||||
create: [],
|
||||
read: ['cases-read-type'],
|
||||
update: [],
|
||||
delete: [],
|
||||
push: [],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -965,7 +1033,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -1024,6 +1096,10 @@ describe('featurePrivilegeIterator', () => {
|
|||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -1068,7 +1144,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type', 'cases-all-sub-type'],
|
||||
create: ['cases-create-type', 'cases-create-sub-type'],
|
||||
read: ['cases-read-type', 'cases-read-sub-type'],
|
||||
update: ['cases-update-type', 'cases-update-sub-type'],
|
||||
delete: ['cases-delete-type', 'cases-delete-sub-type'],
|
||||
push: ['cases-push-type', 'cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-action', 'ui-sub-type'],
|
||||
},
|
||||
|
@ -1256,7 +1336,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -1301,7 +1385,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -1332,7 +1420,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-sub-type'],
|
||||
create: ['cases-create-sub-type'],
|
||||
read: ['cases-read-sub-type'],
|
||||
update: ['cases-update-sub-type'],
|
||||
delete: ['cases-delete-sub-type'],
|
||||
push: ['cases-push-sub-type'],
|
||||
},
|
||||
ui: ['ui-sub-type'],
|
||||
},
|
||||
|
@ -1368,7 +1460,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -1454,7 +1550,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: ['cases-all-type'],
|
||||
create: ['cases-create-type'],
|
||||
read: ['cases-read-type'],
|
||||
update: ['cases-update-type'],
|
||||
delete: ['cases-delete-type'],
|
||||
push: ['cases-push-type'],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
@ -1484,7 +1584,11 @@ describe('featurePrivilegeIterator', () => {
|
|||
},
|
||||
cases: {
|
||||
all: [],
|
||||
create: [],
|
||||
read: ['cases-read-type'],
|
||||
update: [],
|
||||
delete: [],
|
||||
push: [],
|
||||
},
|
||||
ui: ['ui-action'],
|
||||
},
|
||||
|
|
|
@ -135,7 +135,20 @@ function mergeWithSubFeatures(
|
|||
|
||||
mergedConfig.cases = {
|
||||
all: mergeArrays(mergedConfig.cases?.all ?? [], subFeaturePrivilege.cases?.all ?? []),
|
||||
create: mergeArrays(
|
||||
mergedConfig.cases?.create ?? [],
|
||||
subFeaturePrivilege.cases?.create ?? []
|
||||
),
|
||||
read: mergeArrays(mergedConfig.cases?.read ?? [], subFeaturePrivilege.cases?.read ?? []),
|
||||
update: mergeArrays(
|
||||
mergedConfig.cases?.update ?? [],
|
||||
subFeaturePrivilege.cases?.update ?? []
|
||||
),
|
||||
delete: mergeArrays(
|
||||
mergedConfig.cases?.delete ?? [],
|
||||
subFeaturePrivilege.cases?.delete ?? []
|
||||
),
|
||||
push: mergeArrays(mergedConfig.cases?.push ?? [], subFeaturePrivilege.cases?.push ?? []),
|
||||
};
|
||||
}
|
||||
return mergedConfig;
|
||||
|
|
|
@ -74,6 +74,17 @@ const appCategorySchema = schema.object({
|
|||
order: schema.maybe(schema.number()),
|
||||
});
|
||||
|
||||
const casesSchemaObject = schema.maybe(
|
||||
schema.object({
|
||||
all: schema.maybe(casesSchema),
|
||||
create: schema.maybe(casesSchema),
|
||||
read: schema.maybe(casesSchema),
|
||||
update: schema.maybe(casesSchema),
|
||||
delete: schema.maybe(casesSchema),
|
||||
push: schema.maybe(casesSchema),
|
||||
})
|
||||
);
|
||||
|
||||
const kibanaPrivilegeSchema = schema.object({
|
||||
excludeFromBasePrivileges: schema.maybe(schema.boolean()),
|
||||
requireAllSpaces: schema.maybe(schema.boolean()),
|
||||
|
@ -98,12 +109,7 @@ const kibanaPrivilegeSchema = schema.object({
|
|||
),
|
||||
})
|
||||
),
|
||||
cases: schema.maybe(
|
||||
schema.object({
|
||||
all: schema.maybe(casesSchema),
|
||||
read: schema.maybe(casesSchema),
|
||||
})
|
||||
),
|
||||
cases: casesSchemaObject,
|
||||
savedObject: schema.object({
|
||||
all: schema.arrayOf(schema.string()),
|
||||
read: schema.arrayOf(schema.string()),
|
||||
|
@ -140,12 +146,7 @@ const kibanaIndependentSubFeaturePrivilegeSchema = schema.object({
|
|||
),
|
||||
})
|
||||
),
|
||||
cases: schema.maybe(
|
||||
schema.object({
|
||||
all: schema.maybe(casesSchema),
|
||||
read: schema.maybe(casesSchema),
|
||||
})
|
||||
),
|
||||
cases: casesSchemaObject,
|
||||
api: schema.maybe(schema.arrayOf(schema.string())),
|
||||
app: schema.maybe(schema.arrayOf(schema.string())),
|
||||
savedObject: schema.object({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue