diff --git a/modules/gnode/gnode.module b/modules/gnode/gnode.module
index 5759c0e..f8b5317 100644
--- a/modules/gnode/gnode.module
+++ b/modules/gnode/gnode.module
@@ -86,6 +86,9 @@ function gnode_node_access(NodeInterface $node, $op, AccountInterface $account)
         elseif ($group->hasPermission("view unpublished $plugin_id entity", $account)) {
           return AccessResult::allowed();
         }
+        elseif ($group->hasPermission('view own unpublished content', $account) && ($node->getOwnerId() == $account->id())) {
+          return AccessResult::allowed()->cachePerPermissions()->addCacheableDependency($node);
+        }
       }
       break;
 
diff --git a/modules/gnode/src/Plugin/GroupContentEnabler/GroupNode.php b/modules/gnode/src/Plugin/GroupContentEnabler/GroupNode.php
index 033f953..1169905 100644
--- a/modules/gnode/src/Plugin/GroupContentEnabler/GroupNode.php
+++ b/modules/gnode/src/Plugin/GroupContentEnabler/GroupNode.php
@@ -68,6 +68,11 @@ class GroupNode extends GroupContentEnablerBase {
       'title' => str_replace('View ', 'View unpublished ', $original['title']),
     ] + $original;
 
+    // View own unpublished content permission.
+    $permissions['view own unpublished content'] = [
+      'title' => (string) $this->t('View own unpublished content'),
+    ];
+
     return $permissions;
   }
 
