diff --git a/lib/view/directory/directory_view.dart b/lib/view/directory/directory_view.dart index 54c4fee..9f1a290 100644 --- a/lib/view/directory/directory_view.dart +++ b/lib/view/directory/directory_view.dart @@ -16,6 +16,7 @@ import 'package:marco/model/directory/create_bucket_bottom_sheet.dart'; import 'package:marco/view/directory/contact_detail_screen.dart'; import 'package:marco/view/directory/manage_bucket_screen.dart'; import 'package:marco/controller/permission_controller.dart'; +import 'package:marco/helpers/utils/permission_constants.dart'; class DirectoryView extends StatefulWidget { @override @@ -288,35 +289,44 @@ class _DirectoryViewState extends State { ), ); - // Create Bucket option - menuItems.add( - PopupMenuItem( - value: 2, - child: Row( - children: const [ - Icon(Icons.add_box_outlined, - size: 20, color: Colors.black87), - SizedBox(width: 10), - Expanded(child: Text("Create Bucket")), - Icon(Icons.chevron_right, - size: 20, color: Colors.red), - ], + // ✅ Conditionally show Create Bucket option + if (permissionController + .hasPermission(Permissions.directoryAdmin) || + permissionController + .hasPermission(Permissions.directoryManager) || + permissionController + .hasPermission(Permissions.directoryUser)) { + menuItems.add( + PopupMenuItem( + value: 2, + child: Row( + children: const [ + Icon(Icons.add_box_outlined, + size: 20, color: Colors.black87), + SizedBox(width: 10), + Expanded(child: Text("Create Bucket")), + Icon(Icons.chevron_right, + size: 20, color: Colors.red), + ], + ), + onTap: () { + Future.delayed(Duration.zero, () async { + final created = + await showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (_) => + const CreateBucketBottomSheet(), + ); + if (created == true) { + await controller.fetchBuckets(); + } + }); + }, ), - onTap: () { - Future.delayed(Duration.zero, () async { - final created = await showModalBottomSheet( - context: context, - isScrollControlled: true, - backgroundColor: Colors.transparent, - builder: (_) => const CreateBucketBottomSheet(), - ); - if (created == true) { - await controller.fetchBuckets(); - } - }); - }, - ), - ); + ); + } // Manage Buckets option menuItems.add( @@ -355,7 +365,7 @@ class _DirectoryViewState extends State { ), ); - // Show Inactive switch + // Show Inactive toggle menuItems.add( PopupMenuItem( value: 0,