Skip to content

Commit 3523c34

Browse files
committed
refactor(api): update role_permissions map for multi-role support
1 parent 0537af6 commit 3523c34

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

lib/src/rbac/role_permissions.dart

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:ht_api/src/rbac/permission_service.dart' show PermissionService;
21
import 'package:ht_api/src/rbac/permissions.dart';
32
import '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.
2625
final Set<String> _premiumUserPermissions = {..._standardUserPermissions};
2726

27+
final Set<String> _publisherPermissions = {
28+
..._standardUserPermissions,
29+
Permissions.headlineCreate,
30+
Permissions.headlineUpdate,
31+
Permissions.headlineDelete,
32+
};
33+
2834
final 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

Comments
 (0)