portico_auth_roles 1.0.0 copy "portico_auth_roles: ^1.0.0" to clipboard
portico_auth_roles: ^1.0.0 copied to clipboard

Role-Based Access Control (RBAC) metadata and assignment system.

example/main.dart

import 'package:portico_auth_roles/portico_auth_roles.dart';

void main() async {
  print('--- RBAC Core Verification ---');

  final storage = AuthRolesInMemoryStorage();
  final manager = AuthRoleManager(storage);

  // 1. Create roles
  print('Creating roles...');
  await manager.createRole(
    name: 'admin',
    displayName: 'Administrator',
    description: 'Full system access',
  );
  await manager.createRole(
    name: 'editor',
    displayName: 'Editor',
    description: 'Can edit content',
  );

  // 2. List roles
  final roles = await manager.listRoles();
  print('Active roles: ${[...roles.map((r) => r.name)]}'); // [admin, editor]

  // 3. Assign roles to a user
  const userId = 'user_001';
  print('Assigning roles to $userId...');
  await manager.assignRoleToUser(userId: userId, roleName: 'admin');
  await manager.assignRoleToUser(userId: userId, roleName: 'editor');

  // 4. Verify assignments
  final userRoles = await manager.getUserRoles(userId);
  print('User roles: ${[userRoles.map((r) => r.name)]}'); // [(admin, editor)]

  // 5. Deactivate a role and verify it is hidden
  print('Deactivating admin role...');
  await manager.deactivateRole('admin');

  final updatedUserRoles = await manager.getUserRoles(userId);
  print(
    'User roles after deactivation: ${[...updatedUserRoles.map((r) => r.name)]}',
  ); // [editor]

  print('--- Verification Complete ---');
}
1
likes
160
points
73
downloads

Publisher

verified publishermcdole.org

Weekly Downloads

Role-Based Access Control (RBAC) metadata and assignment system.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

equatable, json_annotation

More

Packages that depend on portico_auth_roles