]> BookStack Code Mirror - bookstack/blobdiff - app/Auth/Permissions/PermissionService.php
Merge branch 'Copy-For-View-Only' of git://github.com/mark-james/BookStack into mark...
[bookstack] / app / Auth / Permissions / PermissionService.php
index af2a5e1fd8c694ee36d2e5e25134e0b3f5ec991d..b28f59cc5018b127eaf15365b20148761de791de 100644 (file)
@@ -556,6 +556,33 @@ class PermissionService
         return $q;
     }
 
+    /**
+     * Checks if a user has a book or chapter available to create a page
+     * @param Ownable $ownable
+     * @param $permission
+     * @return bool
+     */
+    public function checkAvailableCreatePageAccess()
+    {
+        $userRoleIds = $this->currentUser()->roles()->pluck('id')->toArray();
+        $userId = $this->currentUser()->id;
+
+
+        $canCreatePage = $this->db->table('joint_permissions')
+            ->where('action', '=', 'page-create')
+            ->whereIn('role_id', $userRoleIds)
+            ->where(function ($query) use ($userId) {
+                $query->where('has_permission', '=', 1)
+                ->orWhere(function ($query2) use ($userId) {
+                    $query2->where('has_permission_own', '=', 1)
+                    ->where('created_by', '=', $userId);
+                });       
+            })
+            ->get()->count() > 0;
+
+        return $canCreatePage;
+    }
+
     /**
      * Check if an entity has restrictions set on itself or its
      * parent tree.