Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net452;net461;net472;netstandard2.0;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>net452;net461;net472;netstandard2.0;netcoreapp3.1;</TargetFrameworks>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net452' OR '$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net472'">
Expand All @@ -14,7 +14,7 @@
<PackageReference Include="Kentor.OwinCookieSaver" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.7" />
<PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.7" />

</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net452'">
Expand All @@ -31,16 +31,16 @@
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net472'">
<PackageReference Include="StackExchange.Redis">
<Version>2.2.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Core">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="Polly" Version="7.2.1" />
<PackageReference Include="StackExchange.Redis">
<Version>2.2.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Core">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="Polly" Version="7.1.1" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'">
Expand All @@ -52,46 +52,46 @@
<PackageReference Include="Microsoft.Extensions.Caching.Redis">
<Version>2.2.0</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis">
<Version>2.2.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Core">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="Polly" Version="7.2.1" />
<PackageReference Include="StackExchange.Redis">
<Version>2.2.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Core">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft">
<Version>6.3.4</Version>
</PackageReference>
<PackageReference Include="Polly" Version="7.1.1" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authorization.Policy" Version="2.1.2" />
<PackageReference Include="Microsoft.Extensions.Http" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Caching.Redis">
<Version>2.1.2</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis">
<Version>2.2.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Core">
<Version>5.5.0</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft">
<Version>5.5.0</Version>
</PackageReference>
<PackageReference Include="Polly" Version="7.2.1" />
<PackageReference Include="StackExchange.Redis">
<Version>2.2.4</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Core">
<Version>5.5.0</Version>
</PackageReference>
<PackageReference Include="StackExchange.Redis.Extensions.Newtonsoft">
<Version>5.5.0</Version>
</PackageReference>
<PackageReference Include="Polly" Version="7.1.1" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Auth0.AuthenticationApi" Version="7.5.0" />
<PackageReference Include="Auth0.Core" Version="7.5.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />

</ItemGroup>

<Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<UserSecretsId>b69bc28e-14c9-4c24-bd25-232e24a55745</UserSecretsId>
</PropertyGroup>

Expand Down Expand Up @@ -32,15 +32,14 @@
<PackageReference Include="Auth0.AuthenticationApi" Version="7.5.0" />
<PackageReference Include="Auth0.ManagementApi" Version="7.5.0" />
<PackageReference Include="MailKit" Version="2.13.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.8">
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.8" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.3" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.3" />
<!--<PackageReference Include="Microsoft.AspNet.WebPages" Version="3.2.7" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />-->
Expand Down
2 changes: 1 addition & 1 deletion NICE.Identity.Authorisation.WebAPI/Repositories/Context.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public List<User> GetUsers(IEnumerable<string> authenticationProviderUserIds)
internal IEnumerable<User> GetUsersByOrganisationId(int organisationId)
{
return Jobs.Where(jobs => jobs.OrganisationId.Equals(organisationId))
.Include(users => users)
.Include(x => x.User)
.Select(x => x.User)
.ToList();
}
Expand Down
5 changes: 3 additions & 2 deletions NICE.Identity.Authorisation.WebAPI/Services/UsersService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,9 @@ public Dictionary<string, IEnumerable<string>> FindRoles(IEnumerable<string> nam
var users = _context.GetUsers(nameIdentifiers);
return users.ToDictionary(user => user.NameIdentifier,
user => user.UserRoles
.Where(userRole => EF.Functions.Like(userRole.Role.Website.Host, host))
.Select(role => role.Role.Name));
.Where(userRole =>
userRole.Role.Website.Host.Contains(host))
.Select(role => role.Role.Name));
}

/// <summary>
Expand Down
30 changes: 15 additions & 15 deletions NICE.Identity.Test/NICE.Identity.Test.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net10.0</TargetFramework>

<IsPackable>false</IsPackable>
</PropertyGroup>
Expand All @@ -11,15 +11,15 @@
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.3" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.8" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="10.0.3" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.3" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.3" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.3" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="netDumbster" Version="3.0.1" />
Expand All @@ -44,16 +44,16 @@
</Reference>
</ItemGroup>

<ItemGroup>
<Folder Include="DiffTools\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NICE.Identity.Authentication.Sdk\NICE.Identity.Authentication.Sdk.csproj" />
<ProjectReference Include="..\NICE.Identity.Authorisation.WebAPI\NICE.Identity.Authorisation.WebAPI.csproj" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\NICE.Identity.Authentication.Sdk\NICE.Identity.Authentication.Sdk.csproj" />
<ProjectReference Include="..\NICE.Identity.Authorisation.WebAPI\NICE.Identity.Authorisation.WebAPI.csproj" />
<Folder Include="DiffTools\" />
</ItemGroup>

<ItemGroup>
<ItemGroup>
<None Update="Emails\BasicTemplate.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public void Create_user_where_user_already_exists()
var nameIdentifier = Guid.NewGuid().ToString();

var context = GetContext();
context.Users.Add(new DataModels.User { NameIdentifier = nameIdentifier });
context.Users.Add(new DataModels.User { NameIdentifier = nameIdentifier, EmailAddress = "test@nice.org.uk"});
context.SaveChanges();

var userService = new UsersService(context, _logger.Object, _providerManagementService.Object, _emailService.Object);
Expand Down Expand Up @@ -222,10 +222,10 @@ private void AddUsersWithAndWithoutRoles(IdentityContext context)
Host = "test.nice.org.uk"
});
context.Roles.Add(new DataModels.Role() { RoleId = 1, WebsiteId = 1, Name = "TestRole" });
context.Users.Add(new DataModels.User() { UserId = 1, NameIdentifier = "user with role" });
context.Users.Add(new DataModels.User() { UserId = 1, NameIdentifier = "user with role", EmailAddress = "test@nice.org.uk" });
context.UserRoles.Add(new DataModels.UserRole() { UserRoleId = 1, RoleId = 1, UserId = 1 });

context.Users.Add(new DataModels.User() { UserId = 2, NameIdentifier = "user without role" });
context.Users.Add(new DataModels.User() { UserId = 2, NameIdentifier = "user without role", EmailAddress = "test@nice.org.uk" });

context.SaveChanges();
}
Expand Down Expand Up @@ -309,7 +309,7 @@ public async Task Update_user_that_already_exists()
var changedEmailAddress = "changed.email.address@email.com";
var context = GetContext();
var userService = new UsersService(context, _logger.Object, _providerManagementService.Object, _emailService.Object);
var user = new ApiModels.User(){ EmailAddress = originalEmailAddress, FirstName = "Joe"};
var user = new ApiModels.User(){ EmailAddress = originalEmailAddress, FirstName = "Joe", NameIdentifier = "user with role" };
var createdUserId = userService.CreateUser(user).UserId;

//Act
Expand Down Expand Up @@ -369,7 +369,7 @@ public async Task Delete_single_user_with_userId()

context.UserRoles.Add(new DataModels.UserRole() { RoleId = roleId, UserId = userToBeDeleted.UserId });
context.Jobs.Add(new DataModels.Job() { IsLead = false, OrganisationId = organisationId, UserId = userToBeDeleted.UserId });
context.UserEmailHistory.Add(new DataModels.UserEmailHistory() {UserId = userToBeDeleted.UserId, EmailAddress = "oldAddress@example.com"});
context.UserEmailHistory.Add(new DataModels.UserEmailHistory() {UserId = userToBeDeleted.UserId, EmailAddress = "oldAddress@example.com", ArchivedDateUTC = DateTime.Now });
context.UserAcceptedTermsVersions.Add(new DataModels.UserAcceptedTermsVersion() { TermsVersionId = 1, UserAcceptedDate = DateTime.Now, UserId = userToBeDeleted.UserId });

context.SaveChanges();
Expand Down Expand Up @@ -527,12 +527,12 @@ public void Update_roles_for_user()
//Arrange
var context = GetContext();
var userService = new UsersService(context, _logger.Object, _providerManagementService.Object, _emailService.Object);
context.Environments.Add(new DataModels.Environment() { EnvironmentId = 1});
context.Services.Add(new DataModels.Service(){ServiceId = 1});
context.Websites.Add(new DataModels.Website(){WebsiteId = 1, ServiceId = 1, EnvironmentId = 1});
context.Environments.Add(new DataModels.Environment() { EnvironmentId = 1, Name = "Test" });
context.Services.Add(new DataModels.Service(){ServiceId = 1, Name = "Service" });
context.Websites.Add(new DataModels.Website(){WebsiteId = 1, ServiceId = 1, EnvironmentId = 1, Host = "dev.nice.org.uk" });
context.Roles.Add(new DataModels.Role() { RoleId = 1, Name = "TestRole1"});
context.Roles.Add(new DataModels.Role() { RoleId = 2, Name = "TestRole2"});
context.Users.Add(new DataModels.User(){UserId = 1});
context.Users.Add(new DataModels.User(){UserId = 1, EmailAddress = "alice@nice.org.uk", NameIdentifier = "user with role" });
context.SaveChanges();

//Act
Expand Down Expand Up @@ -563,8 +563,8 @@ public void Find_users()
});
context.Roles.Add(new DataModels.Role() {RoleId = 1, WebsiteId = 1, Name = "TestRole1"});
context.Roles.Add(new DataModels.Role() {RoleId = 2, WebsiteId = 1, Name = "TestRole2"});
context.Users.Add(new DataModels.User(){UserId = 1, NameIdentifier = "auth|user1"});
context.Users.Add(new DataModels.User(){UserId = 2, NameIdentifier = "auth|user2"});
context.Users.Add(new DataModels.User(){UserId = 1, NameIdentifier = "auth|user1", EmailAddress = "test@nice.org.uk" });
context.Users.Add(new DataModels.User(){UserId = 2, NameIdentifier = "auth|user2", EmailAddress = "test@nice.org.uk" });
context.SaveChanges();

//Act
Expand All @@ -589,7 +589,7 @@ public void Find_roles()
WebsiteId = 1, EnvironmentId = 1, ServiceId = 1, Host = "test.nice.org.uk"
});
context.Roles.Add(new DataModels.Role() {RoleId = 1, WebsiteId = 1, Name = "TestRole"});
context.Users.Add(new DataModels.User(){UserId = 1, NameIdentifier = "auth|user1"});
context.Users.Add(new DataModels.User(){UserId = 1, NameIdentifier = "auth|user1", EmailAddress = "test@nice.org.uk" });
context.UserRoles.Add(new DataModels.UserRole() { UserRoleId = 1, RoleId = 1, UserId = 1});
context.SaveChanges();

Expand Down Expand Up @@ -646,7 +646,7 @@ public void Import_users_when_existing_user_available_does_not_create_duplicate(
var existingEmailAddress = "existing.user.account@nice.org.uk";
var existingFirstName = "Phil";
var userService = new UsersService(context, _logger.Object, _providerManagementService.Object, _emailService.Object);
context.Users.Add(new DataModels.User() { EmailAddress = existingEmailAddress, FirstName = existingFirstName, LastName = "Connors"});
context.Users.Add(new DataModels.User() { EmailAddress = existingEmailAddress, FirstName = existingFirstName, LastName = "Connors", NameIdentifier = "auth|phil" });
context.SaveChanges();

//Act
Expand Down Expand Up @@ -675,7 +675,7 @@ public void Import_users_when_existing_user_available_does_not_create_duplicate_
var existingEmailAddress = "existing.user.account@nice.org.uk";
var existingFirstName = "Phil";
var userService = new UsersService(context, _logger.Object, _providerManagementService.Object, _emailService.Object);
context.Users.Add(new DataModels.User() { EmailAddress = existingEmailAddress, FirstName = existingFirstName, LastName = "Connors" });
context.Users.Add(new DataModels.User() { EmailAddress = existingEmailAddress, FirstName = existingFirstName, LastName = "Connors", NameIdentifier = "auth|phil" });
context.Environments.Add(new DataModels.Environment() { EnvironmentId = 1, Name = "Test" });
context.Services.Add(new DataModels.Service() { ServiceId = 1, Name = "Service" });
context.Websites.Add(new DataModels.Website()
Expand Down Expand Up @@ -871,9 +871,9 @@ public void Get_users_and_jobs_for_an_organisation()
context.Organisations.Add(new DataModels.Organisation() { OrganisationId = organisationId, Name = "My Organisation" });
context.Organisations.Add(new DataModels.Organisation() { OrganisationId = 2, Name = "Another org" });

context.Users.Add(new DataModels.User() { UserId = 1, NameIdentifier = "auth|alice" });
context.Users.Add(new DataModels.User() { UserId = 2, NameIdentifier = "auth|bob" });
context.Users.Add(new DataModels.User() { UserId = 3, NameIdentifier = "auth|carol" });
context.Users.Add(new DataModels.User() { UserId = 1, NameIdentifier = "auth|alice", EmailAddress = "alice@nice.org.uk" });
context.Users.Add(new DataModels.User() { UserId = 2, NameIdentifier = "auth|bob", EmailAddress = "bob@nice.org.uk" });
context.Users.Add(new DataModels.User() { UserId = 3, NameIdentifier = "auth|carol", EmailAddress = "carol@nice.org.uk" });

context.Jobs.Add(new DataModels.Job() { UserId = 1, OrganisationId = 1 });
context.Jobs.Add(new DataModels.Job() { UserId = 2, OrganisationId = 1 });
Expand Down