diff --git a/include/Product.php b/include/Product.php
index c4f342b..d84ec1d 100644
--- a/include/Product.php
+++ b/include/Product.php
@@ -110,7 +110,7 @@ class Product extends Entity {
         return true;
     }
 
-    public function matches($terms) {
+    public function matches($terms, $matchAll=false) {
         $terms = $this->specify_search($terms, array('brand',
                                                      'name',
                                                      'serial',
@@ -140,6 +140,9 @@ class Product extends Entity {
                 }
             }
         }
+        if($matchAll && array_diff_assoc($terms, $matches)) {
+            return array();
+        }
         return $matches;
     }
 
diff --git a/include/User.php b/include/User.php
index aee33f5..18a619d 100644
--- a/include/User.php
+++ b/include/User.php
@@ -47,7 +47,7 @@ class User extends Entity {
         return true;
     }
 
-    public function matches($terms) {
+    public function matches($terms, $matchAll=false) {
         $terms = $this->specify_search($terms, array('name',
                                                      'email',
                                                      'notes'));
@@ -75,6 +75,9 @@ class User extends Entity {
                     break;
             }
         }
+        if($matchAll && array_diff_assoc($terms, $matches)) {
+            return array();
+        }
         return $matches;
     }