From 4e5ff5fc07d95908d46d5c061f273e32b8b0dcd6 Mon Sep 17 00:00:00 2001 From: slewis74 Date: Thu, 17 Jun 2021 17:33:31 +1000 Subject: [PATCH 1/3] Switching to use UserId tiny type --- .../CredentialValidatorTests.cs | 35 ++++++++++--------- source/Server/Server.csproj | 4 +-- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/source/DirectoryServices.Tests/CredentialValidatorTests.cs b/source/DirectoryServices.Tests/CredentialValidatorTests.cs index 254064f..668e6f3 100644 --- a/source/DirectoryServices.Tests/CredentialValidatorTests.cs +++ b/source/DirectoryServices.Tests/CredentialValidatorTests.cs @@ -13,6 +13,7 @@ using Octopus.Server.Extensibility.Authentication.HostServices; using Octopus.Server.Extensibility.Results; using Octopus.Server.MessageContracts; +using Octopus.Server.MessageContracts.Features.Users; using Shouldly; namespace DirectoryServices.Tests @@ -67,14 +68,14 @@ public void ExistingUserWithMatchingIdentity() directoryServicesService.ValidateCredentials("existingUser", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("existingUser@test.com", "existingUser", "TestDomain", string.Empty, String.Empty)); - var user = new User("Users-100", "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new [] { user }); var result = validator.ValidateCredentials("existingUser", "testPassword", CancellationToken.None); result.ShouldBeOfType>(); - updateableUserStore.DidNotReceive().UpdateIdentity(Arg.Any(), Arg.Any(), CancellationToken.None); + updateableUserStore.DidNotReceive().UpdateIdentity(Arg.Any(), Arg.Any(), CancellationToken.None); } [Test] @@ -83,7 +84,7 @@ public void ExistingUserWithMultipleIdentities() directoryServicesService.ValidateCredentials("existingUser1@test.com", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("existingUser1@test.com", "\\existingUser1", "TestDomain", string.Empty, String.Empty)); - var user = new User("Users-100", "existingUser", identityCreator.Create(string.Empty, string.Empty, "TestDomain\\existingUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "existingUser", identityCreator.Create(string.Empty, string.Empty, "TestDomain\\existingUser", string.Empty)); user.Identities.Add(identityCreator.Create("existingUser@test.com", "existingUser1@test.com","TestDomain\\existingUser1", string.Empty)); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new [] { user }); @@ -92,7 +93,7 @@ public void ExistingUserWithMultipleIdentities() var result = validator.ValidateCredentials("existingUser1@test.com", "testPassword", CancellationToken.None); result.ShouldBeOfType>(); - updateableUserStore.Received(1).UpdateIdentity(Arg.Any(), Arg.Any(), CancellationToken.None); + updateableUserStore.Received(1).UpdateIdentity(Arg.Any(), Arg.Any(), CancellationToken.None); } [Test] @@ -103,7 +104,7 @@ public void NewUserWithNoMatchingIdentity() updateableUserStore.GetByIdentity(Arg.Any()).Returns(new IUser[0]); - var user = new User("Users-100", "newUser", identityCreator.Create(string.Empty, "newUser@test.com", "TestDomain\\newUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "newUser", identityCreator.Create(string.Empty, "newUser@test.com", "TestDomain\\newUser", string.Empty)); updateableUserStore.Create("newUser@test.com", Arg.Any(), Arg.Any(), CancellationToken.None, Arg.Any(), Arg.Any>()) .Returns(ResultFromExtension.Success(user)); @@ -119,7 +120,7 @@ public void NewUserWithPartialMatchOnExistingEmail() directoryServicesService.ValidateCredentials("newUser", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("newUser@test.com", "newUser", "TestDomain", string.Empty, "tester@test.com")); - var user = new User("Users-100", "existingUser", identityCreator.Create("tester@test.com", "existingUser@test.com", "TestDomain\\existingUser", "")); + var user = new User("Users-100".ToUserId(), "existingUser", identityCreator.Create("tester@test.com", "existingUser@test.com", "TestDomain\\existingUser", "")); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new[] { user }); @@ -140,8 +141,8 @@ public void ExistingUsersWithPartialMatchOnEmailButMatchingIdentity() directoryServicesService.ValidateCredentials("existingUser2", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("existingUser2@test.com", "existingUser2", "TestDomain", string.Empty, "tester@test.com")); - var user1 = new User("Users-100", "existingUser1", identityCreator.Create("tester@test.com", "existingUser1@test.com", "TestDomain\\existingUser1", "")); - var user2 = new User("Users-101", "existingUser2", identityCreator.Create("tester@test.com", "existingUser2@test.com", "TestDomain\\existingUser2", "")); + var user1 = new User("Users-100".ToUserId(), "existingUser1", identityCreator.Create("tester@test.com", "existingUser1@test.com", "TestDomain\\existingUser1", "")); + var user2 = new User("Users-101".ToUserId(), "existingUser2", identityCreator.Create("tester@test.com", "existingUser2@test.com", "TestDomain\\existingUser2", "")); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new[] { user1, user2 }); @@ -175,7 +176,7 @@ public void NewUserFromAnotherDomain() updateableUserStore.GetByIdentity(Arg.Any()).Returns(new IUser[0]); - var user = new User("Users-100", "newUser", identityCreator.Create(string.Empty, "newUser@domain2.com", "Domain2\\newUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "newUser", identityCreator.Create(string.Empty, "newUser@domain2.com", "Domain2\\newUser", string.Empty)); updateableUserStore.Create("newUser@domain2.com", Arg.Any(), Arg.Any(), CancellationToken.None, Arg.Any(), Arg.Any>()) .Returns(ResultFromExtension.Success(user)); @@ -191,14 +192,14 @@ public void ExistingUserWhoHadTheirUpnChanged() directoryServicesService.ValidateCredentials("existingUser", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("existingUser@new.test.com", "existingUser", "TestDomain", string.Empty, String.Empty)); - var user = new User("Users-100", "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new[] { user }); var result = validator.ValidateCredentials("existingUser", "testPassword", CancellationToken.None); result.ShouldBeOfType>(); - updateableUserStore.Received(1).UpdateIdentity("Users-100", Arg.Any(), CancellationToken.None); + updateableUserStore.Received(1).UpdateIdentity("Users-100".ToUserId(), Arg.Any(), CancellationToken.None); updateableUserStore.DidNotReceive().Create(Arg.Any(), Arg.Any(), Arg.Any(), CancellationToken.None); } @@ -208,14 +209,14 @@ public void ExistingUserWhoHadTheirSamAccountNameChanged() directoryServicesService.ValidateCredentials("existingUserWithNewSam", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("existingUser@test.com", "existingUserWithNewSam", "TestDomain", string.Empty, String.Empty)); - var user = new User("Users-100", "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new[] { user }); var result = validator.ValidateCredentials("existingUserWithNewSam", "testPassword", CancellationToken.None); result.ShouldBeOfType>(); - updateableUserStore.Received(1).UpdateIdentity("Users-100", Arg.Any(), CancellationToken.None); + updateableUserStore.Received(1).UpdateIdentity("Users-100".ToUserId(), Arg.Any(), CancellationToken.None); updateableUserStore.DidNotReceive().Create(Arg.Any(), Arg.Any(), Arg.Any(), CancellationToken.None); } @@ -225,7 +226,7 @@ public void ExistingUserWhoHadTheirUpnAndSamAccountNameChanged() directoryServicesService.ValidateCredentials("existingUserWithNewSam", "testPassword", CancellationToken.None) .Returns(new UserValidationResult("existingUser@new.test.com", "existingUserWithNewSam", "TestDomain", string.Empty, String.Empty)); - var user = new User("Users-100", "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); + var user = new User("Users-100".ToUserId(), "existingUser", identityCreator.Create(string.Empty, "existingUser@test.com", "TestDomain\\existingUser", string.Empty)); updateableUserStore.GetByIdentity(Arg.Any()).Returns(new[] { user }); @@ -234,20 +235,20 @@ public void ExistingUserWhoHadTheirUpnAndSamAccountNameChanged() var result = validator.ValidateCredentials("existingUserWithNewSam", "testPassword", CancellationToken.None); result.ShouldBeOfType>(); - updateableUserStore.Received(1).UpdateIdentity("Users-100", Arg.Any(), CancellationToken.None); + updateableUserStore.Received(1).UpdateIdentity("Users-100".ToUserId(), Arg.Any(), CancellationToken.None); updateableUserStore.DidNotReceive().Create(Arg.Any(), Arg.Any(), Arg.Any(), CancellationToken.None); } private class User : IUser { - public User(string id, string username, Identity identity) + public User(UserId id, string username, Identity identity) { Id = id; Username = username; Identities = new HashSet(new [] {identity}); } - public string Id { get; } + public UserId Id { get; } public string Username { get; } public Guid IdentificationToken { get; } public string DisplayName { get; set; } diff --git a/source/Server/Server.csproj b/source/Server/Server.csproj index c7a6aaf..5e3d741 100644 --- a/source/Server/Server.csproj +++ b/source/Server/Server.csproj @@ -19,11 +19,11 @@ - + - + From 2af23d5d80ee959d2047e69f7babdf4051c6cdfd Mon Sep 17 00:00:00 2001 From: slewis74 Date: Fri, 2 Jul 2021 09:52:54 +1000 Subject: [PATCH 2/3] corrected package updates to current versions --- source/Server/Server.csproj | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/Server/Server.csproj b/source/Server/Server.csproj index 5e3d741..c4271b4 100644 --- a/source/Server/Server.csproj +++ b/source/Server/Server.csproj @@ -18,13 +18,12 @@ - + + - - - + From 04dda76869f1039bb1c5636b134bd7a63d9e15cd Mon Sep 17 00:00:00 2001 From: slewis74 Date: Wed, 7 Jul 2021 17:02:32 +1000 Subject: [PATCH 3/3] package update --- source/Server/Server.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Server/Server.csproj b/source/Server/Server.csproj index c4271b4..5b93627 100644 --- a/source/Server/Server.csproj +++ b/source/Server/Server.csproj @@ -20,7 +20,7 @@ - +