diff --git a/module/finc/src/finc/RecordDriver/SolrDefaultFincTrait.php b/module/finc/src/finc/RecordDriver/SolrDefaultFincTrait.php
index 66f1bdf859f692283513a2009b8e09df3e5c5d01..05fa243e4861f23aa7276b7b3e0b2930aa0437af 100644
--- a/module/finc/src/finc/RecordDriver/SolrDefaultFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrDefaultFincTrait.php
@@ -34,6 +34,7 @@ namespace finc\RecordDriver;
 
 use VuFindSearch\ParamBag;
 use VuFindSearch\Query\Query as Query;
+use Zend\Config\Config;
 
 /**
  * finc specific model for Solr records based on the stock
@@ -155,6 +156,26 @@ trait SolrDefaultFincTrait
         return null;
     }
 
+    public function hasRecordPermission(String $permission) : bool
+    {
+        // do we have a RecordPermissions section in config.ini?
+        if (isset($this->mainConfig->RecordPermissions)) {
+            $settings = $this->mainConfig->RecordPermissions->{$permission} ?? null;
+            if (is_null($settings)) return false;
+            if ($settings instanceof Config) $settings = $settings->toArray();
+            foreach ((array) $settings as $value) {
+                list($methodName, $methodReturn) = explode(':', $value);
+                if (in_array($methodReturn, (array) $this->tryMethod($methodName))) {
+                    // as the current permission matches the current record,
+                    // return it
+                    return true;
+                }
+            }
+        }
+        // either no settings for the permission were present or none matched, so return false
+        return false;
+    }
+
     /**
      * Controller to decide when local format field of a library should be
      * retrieved from marc. Pass through method for PrimoCentral