mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-23 14:35:24 -07:00
Refactor CheckOwnRequests
This commit is contained in:
parent
c02770a348
commit
f20ff7f594
4 changed files with 15 additions and 15 deletions
|
@ -78,13 +78,19 @@ namespace Ombi.Core.Engine
|
||||||
return _dbTv;
|
return _dbTv;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async Task<RequestEngineResult> CheckOwnRequests(BaseRequest request) {
|
protected async Task<RequestEngineResult> CheckCanManageRequest(BaseRequest request) {
|
||||||
|
|
||||||
var isRequestedBySameUser = ( await GetUser() ).Equals(request.RequestedUser);
|
// Admins can always manage requests
|
||||||
var isAdmin = await IsInRole(OmbiRoles.PowerUser) || await IsInRole(OmbiRoles.Admin);
|
var isAdmin = await IsInRole(OmbiRoles.PowerUser) || await IsInRole(OmbiRoles.Admin);
|
||||||
|
if (isAdmin)
|
||||||
|
return new RequestEngineResult { Result = true };
|
||||||
|
|
||||||
|
// Users with 'ManageOwnRequests' can only manage their own requests
|
||||||
|
var isRequestedBySameUser = ( await GetUser() ).Equals(request.RequestedUser);
|
||||||
|
var canManageOwnRequests = await IsInRole(OmbiRoles.ManageOwnRequests);
|
||||||
|
if(canManageOwnRequests && isRequestedBySameUser)
|
||||||
|
return new RequestEngineResult { Result = true };
|
||||||
|
|
||||||
if (!isRequestedBySameUser && !isAdmin)
|
|
||||||
{
|
|
||||||
return new RequestEngineResult
|
return new RequestEngineResult
|
||||||
{
|
{
|
||||||
Result = false,
|
Result = false,
|
||||||
|
@ -92,12 +98,6 @@ namespace Ombi.Core.Engine
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return new RequestEngineResult
|
|
||||||
{
|
|
||||||
Result = true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public RequestCountModel RequestCount()
|
public RequestCountModel RequestCount()
|
||||||
{
|
{
|
||||||
var movieQuery = MovieRepository.GetAll();
|
var movieQuery = MovieRepository.GetAll();
|
||||||
|
|
|
@ -658,7 +658,7 @@ namespace Ombi.Core.Engine
|
||||||
{
|
{
|
||||||
var request = await MovieRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);
|
var request = await MovieRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);
|
||||||
|
|
||||||
var result = await CheckOwnRequests(request);
|
var result = await CheckCanManageRequest(request);
|
||||||
if (result.IsError)
|
if (result.IsError)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|
|
@ -408,7 +408,7 @@ namespace Ombi.Core.Engine
|
||||||
{
|
{
|
||||||
var request = await MusicRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);
|
var request = await MusicRepository.GetAll().FirstOrDefaultAsync(x => x.Id == requestId);
|
||||||
|
|
||||||
var result = await CheckOwnRequests(request);
|
var result = await CheckCanManageRequest(request);
|
||||||
if (result.IsError)
|
if (result.IsError)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|
|
@ -753,7 +753,7 @@ namespace Ombi.Core.Engine
|
||||||
{
|
{
|
||||||
var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == requestId);
|
var request = await TvRepository.GetChild().FirstOrDefaultAsync(x => x.Id == requestId);
|
||||||
|
|
||||||
var result = await CheckOwnRequests(request);
|
var result = await CheckCanManageRequest(request);
|
||||||
if (result.IsError)
|
if (result.IsError)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue