Modifications des permissions, ajout Presta OK, vue calendrier ok
This commit is contained in:
@ -5,7 +5,7 @@ import 'package:em2rp/providers/local_user_provider.dart';
|
||||
|
||||
class PermissionGate extends StatelessWidget {
|
||||
final Widget child;
|
||||
final List<Permission> requiredPermissions;
|
||||
final List<String> requiredPermissions;
|
||||
final bool requireAll;
|
||||
final Widget? fallback;
|
||||
|
||||
@ -26,10 +26,9 @@ class PermissionGate extends StatelessWidget {
|
||||
return fallback ?? const SizedBox.shrink();
|
||||
}
|
||||
|
||||
final userRole = Roles.fromString(currentUser.role);
|
||||
final hasPermission = requireAll
|
||||
? userRole.hasAllPermissions(requiredPermissions)
|
||||
: userRole.hasAnyPermission(requiredPermissions);
|
||||
? hasAllPermissions(localUserProvider, requiredPermissions)
|
||||
: hasAnyPermission(localUserProvider, requiredPermissions);
|
||||
|
||||
if (hasPermission) {
|
||||
return child;
|
||||
@ -39,4 +38,18 @@ class PermissionGate extends StatelessWidget {
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
bool hasAllPermissions(LocalUserProvider provider, List<String> permissions) {
|
||||
for (final perm in permissions) {
|
||||
if (!provider.hasPermission(perm)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool hasAnyPermission(LocalUserProvider provider, List<String> permissions) {
|
||||
for (final perm in permissions) {
|
||||
if (provider.hasPermission(perm)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user