Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
using Unity.GrantManager.Localization;
using System.Diagnostics.Metrics;
using Unity.GrantManager.Localization;
using Unity.Modules.Shared;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
using Volo.Abp.SettingManagement;
using static Unity.Modules.Shared.UnitySelector.Review;

namespace Unity.GrantManager.Permissions.GrantApplications
{
Expand Down Expand Up @@ -58,6 +60,7 @@ public override void Define(IPermissionDefinitionContext context)
// Approval
var approvalPermissions = grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.Approvals.Default, L("Permission:GrantApplicationManagement.Approvals.Default"));
approvalPermissions.AddChild(GrantApplicationPermissions.Approvals.Complete, L("Permission:GrantApplicationManagement.Approvals.Complete"));
approvalPermissions.AddChild(GrantApplicationPermissions.Approvals.DeferAfterApproval, L("Permission:GrantApplicationManagement.Approvals.DeferAfterApproval"));
approvalPermissions.AddChild(GrantApplicationPermissions.Approvals.BulkApplicationApproval, L("Permission:GrantApplicationManagement.Approvals.BulkApplicationApproval"));

// Comments
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
"Permission:GrantApplicationManagement.Assessments.Complete": "Complete Assessment",
"Permission:GrantApplicationManagement.Approvals.Default": "Approvals",
"Permission:GrantApplicationManagement.Approvals.Complete": "Complete Approval",
"Permission:GrantApplicationManagement.Approvals.DeferAfterApproval": "Defer After Approval",
"Permission:GrantApplicationManagement.Comments.Default": "Comments",
"Permission:GrantApplicationManagement.Comments.Add": "Add Application Comment",
"Permission:GrantApplicationManagement.Organizations.Default": "Organizations",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public static class Approvals
public const string Default = GroupName + ".Approvals";
public const string Complete = Default + ".Complete";
public const string BulkApplicationApproval = Default + ".BulkApplicationApproval";
public const string DeferAfterApproval = Default + ".DeferAfterApproval";
}

public static class Comments
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
using System.Threading.Tasks;
using Unity.GrantManager.GrantApplications;
using Unity.GrantManager.Identity;
using Unity.GrantManager.Permissions;
using Unity.GrantManager.Workflow;
using Volo.Abp;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Domain.Services;
using Volo.Abp.Uow;

Expand All @@ -18,22 +20,25 @@ public class ApplicationManager : DomainService, IApplicationManager
private readonly IApplicationAssignmentRepository _applicationAssignmentRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly IPersonRepository _personRepository;
private readonly IPermissionChecker _permissionChecker;

public ApplicationManager(
IApplicationRepository applicationRepository,
IApplicationStatusRepository applicationStatus,
IApplicationAssignmentRepository applicationAssignmentRepository,
IUnitOfWorkManager unitOfWorkManager,
IPersonRepository personRepository)
IPersonRepository personRepository,
IPermissionChecker permissionChecker)
{
_applicationRepository = applicationRepository;
_applicationStatusRepository = applicationStatus;
_applicationAssignmentRepository = applicationAssignmentRepository;
_unitOfWorkManager = unitOfWorkManager;
_personRepository = personRepository;
_permissionChecker = permissionChecker;
}

public static void ConfigureWorkflow(StateMachine<GrantApplicationState, GrantApplicationAction> stateMachine, bool isDirectApproval = false)
public void ConfigureWorkflow(StateMachine<GrantApplicationState, GrantApplicationAction> stateMachine, bool isDirectApproval = false)
{
// TODO: ENSURE APPLICATION STATE MACHINE MATCHES WORKFLOW IN AB#8375
stateMachine.Configure(GrantApplicationState.OPEN)
Expand Down Expand Up @@ -126,13 +131,19 @@ public static void ConfigureWorkflow(StateMachine<GrantApplicationState, GrantAp

stateMachine.Configure(GrantApplicationState.GRANT_APPROVED)
.Permit(GrantApplicationAction.Withdraw, GrantApplicationState.WITHDRAWN)
.Permit(GrantApplicationAction.Close, GrantApplicationState.CLOSED);

.Permit(GrantApplicationAction.Close, GrantApplicationState.CLOSED)
.PermitIf(GrantApplicationAction.Defer, GrantApplicationState.DEFER, () => HasPermission(GrantApplicationPermissions.Approvals.DeferAfterApproval));



stateMachine.Configure(GrantApplicationState.GRANT_NOT_APPROVED)
.Permit(GrantApplicationAction.Close, GrantApplicationState.CLOSED)
.PermitIf(GrantApplicationAction.Approve, GrantApplicationState.GRANT_APPROVED, () => isDirectApproval);
}
private bool HasPermission(string permission)
{
return _permissionChecker.IsGrantedAsync(permission).Result;
}

public async Task<List<ApplicationActionResultItem>> GetActions(Guid applicationId)
{
Expand Down Expand Up @@ -367,4 +378,6 @@ await _applicationAssignmentRepository.InsertAsync(new ApplicationAssignment()
}
await uow.SaveChangesAsync();
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ await _permissionDataSeeder.SeedAsync(RolePermissionValueProvider.ProviderName,
GrantManagerPermissions.Organizations.Default,
GrantManagerPermissions.Organizations.ManageProfiles,
GrantApplicationPermissions.Approvals.BulkApplicationApproval,
GrantApplicationPermissions.Approvals.DeferAfterApproval,
UnitySelector.SettingManagement.Tags.Default,
UnitySelector.SettingManagement.Tags.Update,
UnitySelector.SettingManagement.Tags.Delete,
Expand All @@ -159,6 +160,7 @@ await _permissionDataSeeder.SeedAsync(RolePermissionValueProvider.ProviderName,
GrantManagerPermissions.Default,
GrantApplicationPermissions.Applications.Default,
GrantApplicationPermissions.Approvals.Complete,
GrantApplicationPermissions.Approvals.DeferAfterApproval,
GrantApplicationPermissions.Comments.Add,

.. ReviewAndAssessment_CommonPermissions,
Expand Down