Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feature/shibui-1743' into featur…
Browse files Browse the repository at this point in the history
…e/shibui-1743
  • Loading branch information
chasegawa committed Aug 27, 2021
2 parents d0471c9 + 59c484a commit aaaffdb
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 17 deletions.
2 changes: 1 addition & 1 deletion backend/src/main/resources/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ message.delete-group-body=You are requesting to delete a group. If you complete
message.delete-attribute-title=Delete Attribute?
message.delete-attribute-body=You are requesting to delete a custom attribute. If you complete this process the attribute will be removed. This cannot be undone. Do you wish to continue?

message.group-pattern-fail=Pattern must match group url validation pattern.
message.group-pattern-fail=Pattern must match group url validation pattern: {regex}

message.must-be-unique=Must be unique.
message.must-be-number=Must be a number.
Expand Down
2 changes: 1 addition & 1 deletion ui/src/app/form/component/fields/FilterTargetField.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ const FilterTargetField = ({
</small>
:
<small className="text-danger">
<Translate value="message.group-pattern-fail">
<Translate value="message.group-pattern-fail" params={{regex: group?.validationRegex}}>
Invalid URL
</Translate>
</small>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const DynamicHttpMetadataProviderWizard = {
label: 'DynamicHttpMetadataProvider',
type: 'DynamicHttpMetadataResolver',
schema: `${API_BASE_PATH}/ui/MetadataResolver/DynamicHttpMetadataResolver`,
validator: (data = [], current = { resourceId: null }, group) => {
validator: (data = [], current = { resourceId: null }, group, translator) => {
const base = BaseProviderDefinition.validator(data, current, group);

const pattern = group?.validationRegex ? new RegExp(group?.validationRegex) : null;
Expand All @@ -26,7 +26,7 @@ export const DynamicHttpMetadataProviderWizard = {

if (formData?.metadataRequestURLConstructionScheme['@type'] === 'MetadataQueryProtocol') {
if (pattern && !pattern.test(formData?.metadataRequestURLConstructionScheme?.content)) {
errors?.metadataRequestURLConstructionScheme?.content?.addError('message.group-pattern-fail');
errors?.metadataRequestURLConstructionScheme?.content?.addError(translator('message.group-pattern-fail', { regex: group?.validationRegex }));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const FileBackedHttpMetadataProviderWizard = {
label: 'FileBackedHttpMetadataProvider',
type: 'FileBackedHttpMetadataResolver',
schema: '/assets/schema/provider/filebacked-http.schema.json',
validator: (data = [], current = { resourceId: null }, group) => {
validator: (data = [], current = { resourceId: null }, group, translator) => {
const base = BaseProviderDefinition.validator(data, current, group);

const pattern = group?.validationRegex ? new RegExp(group?.validationRegex) : null;
Expand All @@ -17,7 +17,7 @@ export const FileBackedHttpMetadataProviderWizard = {
const errorList = base(formData, errors);
if (formData?.metadataURL) {
if (pattern && !pattern.test(formData?.metadataURL)) {
errors?.metadataURL?.addError('message.group-pattern-fail');
errors?.metadataURL?.addError(translator('message.group-pattern-fail', { regex: group?.validationRegex }));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,22 @@ export const SourceBase = {

display: (changes) => changes,

validator: (data = [], current = {id: null}, group) => {
validator: (data = [], current = {id: null}, group, translator) => {

const sources = current ? data.filter(s => s.id !== current.id) : data;
const entityIds = sources.map(s => s.entityId);
const pattern = group?.validationRegex ? new RegExp(group?.validationRegex) : null;

return (formData, errors) => {

console.log(errors)

if (entityIds.indexOf(formData.entityId) > -1) {
errors.entityId.addError('message.id-unique');
}

if (pattern && !pattern.test(formData.entityId)) {
errors.entityId.addError('message.group-pattern-fail');
errors.entityId.addError(translator('message.group-pattern-fail', {regex: group?.validationRegex}));
}

if (formData?.serviceProviderSsoDescriptor?.nameIdFormats?.length > 0 && !formData.serviceProviderSsoDescriptor.protocolSupportEnum) {
Expand All @@ -41,7 +44,7 @@ export const SourceBase = {
if (Array.isArray(formData?.assertionConsumerServices)) {
formData.assertionConsumerServices.forEach((acs, idx) => {
if (!isNil(acs?.locationUrl) && !pattern.test(acs.locationUrl)) {
errors.assertionConsumerServices[idx].locationUrl.addError('message.group-pattern-fail')
errors.assertionConsumerServices[idx].locationUrl.addError(translator('message.group-pattern-fail', { regex: group?.validationRegex }))
}
});
}
Expand Down
4 changes: 2 additions & 2 deletions ui/src/app/metadata/editor/MetadataEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import Alert from 'react-bootstrap/Alert';

import Translate from '../../i18n/components/translate';
import { MetadataFormContext, setFormDataAction, setFormErrorAction } from '../hoc/MetadataFormContext';
import { MetadataDefinitionContext, MetadataSchemaContext } from '../hoc/MetadataSchema';
import { MetadataDefinitionContext, MetadataSchemaContext, useMetadataDefinitionValidator } from '../hoc/MetadataSchema';

import { MetadataEditorForm } from './MetadataEditorForm';
import { MetadataEditorNav } from './MetadataEditorNav';
Expand Down Expand Up @@ -79,7 +79,7 @@ export function MetadataEditor ({ current }) {

const [blocking, setBlocking] = React.useState(false);

const validator = definition.validator(data, current, group);
const validator = useMetadataDefinitionValidator(data, current, group);

const warnings = definition.warnings && definition.warnings(metadata);

Expand Down
4 changes: 2 additions & 2 deletions ui/src/app/metadata/editor/MetadataFilterEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Alert from 'react-bootstrap/Alert';

import Translate from '../../i18n/components/translate';
import { MetadataFormContext, setFormDataAction, setFormErrorAction } from '../hoc/MetadataFormContext';
import { MetadataDefinitionContext, MetadataSchemaContext } from '../hoc/MetadataSchema';
import { MetadataDefinitionContext, MetadataSchemaContext, useMetadataDefinitionValidator } from '../hoc/MetadataSchema';

import { MetadataEditorForm } from './MetadataEditorForm';
import { MetadataEditorNav } from './MetadataEditorNav';
Expand Down Expand Up @@ -34,7 +34,7 @@ export function MetadataFilterEditor({children, onNavigate, block}) {
block(checkChanges(metadata, changes.formData));
};

const validator = definition.validator(data, current, group);
const validator = useMetadataDefinitionValidator(data, current, group);

const warnings = definition.warnings && definition.warnings(metadata);

Expand Down
7 changes: 7 additions & 0 deletions ui/src/app/metadata/hoc/MetadataSchema.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { getDefinition, getWizard } from '../domain/index';
import useFetch from 'use-http';
import { useTranslator } from '../../i18n/hooks';

export const MetadataSchemaContext = React.createContext();
export const MetadataDefinitionContext = React.createContext();
Expand Down Expand Up @@ -47,6 +48,12 @@ export function useMetadataDefinitionContext() {
return React.useContext(MetadataDefinitionContext);
}

export function useMetadataDefinitionValidator(data, current, group) {
const definition = useMetadataDefinitionContext();
const translator = useTranslator();
return definition.validator(data, current, group, translator);
}

//getConfigurationSections

export default MetadataSchema;
4 changes: 2 additions & 2 deletions ui/src/app/metadata/wizard/MetadataProviderWizard.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import { WizardNav } from './WizardNav';
import { MetadataWizardForm } from './MetadataWizardForm';
import { setWizardIndexAction, useCurrentIndex, useIsLastPage, useWizardDispatcher } from './Wizard';
import { useMetadataDefinitionContext, useMetadataSchemaContext } from '../hoc/MetadataSchema';
import { useMetadataDefinitionContext, useMetadataDefinitionValidator, useMetadataSchemaContext } from '../hoc/MetadataSchema';
import { checkChanges, useMetadataSchema } from '../hooks/schema';
import { useMetadataFormDispatcher, setFormDataAction, setFormErrorAction, useMetadataFormData, useMetadataFormErrors } from '../hoc/MetadataFormContext';
import { MetadataConfiguration } from '../component/MetadataConfiguration';
Expand Down Expand Up @@ -53,7 +53,7 @@ export function MetadataProviderWizard({onRestart}) {
// console.log(form);
}

const validator = definition.validator(data, null, group);
const validator = useMetadataDefinitionValidator(data, null, group);

async function save() {
const body = removeNull(definition.parser(metadata), true);
Expand Down
4 changes: 2 additions & 2 deletions ui/src/app/metadata/wizard/MetadataSourceWizard.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Col from 'react-bootstrap/Col';
import { WizardNav } from './WizardNav';
import { MetadataWizardForm } from './MetadataWizardForm';
import { setWizardIndexAction, useCurrentIndex, useIsFirstPage, useIsLastPage, useWizardDispatcher } from './Wizard';
import { useMetadataDefinitionContext, useMetadataSchemaContext } from '../hoc/MetadataSchema';
import { useMetadataDefinitionContext, useMetadataSchemaContext, useMetadataDefinitionValidator } from '../hoc/MetadataSchema';
import { useMetadataFormDispatcher, setFormDataAction, setFormErrorAction, useMetadataFormData, useMetadataFormErrors } from '../hoc/MetadataFormContext';
import { MetadataConfiguration } from '../component/MetadataConfiguration';
import { Configuration } from '../hoc/Configuration';
Expand Down Expand Up @@ -74,7 +74,7 @@ export function MetadataSourceWizard ({ onShowNav }) {

const [blocking, setBlocking] = React.useState(false);

const validator = definition.validator(data, null, group);
const validator = useMetadataDefinitionValidator(data, null, group);
const warnings = definition.warnings && definition.warnings(metadata);

return (
Expand Down

0 comments on commit aaaffdb

Please sign in to comment.