GateServiceProvider class
The Gate Service Provider.
This provider is responsible for registering authorization abilities and policies. Extend this class to customize gate definitions.
Usage
- Create your provider:
class AppGateServiceProvider extends GateServiceProvider {
AppGateServiceProvider(super.app);
@override
Future<void> boot() async {
await super.boot();
// Register super admin bypass
Gate.before((user, ability) {
if (user.isAdmin) return true;
return null;
});
// Register abilities
Gate.define('update-post', (user, post) => user.id == post.userId);
Gate.define('delete-post', (user, post) => user.isAdmin);
// Or use policies
PostPolicy().register();
CommentPolicy().register();
}
}
- Register in
config/app.dart:
'providers': [
(app) => AppGateServiceProvider(app),
],
- Inheritance
-
- Object
- ServiceProvider
- GateServiceProvider
Constructors
- GateServiceProvider(MagicApp app)
- Create a new Gate service provider.
Properties
Methods
-
boot(
) → Future< void> -
Bootstrap any application services.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
register(
) → void -
Register any application services.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited