diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt index be6d7e314..3f3d2a723 100644 --- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt +++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETCore.approved.txt @@ -4356,7 +4356,8 @@ Octopus.Client.Model Octopus.Client.Model.Resource { .ctor() - Boolean IsComplete { get; set; } + Boolean IsPermissionsComplete { get; set; } + Boolean IsTeamsComplete { get; set; } Dictionary> SpacePermissions { get; set; } List SystemPermissions { get; set; } List Teams { get; set; } @@ -6027,6 +6028,7 @@ Octopus.Client.Repositories { Stream Export(Octopus.Client.Model.UserPermissionSetResource) Octopus.Client.Model.UserPermissionSetResource Get(Octopus.Client.Model.UserResource) + Octopus.Client.Model.UserPermissionSetResource GetConfiguration(Octopus.Client.Model.UserResource) } interface IUserRepository Octopus.Client.Repositories.IPaginate @@ -6607,6 +6609,7 @@ Octopus.Client.Repositories.Async { Task Export(Octopus.Client.Model.UserPermissionSetResource) Task Get(Octopus.Client.Model.UserResource) + Task GetConfiguration(Octopus.Client.Model.UserResource) } interface IUserRepository Octopus.Client.Repositories.Async.IPaginate diff --git a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt index 320cb42ac..5f99663ef 100644 --- a/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt +++ b/source/Octopus.Client.Tests/PublicSurfaceAreaFixture.ThePublicSurfaceAreaShouldNotRegress..NETFramework.approved.txt @@ -4377,7 +4377,8 @@ Octopus.Client.Model Octopus.Client.Model.Resource { .ctor() - Boolean IsComplete { get; set; } + Boolean IsPermissionsComplete { get; set; } + Boolean IsTeamsComplete { get; set; } Dictionary> SpacePermissions { get; set; } List SystemPermissions { get; set; } List Teams { get; set; } @@ -6049,6 +6050,7 @@ Octopus.Client.Repositories { Stream Export(Octopus.Client.Model.UserPermissionSetResource) Octopus.Client.Model.UserPermissionSetResource Get(Octopus.Client.Model.UserResource) + Octopus.Client.Model.UserPermissionSetResource GetConfiguration(Octopus.Client.Model.UserResource) } interface IUserRepository Octopus.Client.Repositories.IPaginate @@ -6629,6 +6631,7 @@ Octopus.Client.Repositories.Async { Task Export(Octopus.Client.Model.UserPermissionSetResource) Task Get(Octopus.Client.Model.UserResource) + Task GetConfiguration(Octopus.Client.Model.UserResource) } interface IUserRepository Octopus.Client.Repositories.Async.IPaginate diff --git a/source/Octopus.Client/Model/UserPermissionSetResource.cs b/source/Octopus.Client/Model/UserPermissionSetResource.cs index a2e538a83..7f773e353 100644 --- a/source/Octopus.Client/Model/UserPermissionSetResource.cs +++ b/source/Octopus.Client/Model/UserPermissionSetResource.cs @@ -30,9 +30,14 @@ public class UserPermissionSetResource : Resource /// public List Teams { get; set; } + /// + /// If the requesting user had sufficient access to see a complete view of the teams that may drive permissions + /// + public bool IsTeamsComplete { get; set; } + /// /// If the requesting user had sufficient access to see a complete view of the permissions /// - public bool IsComplete { get; set; } + public bool IsPermissionsComplete { get; set; } } } \ No newline at end of file diff --git a/source/Octopus.Client/Repositories/Async/UserPermissionsRepository.cs b/source/Octopus.Client/Repositories/Async/UserPermissionsRepository.cs index 1acb06fbd..3c5773dea 100644 --- a/source/Octopus.Client/Repositories/Async/UserPermissionsRepository.cs +++ b/source/Octopus.Client/Repositories/Async/UserPermissionsRepository.cs @@ -11,6 +11,7 @@ public interface IUserPermissionsRepository : ICanExtendSpaceContext { Task Get(UserResource user); + Task GetConfiguration(UserResource user); Task Export(UserPermissionSetResource userPermissions); } @@ -31,7 +32,13 @@ public async Task Get(UserResource user) if (user == null) throw new ArgumentNullException(nameof(user)); return await Client.Get(user.Link("Permissions"), GetAdditionalQueryParameters()).ConfigureAwait(false); } - + + public async Task GetConfiguration(UserResource user) + { + if (user == null) throw new ArgumentNullException(nameof(user)); + return await Client.Get(user.Link("PermissionsConfiguration"), GetAdditionalQueryParameters()).ConfigureAwait(false); + } + public async Task Export(UserPermissionSetResource userPermissions) { if (userPermissions == null) throw new ArgumentNullException(nameof(userPermissions)); diff --git a/source/Octopus.Client/Repositories/UserPermissionsRepository.cs b/source/Octopus.Client/Repositories/UserPermissionsRepository.cs index b709ebbf9..f6c8a14a9 100644 --- a/source/Octopus.Client/Repositories/UserPermissionsRepository.cs +++ b/source/Octopus.Client/Repositories/UserPermissionsRepository.cs @@ -10,6 +10,7 @@ public interface IUserPermissionsRepository : ICanExtendSpaceContext { UserPermissionSetResource Get(UserResource user); + UserPermissionSetResource GetConfiguration(UserResource user); Stream Export(UserPermissionSetResource userPermissions); } @@ -30,7 +31,13 @@ public UserPermissionSetResource Get(UserResource user) if (user == null) throw new ArgumentNullException(nameof(user)); return Client.Get(user.Link("Permissions"), AdditionalQueryParameters); } - + + public UserPermissionSetResource GetConfiguration(UserResource user) + { + if (user == null) throw new ArgumentNullException(nameof(user)); + return Client.Get(user.Link("PermissionsConfiguration"), AdditionalQueryParameters); + } + public Stream Export(UserPermissionSetResource userPermissions) { if (userPermissions == null) throw new ArgumentNullException(nameof(userPermissions));