-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathGrantApplicationPermissionDefinitionProvider.cs
More file actions
164 lines (136 loc) · 11.4 KB
/
GrantApplicationPermissionDefinitionProvider.cs
File metadata and controls
164 lines (136 loc) · 11.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
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
{
public class GrantApplicationPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var grantApplicationPermissionsGroup = context.AddGroup(GrantApplicationPermissions.GroupName, L("Permission:GrantApplicationManagement"));
// Dashboard
var dashboardPermissions = grantApplicationPermissionsGroup.AddPermission(
GrantApplicationPermissions.Dashboard.Default,
L("Permission:GrantApplicationManagement.Dashboard.Default"));
var viewDashboard = dashboardPermissions.AddChild(
GrantApplicationPermissions.Dashboard.ViewDashboard,
L("Permission:GrantApplicationManagement.Dashboard.ViewDashboard"));
viewDashboard.AddChild(
GrantApplicationPermissions.Dashboard.ApplicationStatusCount,
L("Permission:GrantApplicationManagement.Dashboard.ApplicationStatusCount"));
viewDashboard.AddChild(
GrantApplicationPermissions.Dashboard.EconomicRegionCount,
L("Permission:GrantApplicationManagement.Dashboard.EconomicRegionCount"));
viewDashboard.AddChild(
GrantApplicationPermissions.Dashboard.ApplicationTagsCount,
L("Permission:GrantApplicationManagement.Dashboard.ApplicationTagsCount"));
viewDashboard.AddChild(
GrantApplicationPermissions.Dashboard.ApplicationAssigneeCount,
L("Permission:GrantApplicationManagement.Dashboard.ApplicationAssigneeCount"));
viewDashboard.AddChild(
GrantApplicationPermissions.Dashboard.RequestedAmountPerSubsector,
L("Permission:GrantApplicationManagement.Dashboard.RequestedAmountPerSubsector"));
viewDashboard.AddChild(
GrantApplicationPermissions.Dashboard.RequestApprovedCount,
L("Permission:GrantApplicationManagement.Dashboard.RequestApprovedCount"));
// Application
grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.Applications.Default, L("Permission:GrantApplicationManagement.Applications.Default"));
// Applicant
var applicatPermissions = grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.Applicants.Default, L("Permission:GrantApplicationManagement.Applicants.Default"));
applicatPermissions.AddChild(GrantApplicationPermissions.Applicants.Edit, L("Permission:GrantApplicationManagement.Applicants.Edit"));
applicatPermissions.AddChild(GrantApplicationPermissions.Applicants.AssignApplicant, L("Permission:GrantApplicationManagement.Applicants.AssignApplicant"));
// Assignment
var assignmentPermissions = grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.Assignments.Default, L("Permission:GrantApplicationManagement.Assignments.Default"));
assignmentPermissions.AddChild(GrantApplicationPermissions.Assignments.AssignInitial, L("Permission:GrantApplicationManagement.Assignments.AssignInitial"));
// Review
var reviewPermissions = grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.Reviews.Default, L("Permission:GrantApplicationManagement.Reviews.Default"));
reviewPermissions.AddChild(GrantApplicationPermissions.Reviews.StartInitial, L("Permission:GrantApplicationManagement.Reviews.StartInitial"));
reviewPermissions.AddChild(GrantApplicationPermissions.Reviews.CompleteInitial, L("Permission:GrantApplicationManagement.Reviews.CompleteInitial"));
// 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
var appCommentPermissions = grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.Comments.Default, L("Permission:GrantApplicationManagement.Comments.Default"));
appCommentPermissions.AddChild(GrantApplicationPermissions.Comments.Add, L("Permission:GrantApplicationManagement.Comments.Add"));
//-- REVIEW & ASSESSMENT PERMISSIONS
grantApplicationPermissionsGroup.AddApplication_ReviewAndAssessment_Permissions();
// Applicant Info
var applicantInfoPermissions = grantApplicationPermissionsGroup.AddPermission(GrantApplicationPermissions.ApplicantInfo.Default, L($"Permission:{GrantApplicationPermissions.ApplicantInfo.Default}"));
applicantInfoPermissions.AddChild(GrantApplicationPermissions.ApplicantInfo.Update, L($"Permission:{GrantApplicationPermissions.ApplicantInfo.Update}"));
// Project Info
grantApplicationPermissionsGroup.AddApplication_ProjectInfo_Permissions();
var settingManagement = context.GetGroup(SettingManagementPermissions.GroupName);
settingManagement.AddPermission(UnitySettingManagementPermissions.UserInterface, L("Permission:UnitySettingManagementPermissions.UserInterface"));
settingManagement.AddPermission(UnitySettingManagementPermissions.BackgroundJobSettings, L("Permission:UnitySettingManagementPermissions.BackgroundJobs"));
// Settings - Tag Management
var tagManagement = settingManagement.AddPermission(UnitySelector.SettingManagement.Tags.Default, L(UnitySelector.SettingManagement.Tags.Default));
tagManagement.AddChild(UnitySelector.SettingManagement.Tags.Update, L(UnitySelector.SettingManagement.Tags.Update));
tagManagement.AddChild(UnitySelector.SettingManagement.Tags.Delete, L(UnitySelector.SettingManagement.Tags.Delete));
var emailingPermission = context.GetPermissionOrNull(SettingManagementPermissions.Emailing);
if (emailingPermission != null)
{
emailingPermission.IsEnabled = false;
}
var emailingTestPermission = context.GetPermissionOrNull(SettingManagementPermissions.EmailingTest);
if (emailingTestPermission != null)
{
emailingTestPermission.IsEnabled = false;
}
var timezonePermission = context.GetPermissionOrNull(SettingManagementPermissions.TimeZone);
if (timezonePermission != null)
{
timezonePermission.IsEnabled = false;
}
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<GrantManagerResource>(name);
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Major Code Smell", "S125:Sections of code should not be commented out", Justification = "Configuration Code")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Minor Code Smell", "S1481:Unused local variables should be removed", Justification = "Configuration Code")]
public static class PermissionGroupDefinitionExtensions
{
public static void AddApplication_ReviewAndAssessment_Permissions(this PermissionGroupDefinition grantApplicationPermissionsGroup)
{
#region REVIEW & ASSESSMENT GRANULAR PERMISSIONS
var upx_Review = grantApplicationPermissionsGroup.AddPermission(UnitySelector.Review.Default, L(UnitySelector.Review.Default));
var upx_Review_Approval = upx_Review.AddUnityChild(UnitySelector.Review.Approval.Default);
var upx_Review_Approval_Update = upx_Review_Approval.AddUnityChild(UnitySelector.Review.Approval.Update.Default);
var upx_Review_Approval_UpdateFinalStateFields = upx_Review_Approval_Update.AddUnityChild(UnitySelector.Review.Approval.Update.UpdateFinalStateFields);
var upx_Review_AssessmentResults = upx_Review.AddUnityChild(UnitySelector.Review.AssessmentResults.Default);
var upx_Review_AssessmentResults_Update = upx_Review_AssessmentResults.AddUnityChild(UnitySelector.Review.AssessmentResults.Update.Default);
var upx_Review_AssessmentResults_UpdateFinalStateFields = upx_Review_AssessmentResults_Update.AddUnityChild(UnitySelector.Review.AssessmentResults.Update.UpdateFinalStateFields);
var upx_Review_AssessmentReviewList = upx_Review.AddUnityChild(UnitySelector.Review.AssessmentReviewList.Default);
var upx_Review_AssessmentReviewList_Create = upx_Review_AssessmentReviewList.AddUnityChild(UnitySelector.Review.AssessmentReviewList.Create);
var upx_Review_AssessmentReviewList_SendBack = upx_Review_AssessmentReviewList.AddUnityChild(UnitySelector.Review.AssessmentReviewList.Update.SendBack);
var upx_Review_AssessmentReviewList_Complete = upx_Review_AssessmentReviewList.AddUnityChild(UnitySelector.Review.AssessmentReviewList.Update.Complete);
#endregion
}
public static void AddApplication_ProjectInfo_Permissions(this PermissionGroupDefinition grantApplicationPermissionsGroup)
{
#region PROJECT INFO GRANULAR PERMISSIONS
var upx_Project = grantApplicationPermissionsGroup.AddPermission(UnitySelector.Project.Default, L(UnitySelector.Project.Default));
var upx_Project_Summary = upx_Project.AddUnityChild(UnitySelector.Project.Summary.Default);
var upx_Project_Summary_Update = upx_Project_Summary.AddUnityChild(UnitySelector.Project.Summary.Update.Default);
var upx_Project_Summary_UpdateFinalStateFields = upx_Project_Summary_Update.AddUnityChild(UnitySelector.Project.Summary.Update.UpdateFinalStateFields);
var upx_Project_Location = upx_Project.AddUnityChild(UnitySelector.Project.Location.Default);
var upx_Project_Location_Update = upx_Project_Location.AddUnityChild(UnitySelector.Project.Location.Update.Default);
var upx_Project_Location_UpdateFinalStateFields = upx_Project_Location_Update.AddUnityChild(UnitySelector.Project.Location.Update.UpdateFinalStateFields);
#endregion
}
public static PermissionDefinition AddUnityChild(this PermissionDefinition parent, string name)
{
return parent.AddChild(name, LocalizableString.Create<GrantManagerResource>(name));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<GrantManagerResource>(name);
}
}
}