mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-23 14:35:24 -07:00
Refactor CheckCanManageRequest
This commit is contained in:
parent
d7a07bf9d4
commit
40e51c84dc
1 changed files with 17 additions and 14 deletions
|
@ -79,26 +79,29 @@ namespace Ombi.Core.Engine
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async Task<RequestEngineResult> CheckCanManageRequest(BaseRequest request) {
|
protected async Task<RequestEngineResult> CheckCanManageRequest(BaseRequest request) {
|
||||||
|
var errorResult = new RequestEngineResult {
|
||||||
|
Result = false,
|
||||||
|
ErrorCode = ErrorCode.NoPermissions
|
||||||
|
};
|
||||||
|
var successResult = new RequestEngineResult { Result = true };
|
||||||
|
|
||||||
// Admins can always manage requests
|
// 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) {
|
if (isAdmin) {
|
||||||
return new RequestEngineResult { Result = true };
|
return successResult;
|
||||||
}
|
|
||||||
// Users with 'ManageOwnRequests' can only manage their own requests
|
|
||||||
var canManageOwnRequests = await IsInRole(OmbiRoles.ManageOwnRequests);
|
|
||||||
if (canManageOwnRequests) {
|
|
||||||
var isRequestedBySameUser = ( await GetUser() ).Id == request.RequestedUser?.Id;
|
|
||||||
if (isRequestedBySameUser) {
|
|
||||||
return new RequestEngineResult { Result = true };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new RequestEngineResult
|
// Users with 'ManageOwnRequests' can only manage their own requests
|
||||||
{
|
var canManageOwnRequests = await IsInRole(OmbiRoles.ManageOwnRequests);
|
||||||
Result = false,
|
if (!canManageOwnRequests) {
|
||||||
ErrorCode = ErrorCode.NoPermissions
|
return errorResult;
|
||||||
};
|
}
|
||||||
|
var isRequestedBySameUser = ( await GetUser() ).Id == request.RequestedUser?.Id;
|
||||||
|
if (isRequestedBySameUser) {
|
||||||
|
return successResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
return errorResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestCountModel RequestCount()
|
public RequestCountModel RequestCount()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue