open-consul/ui/packages/consul-ui/app/validations/intention-permission.js
John Cowen c98130cc08
ui: Move to Workspaced Structure (#8994)
* ui: Add the most basic workspace root in /ui

* We already have a LICENSE file in the repository root

* Change directory path in build scripts ui-v2 -> ui

* Make yarn install flags configurable from elsewhere

* Minimal workspace root makefile

* Call the new docker specific target

* Update yarn in the docker build image

* Reconfigure the netlify target and move to the higher makefile

* Move ui-v2 -> ui/packages/consul-ui

* Change repo root to refleect new folder structure

* Temporarily don't hoist consul-api-double

* Fixup CI configuration

* Fixup lint errors

* Fixup Netlify target
2020-10-21 15:23:16 +01:00

30 lines
1,020 B
JavaScript

import {
validateInclusion,
validatePresence,
validateFormat,
} from 'ember-changeset-validations/validators';
import validateSometimes from 'ember-changeset-conditional-validations/validators/sometimes';
const name = 'intention-permission';
export default schema => ({
'*': validateSometimes([validatePresence(true)], function() {
const methods = this.get('HTTP.Methods') || [];
const headers = this.get('HTTP.Header') || [];
const pathType = this.get('HTTP.PathType') || 'NoPath';
const path = this.get('HTTP.Path') || '';
const isValid = [
methods.length !== 0,
headers.length !== 0,
pathType !== 'NoPath' && path !== '',
].includes(true);
return !isValid;
}),
Action: [validateInclusion({ in: schema[name].Action.allowedValues })],
HTTP: {
Path: validateSometimes([validateFormat({ regex: /^\// })], function() {
const pathType = this.get('HTTP.PathType');
return typeof pathType !== 'undefined' && pathType !== 'NoPath';
}),
},
});