Beispiel #1
0
        public HttpResponseMessage RemoveSensitivityLevel(int id, [FromBody] SensitiveDataLevel dataSensitivityLevel)
        {
            var result = _usageService.RemoveSensitiveDataLevel(id, dataSensitivityLevel);

            return(result.Match
                   (
                       onSuccess: itSystemUsageDataLevel => Ok(MapSensitiveDataLevelDTO(itSystemUsageDataLevel)),
                       onFailure: FromOperationError
                   ));
        }
 public static string GetReadableName(this SensitiveDataLevel sensitiveDataLevel)
 {
     return(sensitiveDataLevel switch
     {
         SensitiveDataLevel.NONE => "Ingen persondata",
         SensitiveDataLevel.PERSONALDATA => "Almindelige persondata",
         SensitiveDataLevel.SENSITIVEDATA => "Følsomme persondata",
         SensitiveDataLevel.LEGALDATA => "Straffedomme og lovovertrædelser",
         _ => throw new InvalidOperationException($"Invalid sensitiveDataLevel value: {sensitiveDataLevel}"),
     });
Beispiel #3
0
        public void AddSensitiveData_Returns_Ok(SensitiveDataLevel sensitiveDataLevel)
        {
            //Act
            var result = _sut.AddSensitiveDataLevel(sensitiveDataLevel);

            //Assert
            Assert.True(result.Ok);
            var usageSensitiveDataLevel = result.Value;

            Assert.Equal(sensitiveDataLevel, usageSensitiveDataLevel.SensitivityDataLevel);
            Assert.Single(_sut.SensitiveDataLevels);
        }
Beispiel #4
0
        public Result <ItSystemUsageSensitiveDataLevel, OperationError> RemoveSensitiveDataLevel(
            SensitiveDataLevel sensitiveDataLevel)
        {
            if (!SensitiveDataLevelExists(sensitiveDataLevel))
            {
                return(new OperationError("Data sensitivity does not exists on system usage", OperationFailure.NotFound));
            }

            var dataLevelToRemove = SensitiveDataLevels.First(x => x.SensitivityDataLevel == sensitiveDataLevel);

            SensitiveDataLevels.Remove(dataLevelToRemove);

            return(dataLevelToRemove);
        }
Beispiel #5
0
        public Result <ItSystemUsageSensitiveDataLevel, OperationError> AddSensitiveDataLevel(
            SensitiveDataLevel sensitiveDataLevel)
        {
            if (SensitiveDataLevelExists(sensitiveDataLevel))
            {
                return(new OperationError("Data sensitivity level already exists", OperationFailure.Conflict));
            }

            var newDataLevel = new ItSystemUsageSensitiveDataLevel()
            {
                ItSystemUsage        = this,
                SensitivityDataLevel = sensitiveDataLevel
            };

            SensitiveDataLevels.Add(newDataLevel);

            return(newDataLevel);
        }
        public void AddSensitiveData_Returns_Ok(SensitiveDataLevel sensitiveDataLevel)
        {
            //Arrange
            var itSystem      = CreateItSystem();
            var itSystemUsage = CreateSystemUsage(A <int>(), itSystem);

            ExpectAllowModifyReturns(itSystemUsage, true);
            _usageRepository.Setup(x => x.GetByKey(itSystemUsage.Id)).Returns(itSystemUsage);

            //Act
            var result = _sut.AddSensitiveDataLevel(itSystemUsage.Id, sensitiveDataLevel);

            //Assert
            Assert.True(result.Ok);
            var addedSensitiveData = result.Value;

            Assert.Equal(sensitiveDataLevel, addedSensitiveData.SensitivityDataLevel);
        }
Beispiel #7
0
        public void RemoveSensitiveData_Returns_Ok(SensitiveDataLevel sensitiveDataLevel)
        {
            //Arrange
            var preAddedSensitiveDataLevel = new ItSystemUsageSensitiveDataLevel()
            {
                ItSystemUsage        = _sut,
                SensitivityDataLevel = sensitiveDataLevel
            };

            _sut.SensitiveDataLevels.Add(preAddedSensitiveDataLevel);

            //Act
            var result = _sut.RemoveSensitiveDataLevel(sensitiveDataLevel);

            //Assert
            Assert.True(result.Ok);
            var usageSensitiveDataLevel = result.Value;

            Assert.Equal(preAddedSensitiveDataLevel, usageSensitiveDataLevel);
            Assert.Empty(_sut.SensitiveDataLevels);
        }
Beispiel #8
0
        private void AssertSensitiveDataLevel(SensitiveDataLevel expected, GdprExportReportCsvFormat actual)
        {
            switch (expected)
            {
            case SensitiveDataLevel.NONE:
                AssertYes(actual.NoData);
                AssertNo(actual.PersonalData);
                AssertNo(actual.SensitiveData);
                AssertNo(actual.LegalData);
                return;

            case SensitiveDataLevel.PERSONALDATA:
                AssertNo(actual.NoData);
                AssertYes(actual.PersonalData);
                AssertNo(actual.SensitiveData);
                AssertNo(actual.LegalData);
                return;

            case SensitiveDataLevel.SENSITIVEDATA:
                AssertNo(actual.NoData);
                AssertNo(actual.PersonalData);
                AssertYes(actual.SensitiveData);
                AssertNo(actual.LegalData);
                return;

            case SensitiveDataLevel.LEGALDATA:
                AssertNo(actual.NoData);
                AssertNo(actual.PersonalData);
                AssertNo(actual.SensitiveData);
                AssertYes(actual.LegalData);
                return;

            default:
                throw new AssertActualExpectedException(expected, actual, "Expected is not a correct SensitiveDataLevel");
            }
        }
Beispiel #9
0
 private bool SensitiveDataLevelExists(SensitiveDataLevel sensitiveDataLevel)
 {
     return(SensitiveDataLevels.Any(x => x.SensitivityDataLevel == sensitiveDataLevel));
 }
        public Result <ItSystemUsageSensitiveDataLevel, OperationError> RemoveSensitiveDataLevel(int itSystemUsageId, SensitiveDataLevel sensitiveDataLevel)
        {
            Maybe <ItSystemUsage> usageResult = _usageRepository.GetByKey(itSystemUsageId);

            if (usageResult.IsNone)
            {
                return(new OperationError(OperationFailure.NotFound));
            }

            var usage = usageResult.Value;

            if (!_authorizationContext.AllowModify(usage))
            {
                return(new OperationError(OperationFailure.Forbidden));
            }

            return(usage
                   .RemoveSensitiveDataLevel(sensitiveDataLevel)
                   .Match <Result <ItSystemUsageSensitiveDataLevel, OperationError> >
                   (
                       onSuccess: removedSensitivityLevel =>
            {
                _sensitiveDataLevelRepository.DeleteWithReferencePreload(removedSensitivityLevel);
                _sensitiveDataLevelRepository.Save();
                _usageRepository.Save();
                _domainEvents.Raise(new EntityUpdatedEvent <ItSystemUsage>(usage));
                return removedSensitivityLevel;
            },
                       onFailure: error =>
                       error.FailureType == OperationFailure.NotFound
                            ? new OperationError(OperationFailure.BadInput)
                            : error));
        }
        public Result <ItSystemUsageSensitiveDataLevel, OperationError> AddSensitiveDataLevel(int itSystemUsageId, SensitiveDataLevel sensitiveDataLevel)
        {
            Maybe <ItSystemUsage> usageResult = _usageRepository.GetByKey(itSystemUsageId);

            if (usageResult.IsNone)
            {
                return(new OperationError(OperationFailure.NotFound));
            }

            var usage = usageResult.Value;

            if (!_authorizationContext.AllowModify(usage))
            {
                return(new OperationError(OperationFailure.Forbidden));
            }

            return(usage
                   .AddSensitiveDataLevel(sensitiveDataLevel)
                   .Match <Result <ItSystemUsageSensitiveDataLevel, OperationError> >
                   (
                       onSuccess: addedSensitivityLevel =>
            {
                _usageRepository.Save();
                _domainEvents.Raise(new EntityUpdatedEvent <ItSystemUsage>(usage));
                return addedSensitivityLevel;
            },
                       onFailure: error => error));
        }
        public static async Task <ItSystemUsageSensitiveDataLevelDTO> RemoveSensitiveDataLevel(int systemUsageId, SensitiveDataLevel sensitiveDataLevel)
        {
            var cookie = await HttpApi.GetCookieAsync(OrganizationRole.GlobalAdmin);

            using (var okResponse = await HttpApi.PatchWithCookieAsync(TestEnvironment.CreateUrl($"api/v1/itsystemusage/{systemUsageId}/sensitivityLevel/remove"), cookie, sensitiveDataLevel))
            {
                Assert.Equal(HttpStatusCode.OK, okResponse.StatusCode);
                return(await okResponse.ReadResponseBodyAsKitosApiResponseAsync <ItSystemUsageSensitiveDataLevelDTO>());
            }
        }