Add CanDeleteUser policy

This commit is contained in:
Umar Bolatov 2021-03-09 18:21:33 -08:00
parent 37f7c4e0f9
commit 907ae760e0
No known key found for this signature in database
GPG key ID: 2C1F9AEB371D2A28
3 changed files with 4 additions and 1 deletions

View file

@ -24,6 +24,7 @@ namespace BTCPayServer.Client
public const string CanManageNotificationsForUser = "btcpay.user.canmanagenotificationsforuser"; public const string CanManageNotificationsForUser = "btcpay.user.canmanagenotificationsforuser";
public const string CanViewNotificationsForUser = "btcpay.user.canviewnotificationsforuser"; public const string CanViewNotificationsForUser = "btcpay.user.canviewnotificationsforuser";
public const string CanCreateUser = "btcpay.server.cancreateuser"; public const string CanCreateUser = "btcpay.server.cancreateuser";
public const string CanDeleteUser = "btcpay.server.candeleteuser";
public const string CanManagePullPayments = "btcpay.store.canmanagepullpayments"; public const string CanManagePullPayments = "btcpay.store.canmanagepullpayments";
public const string Unrestricted = "unrestricted"; public const string Unrestricted = "unrestricted";
public static IEnumerable<string> AllPolicies public static IEnumerable<string> AllPolicies
@ -41,6 +42,7 @@ namespace BTCPayServer.Client
yield return CanModifyProfile; yield return CanModifyProfile;
yield return CanViewProfile; yield return CanViewProfile;
yield return CanCreateUser; yield return CanCreateUser;
yield return CanDeleteUser;
yield return CanManageNotificationsForUser; yield return CanManageNotificationsForUser;
yield return CanViewNotificationsForUser; yield return CanViewNotificationsForUser;
yield return Unrestricted; yield return Unrestricted;

View file

@ -177,7 +177,7 @@ namespace BTCPayServer.Controllers.GreenField
} }
[HttpDelete("~/api/v1/users/{userId}")] [HttpDelete("~/api/v1/users/{userId}")]
[Authorize(Policy = Policies.CanCreateUser, AuthenticationSchemes = AuthenticationSchemes.GreenfieldAPIKeys)] [Authorize(Policy = Policies.CanDeleteUser, AuthenticationSchemes = AuthenticationSchemes.GreenfieldAPIKeys)]
public async Task<ActionResult<ApplicationUserData>> DeleteUser(string userId) public async Task<ActionResult<ApplicationUserData>> DeleteUser(string userId)
{ {
var isAdmin = await IsAdmin(); var isAdmin = await IsAdmin();

View file

@ -470,6 +470,7 @@ namespace BTCPayServer.Controllers
{ {
{BTCPayServer.Client.Policies.Unrestricted, ("Unrestricted access", "The app will have unrestricted access to your account.")}, {BTCPayServer.Client.Policies.Unrestricted, ("Unrestricted access", "The app will have unrestricted access to your account.")},
{BTCPayServer.Client.Policies.CanCreateUser, ("Create new users", "The app will be able to create new users on this server.")}, {BTCPayServer.Client.Policies.CanCreateUser, ("Create new users", "The app will be able to create new users on this server.")},
{BTCPayServer.Client.Policies.CanDeleteUser, ("Delete users", "The app will be able to delete users on this server.")},
{BTCPayServer.Client.Policies.CanModifyStoreSettings, ("Modify your stores", "The app will be able to view, modify, delete and create new invoices on all your stores.")}, {BTCPayServer.Client.Policies.CanModifyStoreSettings, ("Modify your stores", "The app will be able to view, modify, delete and create new invoices on all your stores.")},
{$"{BTCPayServer.Client.Policies.CanModifyStoreSettings}:", ("Manage selected stores", "The app will be able to view, modify, delete and create new invoices on the selected stores.")}, {$"{BTCPayServer.Client.Policies.CanModifyStoreSettings}:", ("Manage selected stores", "The app will be able to view, modify, delete and create new invoices on the selected stores.")},
{BTCPayServer.Client.Policies.CanModifyStoreWebhooks, ("Modify stores webhooks", "The app will modify the webhooks of all your stores.")}, {BTCPayServer.Client.Policies.CanModifyStoreWebhooks, ("Modify stores webhooks", "The app will modify the webhooks of all your stores.")},