feat : add phase A permissions to controller

master
Amir Hossein Khademi 2024-02-25 00:02:59 +03:30
parent a6ebce4b8f
commit d72bf848b5
15 changed files with 122 additions and 3 deletions

View File

@ -56,6 +56,7 @@
<ItemGroup>
<Using Include="Autofac" />
<Using Include="Autofac.Extensions.DependencyInjection" />
<Using Include="Brizco.Common.Models.Claims" />
<Using Include="Brizco.Common.Models.Entity" />
<Using Include="Brizco.Common.Models.Exception" />
<Using Include="Brizco.Common.Models.Mapper" />

View File

@ -1,4 +1,6 @@
namespace Brizco.Api.Controllers;
using Brizco.Common.Models.Claims;
namespace Brizco.Api.Controllers;
public class ActivityController : ICarterModule
{
@ -11,22 +13,27 @@ public class ActivityController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetActivities")
.RequireAuthorization(builder=>builder.RequireClaim(CustomClaimType.Permission,ApplicationPermission.ViewActivities, ApplicationPermission.ManageActivities))
.HasApiVersion(1.0);
group.MapGet("{id:guid}", GetAsync)
.WithDisplayName("GetActivity")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewActivities, ApplicationPermission.ManageActivities))
.HasApiVersion(1.0);
group.MapPost("done/{id:guid}", DoneActivityAsync)
.WithDisplayName("DoneActivity")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ChangeActivityStatus))
.HasApiVersion(1.0);
group.MapPost("complete", CompleteActivityAsync)
.WithDisplayName("DoneActivity")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ChangeActivityStatus))
.HasApiVersion(1.0);
group.MapPost("undone/{id:guid}", UnDoneActivityAsync)
.WithDisplayName("UnDoneActivity")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ChangeActivityStatus))
.HasApiVersion(1.0);
//group.MapPost("", Post)

View File

@ -11,19 +11,24 @@ public class ComplexController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllComplex")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewComplexes, ApplicationPermission.ManageComplexes))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneComplex")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewComplexes, ApplicationPermission.ManageComplexes))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageComplexes))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageComplexes))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageComplexes))
.HasApiVersion(1.0);
}

View File

@ -11,19 +11,24 @@ public class PositionController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllPositions")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewPositions,ApplicationPermission.ManagePositions))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetPosition")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewPositions, ApplicationPermission.ManagePositions))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManagePositions))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManagePositions))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManagePositions))
.HasApiVersion(1.0);
}

View File

@ -12,10 +12,12 @@ public class ReportController : ICarterModule
group.MapGet("task", GetTasksReportAsync)
.WithDisplayName("Get Tasks Report")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageReports))
.HasApiVersion(1.0);
group.MapGet("shift/plan/{shiftPLanId}", GetShiftPlanReportAsync)
.WithDisplayName("Get ShiftPlan Report")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageReports))
.HasApiVersion(1.0);
}

View File

@ -15,14 +15,17 @@ public class RoleController : ICarterModule
group.MapGet("/permission", GetPermissions)
.WithDisplayName("Permissions")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllRoles")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneRole")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoles))
.HasApiVersion(1.0);
//group.MapPost("", Post)

View File

@ -10,23 +10,29 @@ public class RoutineController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllRoutines")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoutines,ApplicationPermission.ViewRoutines))
.HasApiVersion(1.0);
group.MapGet("{id}/shift", GetShiftsAsync)
.WithDisplayName("GetRoutineShifts")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoutines, ApplicationPermission.ViewRoutines))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetRoutine")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoutines))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoutines))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoutines))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageRoutines))
.HasApiVersion(1.0);
}

View File

@ -11,19 +11,24 @@ public class SectionController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllSections")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageSections, ApplicationPermission.ViewSections))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetSection")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageSections, ApplicationPermission.ViewSections))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageSections))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageSections))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageSections))
.HasApiVersion(1.0);
}

View File

@ -12,19 +12,24 @@ public class ShiftController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllShift")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShifts, ApplicationPermission.ViewShifts))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneShift")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShifts, ApplicationPermission.ViewShifts))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShifts))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShifts))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShifts))
.HasApiVersion(1.0);
}

View File

@ -13,20 +13,25 @@ public class ShiftPlanController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetShiftPlans")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShiftPlans, ApplicationPermission.ViewShiftPlans))
.HasApiVersion(1.0);
group.MapGet("{id:guid}", GetAsync)
.WithDisplayName("GetShiftPlan")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShiftPlans, ApplicationPermission.ViewShiftPlans))
.HasApiVersion(1.0);
group.MapPost("{id:guid}/complete", CompletePlanAsync)
.WithDisplayName("DoneActivity")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShiftPlans))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShiftPlans))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageShiftPlans))
.HasApiVersion(1.0);
group.MapDelete("{id:guid}", Delete)

View File

@ -13,19 +13,24 @@ public class TaskController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllTask")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks,ApplicationPermission.ViewTasks))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneTask")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks,ApplicationPermission.ViewTasks))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks))
.HasApiVersion(1.0);
}

View File

@ -13,10 +13,12 @@ public class UserController : ICarterModule
group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllUser")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewUsers,ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneUser")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ViewUsers, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapGet("/profile", GetUserProfileAsync)
@ -25,15 +27,19 @@ public class UserController : ICarterModule
group.MapPost("/role/change/{roleId}", ChangeUserRoleAsync)
.WithDisplayName("GetUserProfile")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapPost("", Post)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapPut("", Put)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
group.MapDelete("{id}", Delete)
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageUsers))
.HasApiVersion(1.0);
}

View File

@ -83,6 +83,13 @@ public static class ApplicationClaims
Title = "دسترسی کامل به فعالیت ها",
Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما"
};
public static ClaimDto ChangeActivityStatus { get; } = new ClaimDto
{
Type = CustomClaimType.Permission,
Value = ApplicationPermission.ChangeActivityStatus,
Title = "تغییر وضعیت به فعالیت ",
Detail = "دسترسی به افزودن و مدیریت فعالیت ها فروشگاه شما"
};
public static ClaimDto ViewActivities { get; } = new ClaimDto
{
Type = CustomClaimType.Permission,
@ -155,17 +162,49 @@ public static class ApplicationClaims
Title = "مشاهده تنظیمات ها",
Detail = "دسترسی به مشاهده تنظیمات ها فروشگاه شما"
};
public static ClaimDto ManageReports { get; } = new ClaimDto
{
Type = CustomClaimType.Permission,
Value = ApplicationPermission.ManageReports,
Title = "مشاهده گزارشات",
Detail = "دسترسی به مشاهده گزارشات"
};
public static ClaimDto ManageRoles { get; } = new ClaimDto
{
Type = CustomClaimType.Permission,
Value = ApplicationPermission.ManageRoles,
Title = "مشاهده گزارشات",
Detail = "دسترسی به مشاهده گزارشات"
};
public static ClaimDto ManageUsers { get; } = new ClaimDto
{
Type = CustomClaimType.Permission,
Value = ApplicationPermission.ManageUsers,
Title = "تغییر کاربران",
Detail = "دسترسی و تغییر در کاربران"
};
public static ClaimDto ViewUsers { get; } = new ClaimDto
{
Type = CustomClaimType.Permission,
Value = ApplicationPermission.ViewUsers,
Title = "مشاهده کاربران",
Detail = "دسترسی و تغییر در کاربران"
};
public static List<ClaimDto> AllClaimDtos = new List<ClaimDto>
{
ManageActivities,
ViewTasks,
ManageTasks,
ManageReports,
ManageRoles,
ManageShiftPlans,
ViewShifts,
ManageShifts,
ManageUsers,
ViewUsers
ViewComplexes,
ManageComplexes,
@ -188,6 +227,11 @@ public static class ApplicationClaims
{
ManageStaffs.GetClaim,
ViewStaffs.GetClaim,
ManageReports.GetClaim,
ManageRoles.GetClaim,
ViewUsers.GetClaim,
ManageUsers.GetClaim,
ViewTasks.GetClaim,
ManageTasks.GetClaim,
@ -219,10 +263,14 @@ public static class ApplicationClaims
{
ManageStaffs.GetClaim,
ViewStaffs.GetClaim,
ManageReports.GetClaim,
ManageActivities.GetClaim,
ViewActivities.GetClaim,
ViewUsers.GetClaim,
ManageUsers.GetClaim,
ViewTasks.GetClaim,
ManageTasks.GetClaim,
@ -264,13 +312,18 @@ public static class ApplicationClaims
ViewSections.GetClaim,
ViewDashboard.GetClaim,
ViewUsers.GetClaim,
ViewComplexSettings.GetClaim
};
public static List<Claim> SuperVisorClaims = new List<Claim>
{
ManageActivities.GetClaim,
ChangeActivityStatus.GetClaim,
ViewActivities.GetClaim,
ManageReports.GetClaim,
ViewTasks.GetClaim,
ManageTasks.GetClaim,
@ -286,7 +339,7 @@ public static class ApplicationClaims
public static List<Claim> StaffClaims = new List<Claim>
{
ManageActivities.GetClaim,
ChangeActivityStatus.GetClaim,
ViewActivities.GetClaim,
ViewTasks.GetClaim,

View File

@ -1,6 +1,12 @@
namespace Brizco.Common.Models.Claims;
public static class ApplicationPermission
{
public const string ManageReports = nameof(ManageReports);
public const string ManageRoles = nameof(ManageRoles);
public const string ManageUsers = nameof(ManageUsers);
public const string ViewUsers = nameof(ViewUsers);
public const string ManageComplexes = nameof(ManageComplexes);
public const string ViewComplexes = nameof(ViewComplexes);
@ -18,6 +24,7 @@ public static class ApplicationPermission
public const string ViewTasks = nameof(ViewTasks);
public const string ManageActivities = nameof(ManageActivities);
public const string ChangeActivityStatus = nameof(ChangeActivityStatus);
public const string ViewActivities = nameof(ViewActivities);
public const string ManageRoutines = nameof(ManageRoutines);

View File

@ -189,6 +189,10 @@ public class TaskReportCommandHandler : IRequestHandler<TaskReportCommand , byte
style.WrapText = true;
style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Gold.Index;
style.FillPattern = FillPattern.SolidForeground;
style.BorderTop = BorderStyle.Dashed;
style.TopBorderColor = NPOI.HSSF.Util.HSSFColor.BlueGrey.Index;
style.SetFont(font);
if (lastRow > startRow)
{