mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-29 14:06:47 +00:00
Merge pull request #155 from inventree/search-permissions
Wrap search queries in permission checks
This commit is contained in:
commit
51a90f5fca
@ -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) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user