mirror of
https://github.com/datahub-project/datahub.git
synced 2025-12-27 18:07:57 +00:00
adds types for dataset security class. defaults dataset security class to internal with user confirmation
This commit is contained in:
parent
78413e56c0
commit
680e28045e
@ -5,6 +5,7 @@ import { run, schedule } from '@ember/runloop';
|
||||
import { inject } from '@ember/service';
|
||||
import { classify } from '@ember/string';
|
||||
import { IFieldIdentifierOption } from 'wherehows-web/constants/dataset-compliance';
|
||||
import { Classification } from 'wherehows-web/constants/datasets/compliance';
|
||||
|
||||
import isTrackingHeaderField from 'wherehows-web/utils/validators/tracking-headers';
|
||||
import {
|
||||
@ -52,6 +53,7 @@ import { task } from 'ember-concurrency';
|
||||
interface IDatasetComplianceActions {
|
||||
didEditCompliancePolicy: () => Promise<boolean>;
|
||||
didEditPurgePolicy: () => Promise<{} | void>;
|
||||
didEditDatasetLevelCompliancePolicy: () => Promise<void>;
|
||||
[K: string]: (...args: Array<any>) => any;
|
||||
}
|
||||
|
||||
@ -96,7 +98,8 @@ const {
|
||||
helpText,
|
||||
successUploading,
|
||||
invalidPolicyData,
|
||||
missingPurgePolicy
|
||||
missingPurgePolicy,
|
||||
defaultDatasetClassificationMsg
|
||||
} = compliancePolicyStrings;
|
||||
|
||||
/**
|
||||
@ -1047,6 +1050,39 @@ export default class DatasetCompliance extends ObservableDecorator {
|
||||
return isConfirmed;
|
||||
},
|
||||
|
||||
/**
|
||||
* Handles tasks to be processed after the wizard step to edit a datasets pii and security classification is
|
||||
* completed
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async didEditDatasetLevelCompliancePolicy(this: DatasetCompliance): Promise<void> {
|
||||
const complianceInfo = get(this, 'complianceInfo');
|
||||
|
||||
if (complianceInfo) {
|
||||
const { confidentiality, containingPersonalData } = complianceInfo;
|
||||
const dialogActions: { [prop: string]: () => void } = {};
|
||||
const confirmConfidentialityPromise = new Promise((resolve, reject) => {
|
||||
dialogActions['didConfirm'] = () => resolve();
|
||||
dialogActions['didDismiss'] = () => reject();
|
||||
});
|
||||
|
||||
// defaults the containing personal data flag to false if undefined
|
||||
if (typeof containingPersonalData !== 'undefined') {
|
||||
set(complianceInfo, 'containingPersonalData', false);
|
||||
}
|
||||
|
||||
if (!confidentiality) {
|
||||
get(this, 'notifications').notify(NotificationEvent.confirm, {
|
||||
dialogActions,
|
||||
header: 'Confirm dataset classification',
|
||||
content: defaultDatasetClassificationMsg
|
||||
});
|
||||
await confirmConfidentialityPromise;
|
||||
set(complianceInfo, 'confidentiality', Classification.Internal);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Handles post processing tasks after the purge policy step has been completed
|
||||
* @returns {(Promise<void | {}>)}
|
||||
|
||||
@ -55,7 +55,9 @@ const compliancePolicyStrings = {
|
||||
'This security classification is from go/dht and should be good enough in most cases. ' +
|
||||
'You can optionally override it if required by house security.'
|
||||
},
|
||||
missingPurgePolicy: 'Please specify a Compliance Purge Policy'
|
||||
missingPurgePolicy: 'Please specify a Compliance Purge Policy',
|
||||
defaultDatasetClassificationMsg: `You haven't set this dataset's security classification,
|
||||
it's value will be set to default of "${Classification.Internal}"`
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -18,7 +18,9 @@ enum SuggestionIntent {
|
||||
enum Classification {
|
||||
Confidential = 'CONFIDENTIAL',
|
||||
LimitedDistribution = 'LIMITED_DISTRIBUTION',
|
||||
HighlyConfidential = 'HIGHLY_CONFIDENTIAL'
|
||||
HighlyConfidential = 'HIGHLY_CONFIDENTIAL',
|
||||
Internal = 'INTERNAL',
|
||||
Public = 'PUBLIC'
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user