Skip to content

Commit d756b3b

Browse files
committed
Add orders permissions and update user permission seeding
Introduced new permissions for managing orders (View, Create, Edit, Delete) and updated seeders to reflect these changes. Added a UserPermissionUpdateSeeder to ensure user claims are configured accurately. Seeders for admin, manager, and normal users were adjusted with revised email defaults and updated permission sets.
1 parent a119545 commit d756b3b

File tree

8 files changed

+314
-29
lines changed

8 files changed

+314
-29
lines changed

Constants/Permissions.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ public static class ProductCategories
4343
public const string Edit = "Permissions.ProductCategories.Edit";
4444
public const string Delete = "Permissions.ProductCategories.Delete";
4545
}
46+
47+
public static class Orders
48+
{
49+
public const string View = "Permissions.Orders.View";
50+
public const string Create = "Permissions.Orders.Create";
51+
public const string Edit = "Permissions.Orders.Edit";
52+
public const string Delete = "Permissions.Orders.Delete";
53+
}
4654

4755
// Helper method to get all permissions
4856
public static IEnumerable<string> GetAllPermissions()

Data/Seeders/AdminUserSeeder.cs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static async Task SeedAdminUserAsync(IServiceProvider serviceProvider)
1515
var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>();
1616

1717
// Get admin user details from configuration
18-
var adminEmail = configuration["AdminUser:Email"] ?? "admin@example.com";
18+
var adminEmail = configuration["AdminUser:Email"] ?? "admin@adminhub.com";
1919
var adminUserName = configuration["AdminUser:UserName"] ?? "admin";
2020
var adminPassword = configuration["AdminUser:Password"] ?? "Admin@Password123!"; // Should be in secrets in production
2121

@@ -40,7 +40,7 @@ public static async Task SeedAdminUserAsync(IServiceProvider serviceProvider)
4040
{
4141
logger.LogInformation($"Admin user created successfully");
4242

43-
// Add to Admin role
43+
// Add to the Admin role
4444
await userManager.AddToRoleAsync(adminUser, RoleSeeder.AdminRole);
4545

4646
// Add all admin permissions
@@ -50,10 +50,31 @@ public static async Task SeedAdminUserAsync(IServiceProvider serviceProvider)
5050
new Claim(CustomClaimTypes.Permission, Permissions.Users.Create),
5151
new Claim(CustomClaimTypes.Permission, Permissions.Users.Edit),
5252
new Claim(CustomClaimTypes.Permission, Permissions.Users.Delete),
53+
5354
new Claim(CustomClaimTypes.Permission, Permissions.Roles.View),
5455
new Claim(CustomClaimTypes.Permission, Permissions.Roles.Create),
5556
new Claim(CustomClaimTypes.Permission, Permissions.Roles.Edit),
5657
new Claim(CustomClaimTypes.Permission, Permissions.Roles.Delete),
58+
59+
new Claim(CustomClaimTypes.Permission, Permissions.Projects.View),
60+
new Claim(CustomClaimTypes.Permission, Permissions.Projects.Create),
61+
new Claim(CustomClaimTypes.Permission, Permissions.Projects.Edit),
62+
new Claim(CustomClaimTypes.Permission, Permissions.Projects.Delete),
63+
64+
new Claim(CustomClaimTypes.Permission, Permissions.Products.View),
65+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Create),
66+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Edit),
67+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Delete),
68+
69+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.View),
70+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Create),
71+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Edit),
72+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Delete),
73+
74+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.View),
75+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Create),
76+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Edit),
77+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Delete),
5778
};
5879

5980
await userManager.AddClaimsAsync(adminUser, adminPermissions);

Data/Seeders/ManagerUserSeeder.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static async Task SeedManagerUserAsync(IServiceProvider serviceProvider)
1515
var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>();
1616

1717
// Get manager user details from configuration
18-
var managerEmail = configuration["ManagerUser:Email"] ?? "manager@example.com";
18+
var managerEmail = configuration["ManagerUser:Email"] ?? "manager@adminhub.com";
1919
var managerUserName = configuration["ManagerUser:UserName"] ?? "manager_user";
2020
var managerPassword = configuration["ManagerUser:Password"] ?? "Manager@Pass1";
2121

@@ -49,11 +49,25 @@ public static async Task SeedManagerUserAsync(IServiceProvider serviceProvider)
4949
new Claim(CustomClaimTypes.Permission, Permissions.Users.View),
5050
new Claim(CustomClaimTypes.Permission, Permissions.Users.Create),
5151
new Claim(CustomClaimTypes.Permission, Permissions.Users.Edit),
52+
5253
new Claim(CustomClaimTypes.Permission, Permissions.Roles.View),
54+
5355
new Claim(CustomClaimTypes.Permission, Permissions.Projects.View),
5456
new Claim(CustomClaimTypes.Permission, Permissions.Projects.Create),
5557
new Claim(CustomClaimTypes.Permission, Permissions.Projects.Edit),
5658
new Claim(CustomClaimTypes.Permission, Permissions.Projects.Delete),
59+
60+
new Claim(CustomClaimTypes.Permission, Permissions.Products.View),
61+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Create),
62+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Edit),
63+
64+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.View),
65+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Create),
66+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Edit),
67+
68+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.View),
69+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Create),
70+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Edit),
5771
};
5872

5973
await userManager.AddClaimsAsync(managerUser, userPermissions);
@@ -68,10 +82,10 @@ public static async Task SeedManagerUserAsync(IServiceProvider serviceProvider)
6882
{
6983
logger.LogInformation("Manager user already exists");
7084

71-
// Ensure manager is in the manager role
72-
if (!await userManager.IsInRoleAsync(managerUser, RoleSeeder.UserRole))
85+
// Ensure a manager is in the manager role
86+
if (!await userManager.IsInRoleAsync(managerUser, RoleSeeder.ManagerRole))
7387
{
74-
await userManager.AddToRoleAsync(managerUser, RoleSeeder.UserRole);
88+
await userManager.AddToRoleAsync(managerUser, RoleSeeder.ManagerRole);
7589
logger.LogInformation("Added existing manager user to manager role");
7690
}
7791
}

Data/Seeders/NormalUserSeeder.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static async Task SeedNormalUserAsync(IServiceProvider serviceProvider)
1515
var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>();
1616

1717
// Get admin user details from configuration
18-
var demoEmail = configuration["DemoUser:Email"] ?? "demo@example.com";
18+
var demoEmail = configuration["DemoUser:Email"] ?? "demo@adminhub.com";
1919
var demoUserName = configuration["DemoUser:UserName"] ?? "demo_user";
2020
var demoPassword = configuration["DemoUser:Password"] ?? "Demo@Pass1";
2121

@@ -48,7 +48,22 @@ public static async Task SeedNormalUserAsync(IServiceProvider serviceProvider)
4848
{
4949
new Claim(CustomClaimTypes.Permission, Permissions.Users.View),
5050
new Claim(CustomClaimTypes.Permission, Permissions.Users.Edit),
51+
52+
new Claim(CustomClaimTypes.Permission, Permissions.Roles.View),
53+
5154
new Claim(CustomClaimTypes.Permission, Permissions.Projects.View),
55+
56+
new Claim(CustomClaimTypes.Permission, Permissions.Products.View),
57+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Create),
58+
new Claim(CustomClaimTypes.Permission, Permissions.Products.Edit),
59+
60+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.View),
61+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Create),
62+
new Claim(CustomClaimTypes.Permission, Permissions.ProductCategories.Edit),
63+
64+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.View),
65+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Create),
66+
new Claim(CustomClaimTypes.Permission, Permissions.Orders.Edit),
5267
};
5368

5469
await userManager.AddClaimsAsync(demoUser, userPermissions);

Data/Seeders/PermissionUpdateSeeder.cs

Lines changed: 69 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,85 @@ public static async Task UpdateRolePermissionsAsync(IServiceProvider serviceProv
1818
var projectPermissions = new Dictionary<string, string[]>
1919
{
2020
{
21-
RoleSeeder.AdminRole, new[]
22-
{
21+
RoleSeeder.AdminRole, [
22+
Permissions.Users.View,
23+
Permissions.Users.Create,
24+
Permissions.Users.Edit,
25+
Permissions.Users.Delete,
26+
27+
Permissions.Roles.View,
28+
Permissions.Roles.Create,
29+
Permissions.Roles.Edit,
30+
Permissions.Roles.Delete,
31+
2332
Permissions.Projects.View,
2433
Permissions.Projects.Create,
2534
Permissions.Projects.Edit,
26-
Permissions.Projects.Delete
27-
}
35+
Permissions.Projects.Delete,
36+
37+
Permissions.Products.View,
38+
Permissions.Products.Create,
39+
Permissions.Products.Edit,
40+
Permissions.Products.Delete,
41+
42+
Permissions.ProductCategories.View,
43+
Permissions.ProductCategories.Create,
44+
Permissions.ProductCategories.Edit,
45+
Permissions.ProductCategories.Delete,
46+
47+
Permissions.Orders.View,
48+
Permissions.Orders.Create,
49+
Permissions.Orders.Edit,
50+
Permissions.Orders.Delete,
51+
]
2852
},
2953
{
30-
RoleSeeder.ManagerRole, new[]
31-
{
54+
RoleSeeder.ManagerRole, [
55+
Permissions.Users.View,
56+
Permissions.Users.Create,
57+
Permissions.Users.Edit,
58+
59+
Permissions.Roles.View,
60+
3261
Permissions.Projects.View,
3362
Permissions.Projects.Create,
3463
Permissions.Projects.Edit,
35-
Permissions.Projects.Delete
36-
}
64+
Permissions.Projects.Delete,
65+
66+
Permissions.Products.View,
67+
Permissions.Products.Create,
68+
Permissions.Products.Edit,
69+
70+
Permissions.ProductCategories.View,
71+
Permissions.ProductCategories.Create,
72+
Permissions.ProductCategories.Edit,
73+
74+
Permissions.Orders.View,
75+
Permissions.Orders.Create,
76+
Permissions.Orders.Edit,
77+
]
3778
},
3879
{
39-
RoleSeeder.UserRole, new[]
40-
{
41-
Permissions.Projects.View
42-
}
80+
RoleSeeder.UserRole, [
81+
Permissions.Users.View,
82+
Permissions.Users.Edit,
83+
84+
Permissions.Roles.View,
85+
86+
Permissions.Projects.View,
87+
88+
Permissions.Products.View,
89+
Permissions.Products.Create,
90+
Permissions.Products.Edit,
91+
92+
Permissions.ProductCategories.View,
93+
Permissions.ProductCategories.Create,
94+
Permissions.ProductCategories.Edit,
95+
96+
Permissions.Orders.View,
97+
Permissions.Orders.Create,
98+
Permissions.Orders.Edit,
99+
]
43100
}
44101
};
45102

Data/Seeders/RoleSeeder.cs

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,57 +28,79 @@ public static class RoleSeeder
2828
Permissions.Users.Create,
2929
Permissions.Users.Edit,
3030
Permissions.Users.Delete,
31+
3132
Permissions.Roles.View,
3233
Permissions.Roles.Create,
3334
Permissions.Roles.Edit,
3435
Permissions.Roles.Delete,
36+
3537
Permissions.Projects.View,
3638
Permissions.Projects.Create,
3739
Permissions.Projects.Edit,
3840
Permissions.Projects.Delete,
41+
3942
Permissions.Products.View,
4043
Permissions.Products.Create,
4144
Permissions.Products.Edit,
4245
Permissions.Products.Delete,
46+
4347
Permissions.ProductCategories.View,
4448
Permissions.ProductCategories.Create,
4549
Permissions.ProductCategories.Edit,
46-
Permissions.ProductCategories.Delete
50+
Permissions.ProductCategories.Delete,
51+
52+
Permissions.Orders.View,
53+
Permissions.Orders.Create,
54+
Permissions.Orders.Edit,
55+
Permissions.Orders.Delete,
4756
]
4857
},
4958
{
5059
ManagerRole, [
5160
Permissions.Users.View,
5261
Permissions.Users.Create,
5362
Permissions.Users.Edit,
63+
5464
Permissions.Roles.View,
65+
5566
Permissions.Projects.View,
5667
Permissions.Projects.Create,
5768
Permissions.Projects.Edit,
5869
Permissions.Projects.Delete,
70+
5971
Permissions.Products.View,
6072
Permissions.Products.Create,
6173
Permissions.Products.Edit,
62-
Permissions.Products.Delete,
74+
6375
Permissions.ProductCategories.View,
6476
Permissions.ProductCategories.Create,
6577
Permissions.ProductCategories.Edit,
66-
Permissions.ProductCategories.Delete
78+
79+
Permissions.Orders.View,
80+
Permissions.Orders.Create,
81+
Permissions.Orders.Edit,
6782
]
6883
},
6984
{
7085
UserRole, [
7186
Permissions.Users.View,
7287
Permissions.Users.Edit,
88+
89+
Permissions.Roles.View,
90+
7391
Permissions.Projects.View,
92+
7493
Permissions.Products.View,
7594
Permissions.Products.Create,
7695
Permissions.Products.Edit,
77-
Permissions.Products.Delete,
96+
7897
Permissions.ProductCategories.View,
7998
Permissions.ProductCategories.Create,
8099
Permissions.ProductCategories.Edit,
81-
Permissions.ProductCategories.Delete
100+
101+
Permissions.Orders.View,
102+
Permissions.Orders.Create,
103+
Permissions.Orders.Edit,
82104
]
83105
}
84106
};

0 commit comments

Comments
 (0)