diff --git a/src/Core/Context/CurrentContext.cs b/src/Core/Context/CurrentContext.cs index 6033224e24..b9804a13a8 100644 --- a/src/Core/Context/CurrentContext.cs +++ b/src/Core/Context/CurrentContext.cs @@ -252,6 +252,12 @@ namespace Bit.Core.Context return OrganizationAdmin(orgId) || (Organizations?.Any(o => o.Id == orgId && (o.Permissions?.ManageUsers ?? false)) ?? false); } + + public bool ManageResetPassword(Guid orgId) + { + return OrganizationAdmin(orgId) || (Organizations?.Any(o => o.Id == orgId + && (o.Permissions?.ManageResetPassword ?? false)) ?? false); + } public async Task> OrganizationMembershipAsync( IOrganizationUserRepository organizationUserRepository, Guid userId) @@ -294,7 +300,8 @@ namespace Bit.Core.Context ManageGroups = hasClaim("managegroups"), ManagePolicies = hasClaim("managepolicies"), ManageSso = hasClaim("managesso"), - ManageUsers = hasClaim("manageusers") + ManageUsers = hasClaim("manageusers"), + ManageResetPassword = hasClaim("manageresetpassword") }; } } diff --git a/src/Core/Context/ICurrentContext.cs b/src/Core/Context/ICurrentContext.cs index f9e10b1624..ad56476863 100644 --- a/src/Core/Context/ICurrentContext.cs +++ b/src/Core/Context/ICurrentContext.cs @@ -43,6 +43,7 @@ namespace Bit.Core.Context bool ManagePolicies(Guid orgId); bool ManageSso(Guid orgId); bool ManageUsers(Guid orgId); + bool ManageResetPassword(Guid orgId); Task> OrganizationMembershipAsync( IOrganizationUserRepository organizationUserRepository, Guid userId); diff --git a/src/Core/Models/Data/Permissions.cs b/src/Core/Models/Data/Permissions.cs index 91e0ffae53..b7eb9bb10e 100644 --- a/src/Core/Models/Data/Permissions.cs +++ b/src/Core/Models/Data/Permissions.cs @@ -12,5 +12,6 @@ namespace Bit.Core.Models.Data public bool ManagePolicies { get; set; } public bool ManageSso { get; set; } public bool ManageUsers { get; set; } + public bool ManageResetPassword { get; set; } } } diff --git a/src/Core/Utilities/CoreHelpers.cs b/src/Core/Utilities/CoreHelpers.cs index 17cfd3775a..d5843f517d 100644 --- a/src/Core/Utilities/CoreHelpers.cs +++ b/src/Core/Utilities/CoreHelpers.cs @@ -788,6 +788,11 @@ namespace Bit.Core.Utilities { claims.Add(new KeyValuePair("manageusers", org.Id.ToString())); } + + if (org.Permissions.ManageResetPassword) + { + claims.Add(new KeyValuePair("manageresetpassword", org.Id.ToString())); + } } break; default: