1- import 'package:ht_api/src/rbac/permission_service.dart' show PermissionService;
21import 'package:ht_api/src/rbac/permissions.dart' ;
32import 'package:ht_shared/ht_shared.dart' ;
43
@@ -25,6 +24,13 @@ final Set<String> _standardUserPermissions = {
2524// but this set can be expanded later for premium-specific features.
2625final Set <String > _premiumUserPermissions = {..._standardUserPermissions};
2726
27+ final Set <String > _publisherPermissions = {
28+ ..._standardUserPermissions,
29+ Permissions .headlineCreate,
30+ Permissions .headlineUpdate,
31+ Permissions .headlineDelete,
32+ };
33+
2834final Set <String > _adminPermissions = {
2935 ..._standardUserPermissions,
3036 Permissions .headlineCreate,
@@ -48,16 +54,17 @@ final Set<String> _adminPermissions = {
4854/// Defines the mapping between user roles and the permissions they possess.
4955///
5056/// 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
5258/// [Permissions] strings that users with that role are granted.
5359///
5460/// Note: Administrators typically have implicit access to all resources
5561/// 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
5763/// 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,
6370};
0 commit comments