permission_policy 0.1.0 copy "permission_policy: ^0.1.0" to clipboard
permission_policy: ^0.1.0 copied to clipboard

Permission policy helps you manage permissions in your Flutter application.

Role and Permissions for Flutter #

pub package License: MIT

Permission policy helps you manage role and permissions in your Flutter application. It works on Android, iOS, macOS, linux, windows and web.

Usage #

Simple to use #

// Add roles and permissions to the permission policy
RoleAndPermissions roleAndPermissions = {
      "Admin": ['admin'],
      "Sales Manager": ['view_revenue', 'view_apps'],
      "Developer Manager": ['view_apps'],
      "Marketing": ['view_media'],
      "Project Manager": ["edit_projects"]
    };
PermissionPolicy.instance.addRoles(roleAndPermissions);
// Check if a user has a role
await PermissionPolicy.instance.hasRole("Admin");
// Check if a user has a permission
await PermissionPolicy.instance.hasPermission("view_revenue");
// Give the user a role
await PermissionPolicy.giveRole("Admin");
// Remove a role from the user
await PermissionPolicy.removeRole();

Features #

  • ✅ Add roles and permissions to your Flutter application
  • ✅ Check if a user has a role
  • ✅ Check if a user has a permission
  • ✅ Give a user a role
  • ✅ Remove a role from a user
  • ✅ Widgets to show a users current role and permissions

Getting started #

Installation #

Add the following to your pubspec.yaml file:


dependencies:
  permission_policy: ^0.1.0

or with Dart:

dart pub add permission_policy

How to use #

The package is very simple to use. You can add roles and permissions to the permission policy and then check if a user has a role or permission.

Add roles and permissions #


// Add roles and permissions to the permission policy
RoleAndPermissions roleAndPermissions = {
      "Admin": ['admin'],
      "Subscriber": ['can_unsubscribe', 'view_exclusive_content'],
      "User": ['can_subcribe', 'view_content'],
};
PermissionPolicy.instance.addRoles(roleAndPermissions);
  

You can then check if a user has a role or permission.

// Check if a user has a role in your Widget
import 'package:flutter/material.dart';
import 'package:nylo_framework/nylo_framework.dart';
import 'package:permission_policy/permission_policy.dart';

// Check if a user has a role in your Widget

class PermissionPage extends NyPage {

  static String path = '/permission';

  @override
  Widget build(BuildContext context) {
    print('object');
    return Scaffold(
      appBar: AppBar(title: Text("Permission Policy")),
      body: SafeArea(
        child: Container(
          padding: EdgeInsets.symmetric(horizontal: 8),
          width: double.infinity,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              ListView(
                shrinkWrap: true,
                physics: NeverScrollableScrollPhysics(),
                children: [
                  Text("Your role").fontWeightBold(),
                  UserRole(), // This widget will show the users current role

                  Text("Your Permissions").fontWeightBold(),
                  UserPermissions(), // This widget will show the users current permissions
                ],
              ),

              RoleSelector(onUpdate: () {
                refreshPage(); // Refresh the page when the user selects a role
              }),

              RoleView(widgetMap: () => {
                "Admin": Text("The Admin UI"),
                "Subscriber": Text("The Subscriber UI"),
                "User": Text("The User UI")
              }),

              PermissionView(
                  child: Text("Join the Pro plan"),
                  permissions: ['can_subscribe']),

              PermissionView(
                  child: Text("Unsubscribe from the Pro plan"),
                  permissions: ['can_unsubscribe']),

              MaterialButton(
                onPressed: () async {
                  await PermissionPolicy.removeRole();
                  refreshPage();
                },
                child: Text("Clear Roles"),
              )
            ],
          ),
        ),
      ),
    );
  }
}

If the user has the role of Admin, they will be able to see any PermissionView widgets.

Try the example app to see how it works.

Changelog #

Please see CHANGELOG for more information what has changed recently.

Social #

Licence #

The MIT License (MIT). Please view the License File for more information.

18
likes
150
points
369
downloads
screenshot

Publisher

verified publishernylo.dev

Weekly Downloads

Permission policy helps you manage permissions in your Flutter application.

Homepage
Repository (GitHub)

Topics

#roles #permissions #permissions-policy

Documentation

API reference

Funding

Consider supporting this project:

github.com

License

MIT (license)

Dependencies

flutter, nylo_support

More

Packages that depend on permission_policy