canActivate method
- String path,
- ModularRoute route
Returns a FutureOrGuardedRouteException
.
Implementation
@override
Future<bool> canActivate(String path, ModularRoute route) async {
final courses = Modular.tryGet<MoodleCoursesRepository>();
final user = Modular.tryGet<UserRepository>();
if (courses == null || user == null) return false;
await courses.ready;
await user.ready;
if (!user.state.hasData) return false;
if (!user.state.requireData.capabilities.hasStudent) return true;
await courses.build(this);
return courses.filter(enabled: true).isNotEmpty;
}