1
- import 'package:ht_api/src/rbac/permission_service.dart' show PermissionService;
2
1
import 'package:ht_api/src/rbac/permissions.dart' ;
3
2
import 'package:ht_shared/ht_shared.dart' ;
4
3
@@ -25,6 +24,13 @@ final Set<String> _standardUserPermissions = {
25
24
// but this set can be expanded later for premium-specific features.
26
25
final Set <String > _premiumUserPermissions = {..._standardUserPermissions};
27
26
27
+ final Set <String > _publisherPermissions = {
28
+ ..._standardUserPermissions,
29
+ Permissions .headlineCreate,
30
+ Permissions .headlineUpdate,
31
+ Permissions .headlineDelete,
32
+ };
33
+
28
34
final Set <String > _adminPermissions = {
29
35
..._standardUserPermissions,
30
36
Permissions .headlineCreate,
@@ -48,16 +54,17 @@ final Set<String> _adminPermissions = {
48
54
/// Defines the mapping between user roles and the permissions they possess.
49
55
///
50
56
/// This map is the core of the Role-Based Access Control (RBAC) system.
51
- /// Each key is a [UserRole] , and the associated value is a [Set] of
57
+ /// Each key is a role string , and the associated value is a [Set] of
52
58
/// [Permissions] strings that users with that role are granted.
53
59
///
54
60
/// Note: Administrators typically have implicit access to all resources
55
61
/// regardless of this map, but including their permissions here can aid
56
- /// documentation and clarity. The [ PermissionService] should handle the
62
+ /// documentation and clarity. The ` PermissionService` should handle the
57
63
/// explicit admin bypass if desired.
58
- final Map <UserRole , Set <String >> rolePermissions = {
59
- UserRole .guestUser: _guestUserPermissions,
60
- UserRole .standardUser: _standardUserPermissions,
61
- UserRole .premiumUser: _premiumUserPermissions,
62
- UserRole .admin: _adminPermissions,
64
+ final Map <String , Set <String >> rolePermissions = {
65
+ UserRoles .guestUser: _guestUserPermissions,
66
+ UserRoles .standardUser: _standardUserPermissions,
67
+ UserRoles .premiumUser: _premiumUserPermissions,
68
+ UserRoles .publisher: _publisherPermissions,
69
+ UserRoles .admin: _adminPermissions,
63
70
};
0 commit comments