mirror of
				https://github.com/inventree/inventree-app.git
				synced 2025-10-30 21:05:42 +00:00 
			
		
		
		
	Merge pull request #155 from inventree/search-permissions
Wrap search queries in permission checks
This commit is contained in:
		| @@ -8,6 +8,7 @@ import "package:inventree/inventree/purchase_order.dart"; | |||||||
| import "package:inventree/widget/part_list.dart"; | import "package:inventree/widget/part_list.dart"; | ||||||
| import "package:inventree/widget/purchase_order_list.dart"; | import "package:inventree/widget/purchase_order_list.dart"; | ||||||
| import "package:inventree/widget/refreshable_state.dart"; | import "package:inventree/widget/refreshable_state.dart"; | ||||||
|  | import "package:inventree/api.dart"; | ||||||
| import "package:inventree/l10.dart"; | import "package:inventree/l10.dart"; | ||||||
| import "package:inventree/inventree/part.dart"; | import "package:inventree/inventree/part.dart"; | ||||||
| import "package:inventree/inventree/stock.dart"; | import "package:inventree/inventree/stock.dart"; | ||||||
| @@ -115,6 +116,8 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|    */ |    */ | ||||||
|   Future<void> search(String term) async { |   Future<void> search(String term) async { | ||||||
|  |  | ||||||
|  |     var api = InvenTreeAPI(); | ||||||
|  |  | ||||||
|     setState(() { |     setState(() { | ||||||
|       // Do not search on an empty string |       // Do not search on an empty string | ||||||
|       nPartResults = 0; |       nPartResults = 0; | ||||||
| @@ -132,6 +135,7 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Search parts |     // Search parts | ||||||
|  |     if (api.checkPermission("part", "view")) { | ||||||
|       InvenTreePart().count(searchQuery: term).then((int n) { |       InvenTreePart().count(searchQuery: term).then((int n) { | ||||||
|         if (term == searchController.text) { |         if (term == searchController.text) { | ||||||
|           setState(() { |           setState(() { | ||||||
| @@ -140,8 +144,10 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Search part categories |     // Search part categories | ||||||
|  |     if (api.checkPermission("part_category", "view")) { | ||||||
|       InvenTreePartCategory().count(searchQuery: term,).then((int n) { |       InvenTreePartCategory().count(searchQuery: term,).then((int n) { | ||||||
|         if (term == searchController.text) { |         if (term == searchController.text) { | ||||||
|           setState(() { |           setState(() { | ||||||
| @@ -150,8 +156,10 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Search stock items |     // Search stock items | ||||||
|  |     if (api.checkPermission("stock", "view")) { | ||||||
|       InvenTreeStockItem().count(searchQuery: term).then((int n) { |       InvenTreeStockItem().count(searchQuery: term).then((int n) { | ||||||
|         if (term == searchController.text) { |         if (term == searchController.text) { | ||||||
|           setState(() { |           setState(() { | ||||||
| @@ -160,8 +168,10 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Search stock locations |     // Search stock locations | ||||||
|  |     if (api.checkPermission("stock_location", "view")) { | ||||||
|       InvenTreeStockLocation().count(searchQuery: term).then((int n) { |       InvenTreeStockLocation().count(searchQuery: term).then((int n) { | ||||||
|         if (term == searchController.text) { |         if (term == searchController.text) { | ||||||
|           setState(() { |           setState(() { | ||||||
| @@ -171,6 +181,7 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // TDOO: Re-implement this once display for companies has been fixed |     // TDOO: Re-implement this once display for companies has been fixed | ||||||
|     /* |     /* | ||||||
| @@ -188,6 +199,7 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|      */ |      */ | ||||||
|  |  | ||||||
|     // Search purchase orders |     // Search purchase orders | ||||||
|  |     if (api.checkPermission("purchase_order", "view")) { | ||||||
|       InvenTreePurchaseOrder().count( |       InvenTreePurchaseOrder().count( | ||||||
|           searchQuery: term, |           searchQuery: term, | ||||||
|           filters: { |           filters: { | ||||||
| @@ -201,7 +213,7 @@ class _SearchDisplayState extends RefreshableState<SearchWidget> { | |||||||
|           }); |           }); | ||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   List<Widget> _tiles(BuildContext context) { |   List<Widget> _tiles(BuildContext context) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user