mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-30 03:28:28 -07:00
New role to enable users to remove their own requests
This commit is contained in:
parent
5e0f04a2f6
commit
0b2b3d2f30
7 changed files with 31 additions and 5 deletions
|
@ -14,5 +14,6 @@
|
||||||
public const string RequestMusic = nameof(RequestMusic);
|
public const string RequestMusic = nameof(RequestMusic);
|
||||||
public const string Disabled = nameof(Disabled);
|
public const string Disabled = nameof(Disabled);
|
||||||
public const string ReceivesNewsletter = nameof(ReceivesNewsletter);
|
public const string ReceivesNewsletter = nameof(ReceivesNewsletter);
|
||||||
|
public const string ManageOwnRequests = nameof(ManageOwnRequests);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -145,6 +145,16 @@ namespace Ombi.Store.Context
|
||||||
SaveChanges();
|
SaveChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var manageOwnRequestsRole = Roles.Where(x => x.Name == OmbiRoles.ManageOwnRequests);
|
||||||
|
if (!manageOwnRequestsRole.Any())
|
||||||
|
{
|
||||||
|
Roles.Add(new IdentityRole(OmbiRoles.ManageOwnRequests)
|
||||||
|
{
|
||||||
|
NormalizedName = OmbiRoles.ManageOwnRequests.ToUpper()
|
||||||
|
});
|
||||||
|
SaveChanges();
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure we have the API User
|
// Make sure we have the API User
|
||||||
var apiUserExists = Users.Any(x => x.UserName.Equals("Api", StringComparison.CurrentCultureIgnoreCase));
|
var apiUserExists = Users.Any(x => x.UserName.Equals("Api", StringComparison.CurrentCultureIgnoreCase));
|
||||||
if (!apiUserExists)
|
if (!apiUserExists)
|
||||||
|
|
14
src/Ombi/Attributes/UserAttribute.cs
Normal file
14
src/Ombi/Attributes/UserAttribute.cs
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Ombi.Helpers;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Ombi.Attributes
|
||||||
|
{
|
||||||
|
public class UserAttribute : AuthorizeAttribute
|
||||||
|
{
|
||||||
|
public UserAttribute()
|
||||||
|
{
|
||||||
|
Roles = "ManageOwnRequests";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -186,7 +186,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="isAdmin || isRequestUser(request)">
|
<div *ngIf="isAdmin || isRequestUser(request)">
|
||||||
<form id="removeBtn" class="col-md-6">
|
<form id="removeBtn">
|
||||||
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
||||||
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -240,6 +240,7 @@ namespace Ombi.Controllers
|
||||||
await CreateRole(OmbiRoles.RequestTv);
|
await CreateRole(OmbiRoles.RequestTv);
|
||||||
await CreateRole(OmbiRoles.Disabled);
|
await CreateRole(OmbiRoles.Disabled);
|
||||||
await CreateRole(OmbiRoles.ReceivesNewsletter);
|
await CreateRole(OmbiRoles.ReceivesNewsletter);
|
||||||
|
await CreateRole(OmbiRoles.ManageOwnRequests);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task CreateRole(string role)
|
private async Task CreateRole(string role)
|
||||||
|
|
|
@ -88,7 +88,7 @@ namespace Ombi.Controllers
|
||||||
/// <param name="requestId">The request identifier.</param>
|
/// <param name="requestId">The request identifier.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpDelete("{requestId:int}")]
|
[HttpDelete("{requestId:int}")]
|
||||||
[PowerUser]
|
[Authorize(Roles = "Admin,PowerUser,ManageOwnRequests")]
|
||||||
public async Task DeleteRequest(int requestId)
|
public async Task DeleteRequest(int requestId)
|
||||||
{
|
{
|
||||||
await _engine.RemoveAlbumRequest(requestId);
|
await _engine.RemoveAlbumRequest(requestId);
|
||||||
|
|
|
@ -95,7 +95,7 @@ namespace Ombi.Controllers
|
||||||
/// <param name="requestId">The request identifier.</param>
|
/// <param name="requestId">The request identifier.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpDelete("movie/{requestId:int}")]
|
[HttpDelete("movie/{requestId:int}")]
|
||||||
[PowerUser]
|
[Authorize(Roles = "Admin,PowerUser,ManageOwnRequests")]
|
||||||
public async Task DeleteRequest(int requestId)
|
public async Task DeleteRequest(int requestId)
|
||||||
{
|
{
|
||||||
await MovieRequestEngine.RemoveMovieRequest(requestId);
|
await MovieRequestEngine.RemoveMovieRequest(requestId);
|
||||||
|
@ -269,7 +269,7 @@ namespace Ombi.Controllers
|
||||||
/// <param name="requestId">The request identifier.</param>
|
/// <param name="requestId">The request identifier.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpDelete("tv/{requestId:int}")]
|
[HttpDelete("tv/{requestId:int}")]
|
||||||
[PowerUser]
|
[Authorize(Roles = "Admin,PowerUser,ManageOwnRequests")]
|
||||||
public async Task DeleteTvRequest(int requestId)
|
public async Task DeleteTvRequest(int requestId)
|
||||||
{
|
{
|
||||||
await TvRequestEngine.RemoveTvRequest(requestId);
|
await TvRequestEngine.RemoveTvRequest(requestId);
|
||||||
|
@ -380,7 +380,7 @@ namespace Ombi.Controllers
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="requestId">The model.</param>
|
/// <param name="requestId">The model.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[PowerUser]
|
[Authorize(Roles = "Admin,PowerUser,ManageOwnRequests")]
|
||||||
[HttpDelete("tv/child/{requestId:int}")]
|
[HttpDelete("tv/child/{requestId:int}")]
|
||||||
public async Task<bool> DeleteChildRequest(int requestId)
|
public async Task<bool> DeleteChildRequest(int requestId)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue