diff --git a/modules/contrib/publishcontent/publishcontent.info.yml b/modules/contrib/publishcontent/publishcontent.info.yml
index d7d1a4e..182f209 100644
--- a/modules/contrib/publishcontent/publishcontent.info.yml
+++ b/modules/contrib/publishcontent/publishcontent.info.yml
@@ -3,6 +3,8 @@ description: 'Adds a ''Publish'' or ''Unpublish'' link on the node edit/view pag
 # core: 8.x
 type: module
 
+configure: publishcontent.settings
+
 # Information added by Drupal.org packaging script on 2016-09-08
 version: '8.x-1.0'
 core: '8.x'
diff --git a/modules/contrib/publishcontent/publishcontent.routing.yml b/modules/contrib/publishcontent/publishcontent.routing.yml
index f3cfc69..de6e11b 100644
--- a/modules/contrib/publishcontent/publishcontent.routing.yml
+++ b/modules/contrib/publishcontent/publishcontent.routing.yml
@@ -5,3 +5,12 @@ entity.node.publish:
   requirements:
     _csrf_token: 'TRUE'
     _publish_access_check: 'TRUE'
+
+
+publishcontent.settings:
+  path: '/admin/config/content/publishcontent'
+  defaults:
+    _form: '\Drupal\publishcontent\Form\Config'
+    _title: 'Publishcontent Settings'
+  requirements:
+    _permission: 'administer modules'
\ No newline at end of file
diff --git a/modules/contrib/publishcontent/src/Access/PublishContentAccess.php b/modules/contrib/publishcontent/src/Access/PublishContentAccess.php
index bda80db..5d15c02 100644
--- a/modules/contrib/publishcontent/src/Access/PublishContentAccess.php
+++ b/modules/contrib/publishcontent/src/Access/PublishContentAccess.php
@@ -40,7 +40,18 @@ public function access(AccountInterface $account, NodeInterface $node) {
 
     $action = $node->isPublished() ? 'unpublish' : 'publish';
 
-    if (($action == 'publish'
+    $granularity = \Drupal::configFactory()->get('publishcontent.settings')->get('granularity');
+    if(!$granularity){
+      if (($action == 'publish'
+          && ($this->accessPublishAny()
+            || $this->accessPublishEditable())) ||
+        ($action == 'unpublish'
+          && ($this->accessUnpublishAny()
+            || $this->accessUnpublishEditable()))) {
+        return AccessResult::allowed();
+      }
+    }else{
+      if (($action == 'publish'
           && ($this->accessPublishAny()
             || $this->accessPublishEditable()
             || $this->accessPublishAnyType()
@@ -52,7 +63,8 @@ public function access(AccountInterface $account, NodeInterface $node) {
             || $this->accessUnpublishAnyType()
             || $this->accessUnpublishOwnType()
             || $this->accessUnpublishEditableType()))) {
-      return AccessResult::allowed();
+        return AccessResult::allowed();
+      }
     }
 
     return AccessResult::forbidden();
diff --git a/modules/contrib/publishcontent/src/PublishContentPermissions.php b/modules/contrib/publishcontent/src/PublishContentPermissions.php
index f4a9433..3bd321d 100644
--- a/modules/contrib/publishcontent/src/PublishContentPermissions.php
+++ b/modules/contrib/publishcontent/src/PublishContentPermissions.php
@@ -38,6 +38,12 @@ public static function getPermission($pattern, array $arguments = NULL) {
   public function permissions() {
     $permissions = [];
 
+    $granularity = \Drupal::configFactory()->get('publishcontent.settings')->get('granularity');
+
+    if(!$granularity){
+      return $permissions;
+    }
+
     $nodeTypes = NodeType::loadMultiple();
     foreach ($nodeTypes as $type => $data) {
       $titleType = ucfirst($type);
