]> BookStack Code Mirror - bookstack/commitdiff
Re-structured the app code to be feature based rather than code type based
authorDan Brown <redacted>
Tue, 25 Sep 2018 11:30:50 +0000 (12:30 +0100)
committerDan Brown <redacted>
Tue, 25 Sep 2018 11:30:50 +0000 (12:30 +0100)
109 files changed:
app/Actions/Activity.php [moved from app/Activity.php with 93% similarity]
app/Actions/ActivityService.php [moved from app/Services/ActivityService.php with 96% similarity]
app/Actions/Comment.php [moved from app/Comment.php with 94% similarity]
app/Actions/CommentRepo.php [moved from app/Repos/CommentRepo.php with 76% similarity]
app/Actions/Tag.php [moved from app/Tag.php with 85% similarity]
app/Actions/TagRepo.php [moved from app/Repos/TagRepo.php with 91% similarity]
app/Actions/View.php [moved from app/View.php with 82% similarity]
app/Actions/ViewService.php [moved from app/Services/ViewService.php with 85% similarity]
app/Auth/Access/EmailConfirmationService.php [moved from app/Services/EmailConfirmationService.php with 93% similarity]
app/Auth/Access/Ldap.php [moved from app/Services/Ldap.php with 98% similarity]
app/Auth/Access/LdapService.php [moved from app/Services/LdapService.php with 96% similarity]
app/Auth/Access/SocialAuthService.php [moved from app/Services/SocialAuthService.php with 98% similarity]
app/Auth/Permissions/EntityPermission.php [moved from app/EntityPermission.php with 84% similarity]
app/Auth/Permissions/JointPermission.php [moved from app/JointPermission.php with 80% similarity]
app/Auth/Permissions/PermissionService.php [moved from app/Services/PermissionService.php with 95% similarity]
app/Auth/Permissions/PermissionsRepo.php [moved from app/Repos/PermissionsRepo.php with 93% similarity]
app/Auth/Permissions/RolePermission.php [moved from app/RolePermission.php with 83% similarity]
app/Auth/Role.php [moved from app/Role.php with 77% similarity]
app/Auth/SocialAccount.php [moved from app/SocialAccount.php with 71% similarity]
app/Auth/User.php [moved from app/User.php with 97% similarity]
app/Auth/UserRepo.php [moved from app/Repos/UserRepo.php with 94% similarity]
app/Console/Commands/CleanupImages.php
app/Console/Commands/ClearActivity.php
app/Console/Commands/ClearRevisions.php
app/Console/Commands/CreateAdmin.php
app/Console/Commands/DeleteUsers.php
app/Console/Commands/RegeneratePermissions.php
app/Console/Commands/RegenerateSearch.php
app/Entities/Book.php [moved from app/Book.php with 91% similarity]
app/Entities/Bookshelf.php [moved from app/Bookshelf.php with 91% similarity]
app/Entities/Chapter.php [moved from app/Chapter.php with 86% similarity]
app/Entities/Entity.php [moved from app/Entity.php with 88% similarity]
app/Entities/EntityProvider.php [new file with mode: 0644]
app/Entities/EntityRepo.php [moved from app/Repos/EntityRepo.php with 94% similarity]
app/Entities/ExportService.php [moved from app/Services/ExportService.php with 94% similarity]
app/Entities/Page.php [moved from app/Page.php with 89% similarity]
app/Entities/PageRevision.php [moved from app/PageRevision.php with 93% similarity]
app/Entities/SearchService.php [moved from app/Services/SearchService.php with 97% similarity]
app/Entities/SearchTerm.php [moved from app/SearchTerm.php with 85% similarity]
app/Facades/Activity.php [moved from app/Services/Facades/Activity.php with 85% similarity]
app/Facades/Images.php [moved from app/Services/Facades/Images.php with 85% similarity]
app/Facades/Setting.php [moved from app/Services/Facades/Setting.php with 85% similarity]
app/Facades/Views.php [moved from app/Services/Facades/Views.php with 85% similarity]
app/Http/Controllers/AttachmentController.php
app/Http/Controllers/Auth/LoginController.php
app/Http/Controllers/Auth/RegisterController.php
app/Http/Controllers/BookController.php
app/Http/Controllers/BookshelfController.php
app/Http/Controllers/ChapterController.php
app/Http/Controllers/CommentController.php
app/Http/Controllers/Controller.php
app/Http/Controllers/HomeController.php
app/Http/Controllers/ImageController.php
app/Http/Controllers/PageController.php
app/Http/Controllers/PermissionController.php
app/Http/Controllers/SearchController.php
app/Http/Controllers/SettingController.php
app/Http/Controllers/TagController.php
app/Http/Controllers/UserController.php
app/Ownable.php
app/Providers/AppServiceProvider.php
app/Providers/AuthServiceProvider.php
app/Providers/CustomFacadeProvider.php
app/Providers/LdapUserProvider.php
app/Settings/Setting.php [moved from app/Setting.php with 68% similarity]
app/Settings/SettingService.php [moved from app/Services/SettingService.php with 97% similarity]
app/Uploads/Attachment.php [moved from app/Attachment.php with 90% similarity]
app/Uploads/AttachmentService.php [moved from app/Services/AttachmentService.php with 98% similarity]
app/Uploads/Image.php [moved from app/Image.php with 88% similarity]
app/Uploads/ImageRepo.php [moved from app/Repos/ImageRepo.php with 95% similarity]
app/Uploads/ImageService.php [moved from app/Services/ImageService.php with 98% similarity]
app/Uploads/UploadService.php [moved from app/Services/UploadService.php with 93% similarity]
app/helpers.php
config/app.php
config/auth.php
config/services.php
database/factories/ModelFactory.php
database/migrations/2015_12_07_195238_add_image_upload_types.php
database/migrations/2018_08_04_115700_create_bookshelves_table.php
database/seeds/DummyContentSeeder.php
database/seeds/LargeContentSeeder.php
resources/views/components/page-picker.blade.php
resources/views/errors/404.blade.php
resources/views/settings/index.blade.php
tests/ActivityTrackingTest.php
tests/AttachmentTest.php
tests/Auth/AuthTest.php
tests/Auth/LdapTest.php
tests/Auth/SocialAuthTest.php
tests/BrowserKitTest.php
tests/CommandsTest.php
tests/Entity/BookShelfTest.php
tests/Entity/CommentSettingTest.php
tests/Entity/CommentTest.php
tests/Entity/EntitySearchTest.php
tests/Entity/EntityTest.php
tests/Entity/ExportTest.php
tests/Entity/MarkdownTest.php
tests/Entity/PageContentTest.php
tests/Entity/PageDraftTest.php
tests/Entity/PageRevisionTest.php
tests/Entity/SortTest.php
tests/Entity/TagTest.php
tests/ImageTest.php
tests/Permissions/RestrictionsTest.php
tests/Permissions/RolesTest.php
tests/PublicActionTest.php
tests/SharedTestHelpers.php
tests/UserProfileTest.php

similarity index 93%
rename from app/Activity.php
rename to app/Actions/Activity.php
index c01da1f6c897c4cf34d3f4a7d7594a5eab0f191c..1ae1811e11461dbd94674c791b0c75143596d8b2 100644 (file)
@@ -1,6 +1,9 @@
 <?php
 
-namespace BookStack;
+namespace BookStack\Actions;
+
+use BookStack\Auth\User;
+use BookStack\Model;
 
 /**
  * @property string  key
similarity index 96%
rename from app/Services/ActivityService.php
rename to app/Actions/ActivityService.php
index 3fc7e7ee0bbf443354aa3079ecf46bdc759a9032..7b1046d220d34e14b0393420f80868229db1d284 100644 (file)
@@ -1,7 +1,8 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Actions;
 
-use BookStack\Activity;
-use BookStack\Entity;
+use BookStack\Actions\Activity;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Entities\Entity;
 use Session;
 
 class ActivityService
@@ -12,7 +13,7 @@ class ActivityService
 
     /**
      * ActivityService constructor.
-     * @param Activity $activity
+     * @param \BookStack\Actions\Activity $activity
      * @param PermissionService $permissionService
      */
     public function __construct(Activity $activity, PermissionService $permissionService)
similarity index 94%
rename from app/Comment.php
rename to app/Actions/Comment.php
index 2800ab21ad3d07a3fca32e28f045eccfad71b787..f138ee4a1ffed5da7bb1ead3a581d9045901179f 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Actions;
+
+use BookStack\Ownable;
 
 class Comment extends Ownable
 {
similarity index 76%
rename from app/Repos/CommentRepo.php
rename to app/Actions/CommentRepo.php
index 7f89e7f8dfb3011eabbf60aca05c8fd5b5c3451d..3422d141ba05ccec7d1bdf2eb8bdb716057ec9fe 100644 (file)
@@ -1,7 +1,7 @@
-<?php namespace BookStack\Repos;
+<?php namespace BookStack\Actions;
 
-use BookStack\Comment;
-use BookStack\Entity;
+use BookStack\Actions\Comment;
+use BookStack\Entities\Entity;
 
 /**
  * Class CommentRepo
@@ -11,13 +11,13 @@ class CommentRepo
 {
 
     /**
-     * @var Comment $comment
+     * @var \BookStack\Actions\Comment $comment
      */
     protected $comment;
 
     /**
      * CommentRepo constructor.
-     * @param Comment $comment
+     * @param \BookStack\Actions\Comment $comment
      */
     public function __construct(Comment $comment)
     {
@@ -27,7 +27,7 @@ class CommentRepo
     /**
      * Get a comment by ID.
      * @param $id
-     * @return Comment|\Illuminate\Database\Eloquent\Model
+     * @return \BookStack\Actions\Comment|\Illuminate\Database\Eloquent\Model
      */
     public function getById($id)
     {
@@ -36,9 +36,9 @@ class CommentRepo
 
     /**
      * Create a new comment on an entity.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @param array $data
-     * @return Comment
+     * @return \BookStack\Actions\Comment
      */
     public function create(Entity $entity, $data = [])
     {
@@ -53,7 +53,7 @@ class CommentRepo
 
     /**
      * Update an existing comment.
-     * @param Comment $comment
+     * @param \BookStack\Actions\Comment $comment
      * @param array $input
      * @return mixed
      */
@@ -66,7 +66,7 @@ class CommentRepo
 
     /**
      * Delete a comment from the system.
-     * @param Comment $comment
+     * @param \BookStack\Actions\Comment $comment
      * @return mixed
      */
     public function delete($comment)
@@ -76,7 +76,7 @@ class CommentRepo
 
     /**
      * Get the next local ID relative to the linked entity.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @return int
      */
     protected function getNextLocalId(Entity $entity)
similarity index 85%
rename from app/Tag.php
rename to app/Actions/Tag.php
index 51f622c38f4d4b3245d1bd81e7ae3230943776df..38d0458e46425f53fd13c6421d745c8fe67b0101 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Actions;
+
+use BookStack\Model;
 
 /**
  * Class Attribute
similarity index 91%
rename from app/Repos/TagRepo.php
rename to app/Actions/TagRepo.php
index ab1805ab3a8b9d1ef329174a125a3d72892a3fcb..87023674cb8957608ca94ed5f034116512672102 100644 (file)
@@ -1,8 +1,7 @@
-<?php namespace BookStack\Repos;
+<?php namespace BookStack\Actions;
 
-use BookStack\Tag;
-use BookStack\Entity;
-use BookStack\Services\PermissionService;
+use BookStack\Entities\Entity;
+use BookStack\Auth\Permissions\PermissionService;
 
 /**
  * Class TagRepo
@@ -17,9 +16,9 @@ class TagRepo
 
     /**
      * TagRepo constructor.
-     * @param Tag $attr
-     * @param Entity $ent
-     * @param PermissionService $ps
+     * @param \BookStack\Actions\Tag $attr
+     * @param \BookStack\Entities\Entity $ent
+     * @param \BookStack\Auth\Permissions\PermissionService $ps
      */
     public function __construct(Tag $attr, Entity $ent, PermissionService $ps)
     {
@@ -107,7 +106,7 @@ class TagRepo
 
     /**
      * Save an array of tags to an entity
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @param array $tags
      * @return array|\Illuminate\Database\Eloquent\Collection
      */
@@ -128,7 +127,7 @@ class TagRepo
     /**
      * Create a new Tag instance from user input.
      * @param $input
-     * @return Tag
+     * @return \BookStack\Actions\Tag
      */
     protected function newInstanceFromInput($input)
     {
similarity index 82%
rename from app/View.php
rename to app/Actions/View.php
index c02550c7caa8e9d68157656e26c2dc6cd2ecc100..e9841293b5c72a1d20f045b81e8f95a7a534a9e0 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Actions;
+
+use BookStack\Model;
 
 class View extends Model
 {
similarity index 85%
rename from app/Services/ViewService.php
rename to app/Actions/ViewService.php
index cd869018c2839fd7213b731bed259c58b3aabb61..d5f8002fc04fffe84ef7df57109bc83a4e474a63 100644 (file)
@@ -1,7 +1,7 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Actions;
 
-use BookStack\Entity;
-use BookStack\View;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Entities\Entity;
 
 class ViewService
 {
@@ -10,8 +10,8 @@ class ViewService
 
     /**
      * ViewService constructor.
-     * @param View $view
-     * @param PermissionService $permissionService
+     * @param \BookStack\Actions\View $view
+     * @param \BookStack\Auth\Permissions\PermissionService $permissionService
      */
     public function __construct(View $view, PermissionService $permissionService)
     {
@@ -50,12 +50,13 @@ class ViewService
      * Get the entities with the most views.
      * @param int $count
      * @param int $page
-     * @param bool|false|array $filterModel
+     * @param Entity|false|array $filterModel
      * @param string $action - used for permission checking
      * @return
      */
     public function getPopular($count = 10, $page = 0, $filterModel = false, $action = 'view')
     {
+        // TODO - Standardise input filter
         $skipCount = $count * $page;
         $query = $this->permissionService->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type', $action)
             ->select('*', 'viewable_id', 'viewable_type', \DB::raw('SUM(views) as view_count'))
@@ -65,7 +66,7 @@ class ViewService
         if ($filterModel && is_array($filterModel)) {
             $query->whereIn('viewable_type', $filterModel);
         } else if ($filterModel) {
-            $query->where('viewable_type', '=', get_class($filterModel));
+            $query->where('viewable_type', '=', $filterModel->getMorphClass());
         }
 
         return $query->with('viewable')->skip($skipCount)->take($count)->get()->pluck('viewable');
@@ -89,7 +90,7 @@ class ViewService
             ->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type');
 
         if ($filterModel) {
-            $query = $query->where('viewable_type', '=', get_class($filterModel));
+            $query = $query->where('viewable_type', '=', $filterModel->getMorphClass());
         }
         $query = $query->where('user_id', '=', $user->id);
 
similarity index 93%
rename from app/Services/EmailConfirmationService.php
rename to app/Auth/Access/EmailConfirmationService.php
index 9ee69ef1a4e3434335109f295f396c28241606a5..b14eb8c3f34d926ffbdb24dd648a476020406c19 100644 (file)
@@ -1,11 +1,11 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Auth\Access;
 
 use BookStack\Notifications\ConfirmEmail;
-use BookStack\Repos\UserRepo;
+use BookStack\Auth\UserRepo;
 use Carbon\Carbon;
 use BookStack\Exceptions\ConfirmationEmailException;
 use BookStack\Exceptions\UserRegistrationException;
-use BookStack\User;
+use BookStack\Auth\User;
 use Illuminate\Database\Connection as Database;
 
 class EmailConfirmationService
@@ -16,7 +16,7 @@ class EmailConfirmationService
     /**
      * EmailConfirmationService constructor.
      * @param Database $db
-     * @param UserRepo $users
+     * @param \BookStack\Auth\UserRepo $users
      */
     public function __construct(Database $db, UserRepo $users)
     {
@@ -27,7 +27,7 @@ class EmailConfirmationService
     /**
      * Create new confirmation for a user,
      * Also removes any existing old ones.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @throws ConfirmationEmailException
      */
     public function sendConfirmation(User $user)
@@ -88,7 +88,7 @@ class EmailConfirmationService
 
     /**
      * Delete all email confirmations that belong to a user.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @return mixed
      */
     public function deleteConfirmationsByUser(User $user)
similarity index 98%
rename from app/Services/Ldap.php
rename to app/Auth/Access/Ldap.php
index 29270daf5620d169a096fda4516525923e3dde9d..468c376268d5ae3e884317e641ecf8e4166894b1 100644 (file)
@@ -1,4 +1,4 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Auth\Access;
 
 /**
  * Class Ldap
similarity index 96%
rename from app/Services/LdapService.php
rename to app/Auth/Access/LdapService.php
index 16cee9f7dea1c08e7a5c258a7a2a6812143bc2b0..4fbf29365d758565f53048c56bdce0a96f727887 100644 (file)
@@ -1,9 +1,11 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Auth\Access;
 
+use BookStack\Auth\Access;
 use BookStack\Exceptions\LdapException;
-use BookStack\Repos\UserRepo;
-use BookStack\Role;
-use BookStack\User;
+use BookStack\Auth\UserRepo;
+use BookStack\Auth\Role;
+use BookStack\Auth\User;
+use BookStack\Auth\Access\Ldap;
 use Illuminate\Contracts\Auth\Authenticatable;
 use Illuminate\Database\Eloquent\Builder;
 
@@ -24,9 +26,9 @@ class LdapService
     /**
      * LdapService constructor.
      * @param Ldap $ldap
-     * @param UserRepo $userRepo
+     * @param \BookStack\Auth\UserRepo $userRepo
      */
-    public function __construct(Ldap $ldap, UserRepo $userRepo)
+    public function __construct(Access\Ldap $ldap, UserRepo $userRepo)
     {
         $this->ldap = $ldap;
         $this->config = config('services.ldap');
@@ -298,7 +300,7 @@ class LdapService
 
     /**
      * Sync the LDAP groups to the user roles for the current user
-     * @param \BookStack\User $user
+     * @param \BookStack\Auth\User $user
      * @param string $username
      * @throws LdapException
      */
@@ -347,7 +349,7 @@ class LdapService
     /**
      * Check a role against an array of group names to see if it matches.
      * Checked against role 'external_auth_id' if set otherwise the name of the role.
-     * @param Role $role
+     * @param \BookStack\Auth\Role $role
      * @param array $groupNames
      * @return bool
      */
similarity index 98%
rename from app/Services/SocialAuthService.php
rename to app/Auth/Access/SocialAuthService.php
index 9017dfebe7c4f1f0f39364ee5ec3e0c6e6d10675..005380f5bda18b94ecea86af939d824863402610 100644 (file)
@@ -1,11 +1,11 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Auth\Access;
 
 use BookStack\Exceptions\SocialSignInAccountNotUsed;
 use Laravel\Socialite\Contracts\Factory as Socialite;
 use BookStack\Exceptions\SocialDriverNotConfigured;
 use BookStack\Exceptions\UserRegistrationException;
-use BookStack\Repos\UserRepo;
-use BookStack\SocialAccount;
+use BookStack\Auth\UserRepo;
+use BookStack\Auth\SocialAccount;
 use Laravel\Socialite\Contracts\User as SocialUser;
 
 class SocialAuthService
@@ -19,7 +19,7 @@ class SocialAuthService
 
     /**
      * SocialAuthService constructor.
-     * @param UserRepo      $userRepo
+     * @param \BookStack\Auth\UserRepo      $userRepo
      * @param Socialite     $socialite
      * @param SocialAccount $socialAccount
      */
similarity index 84%
rename from app/EntityPermission.php
rename to app/Auth/Permissions/EntityPermission.php
index 0f49e07f54fe69d228243d5048d44d5f019639a0..ef61e03ceb24d27edb289166d1ec744a95034f67 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Auth\Permissions;
+
+use BookStack\Model;
 
 class EntityPermission extends Model
 {
similarity index 80%
rename from app/JointPermission.php
rename to app/Auth/Permissions/JointPermission.php
index 6d0b0212e0284cb34bc702b7d6598cb16ea4134a..71c1979fcf579516c6527cacb29c6c1f027ebf14 100644 (file)
@@ -1,4 +1,8 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Auth\Permissions;
+
+use BookStack\Entities\Entity;
+use BookStack\Model;
+use BookStack\Auth\Role;
 
 class JointPermission extends Model
 {
similarity index 95%
rename from app/Services/PermissionService.php
rename to app/Auth/Permissions/PermissionService.php
index 045824517e3542b21501ad41d465fcb0800c91a3..aae3980c13e78668024b98ba5628f4d550c7c0dd 100644 (file)
@@ -1,15 +1,16 @@
-<?php namespace BookStack\Services;
-
-use BookStack\Book;
-use BookStack\Bookshelf;
-use BookStack\Chapter;
-use BookStack\Entity;
-use BookStack\EntityPermission;
-use BookStack\JointPermission;
+<?php namespace BookStack\Auth\Permissions;
+
+use BookStack\Auth\Permissions;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Entity;
+use BookStack\Auth\Permissions\EntityPermission;
+use BookStack\Auth\Permissions\JointPermission;
 use BookStack\Ownable;
-use BookStack\Page;
-use BookStack\Role;
-use BookStack\User;
+use BookStack\Entities\Page;
+use BookStack\Auth\Role;
+use BookStack\Auth\User;
 use Illuminate\Database\Connection;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Query\Builder as QueryBuilder;
@@ -44,12 +45,12 @@ class PermissionService
      * @param Connection $db
      * @param Bookshelf $bookshelf
      * @param Book $book
-     * @param Chapter $chapter
-     * @param Page $page
+     * @param \BookStack\Entities\Chapter $chapter
+     * @param \BookStack\Entities\Page $page
      */
     public function __construct(
         JointPermission $jointPermission,
-        EntityPermission $entityPermission,
+        Permissions\EntityPermission $entityPermission,
         Role $role,
         Connection $db,
         Bookshelf $bookshelf,
@@ -78,7 +79,7 @@ class PermissionService
 
     /**
      * Prepare the local entity cache and ensure it's empty
-     * @param Entity[] $entities
+     * @param \BookStack\Entities\Entity[] $entities
      */
     protected function readyEntityCache($entities = [])
     {
@@ -115,7 +116,7 @@ class PermissionService
     /**
      * Get a chapter via ID, Checks local cache
      * @param $chapterId
-     * @return Book
+     * @return \BookStack\Entities\Book
      */
     protected function getChapter($chapterId)
     {
@@ -234,7 +235,7 @@ class PermissionService
 
     /**
      * Rebuild the entity jointPermissions for a particular entity.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @throws \Throwable
      */
     public function buildJointPermissionsForEntity(Entity $entity)
@@ -329,7 +330,7 @@ class PermissionService
 
     /**
      * Delete all of the entity jointPermissions for a list of entities.
-     * @param Entity[] $entities
+     * @param \BookStack\Entities\Entity[] $entities
      * @throws \Throwable
      */
     protected function deleteManyJointPermissionsForEntities($entities)
@@ -410,7 +411,7 @@ class PermissionService
 
     /**
      * Get the actions related to an entity.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @return array
      */
     protected function getActions(Entity $entity)
@@ -496,7 +497,7 @@ class PermissionService
     /**
      * Create an array of data with the information of an entity jointPermissions.
      * Used to build data for bulk insertion.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @param Role $role
      * @param $action
      * @param $permissionAll
@@ -554,7 +555,7 @@ class PermissionService
     /**
      * Check if an entity has restrictions set on itself or its
      * parent tree.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @param $action
      * @return bool|mixed
      */
@@ -635,7 +636,7 @@ class PermissionService
     /**
      * Add restrictions for a generic entity
      * @param string $entityType
-     * @param Builder|Entity $query
+     * @param Builder|\BookStack\Entities\Entity $query
      * @param string $action
      * @return Builder
      */
@@ -703,12 +704,13 @@ class PermissionService
         $this->currentAction = 'view';
         $tableDetails = ['tableName' => $tableName, 'entityIdColumn' => $entityIdColumn];
 
-        $q = $query->where(function ($query) use ($tableDetails) {
-            $query->where(function ($query) use (&$tableDetails) {
-                $query->whereExists(function ($permissionQuery) use (&$tableDetails) {
+        $pageMorphClass = $this->page->getMorphClass();
+        $q = $query->where(function ($query) use ($tableDetails, $pageMorphClass) {
+            $query->where(function ($query) use (&$tableDetails, $pageMorphClass) {
+                $query->whereExists(function ($permissionQuery) use (&$tableDetails, $pageMorphClass) {
                     $permissionQuery->select('id')->from('joint_permissions')
                         ->whereRaw('joint_permissions.entity_id=' . $tableDetails['tableName'] . '.' . $tableDetails['entityIdColumn'])
-                        ->where('entity_type', '=', 'Bookstack\\Page')
+                        ->where('entity_type', '=', $pageMorphClass)
                         ->where('action', '=', $this->currentAction)
                         ->whereIn('role_id', $this->getRoles())
                         ->where(function ($query) {
@@ -726,7 +728,7 @@ class PermissionService
 
     /**
      * Get the current user
-     * @return User
+     * @return \BookStack\Auth\User
      */
     private function currentUser()
     {
similarity index 93%
rename from app/Repos/PermissionsRepo.php
rename to app/Auth/Permissions/PermissionsRepo.php
index 68c9270bec9ab54af7194ba9f9b58cb532f974a5..98a8a9f14336ae48bd56171096b05d8761ea3ef1 100644 (file)
@@ -1,9 +1,10 @@
-<?php namespace BookStack\Repos;
+<?php namespace BookStack\Auth\Permissions;
 
+use BookStack\Auth\Permissions;
 use BookStack\Exceptions\PermissionsException;
-use BookStack\RolePermission;
-use BookStack\Role;
-use BookStack\Services\PermissionService;
+use BookStack\Auth\Permissions\RolePermission;
+use BookStack\Auth\Role;
+use BookStack\Auth\Permissions\PermissionService;
 use Setting;
 
 class PermissionsRepo
@@ -19,9 +20,9 @@ class PermissionsRepo
      * PermissionsRepo constructor.
      * @param RolePermission $permission
      * @param Role $role
-     * @param PermissionService $permissionService
+     * @param \BookStack\Auth\Permissions\PermissionService $permissionService
      */
-    public function __construct(RolePermission $permission, Role $role, PermissionService $permissionService)
+    public function __construct(RolePermission $permission, Role $role, Permissions\PermissionService $permissionService)
     {
         $this->permission = $permission;
         $this->role = $role;
similarity index 83%
rename from app/RolePermission.php
rename to app/Auth/Permissions/RolePermission.php
index 366c16749f13d79801f040bc006e7084bff3f71d..8b07b3073bf9add0eb1f4a216844c69e05235832 100644 (file)
@@ -1,4 +1,7 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Auth\Permissions;
+
+use BookStack\Auth\Role;
+use BookStack\Model;
 
 class RolePermission extends Model
 {
similarity index 77%
rename from app/Role.php
rename to app/Auth/Role.php
index 54a5bb18016afc69a4d01600372a68add9713f67..b32954767086ed5808a161d527bb586739472201 100644 (file)
@@ -1,4 +1,8 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Auth;
+
+use BookStack\Auth\Permissions\JointPermission;
+use BookStack\Model;
+use BookStack\Auth\Permissions\RolePermission;
 
 class Role extends Model
 {
@@ -27,7 +31,7 @@ class Role extends Model
      */
     public function permissions()
     {
-        return $this->belongsToMany(RolePermission::class, 'permission_role', 'role_id', 'permission_id');
+        return $this->belongsToMany(Permissions\RolePermission::class, 'permission_role', 'role_id', 'permission_id');
     }
 
     /**
@@ -48,18 +52,18 @@ class Role extends Model
 
     /**
      * Add a permission to this role.
-     * @param RolePermission $permission
+     * @param \BookStack\Auth\Permissions\RolePermission $permission
      */
-    public function attachPermission(RolePermission $permission)
+    public function attachPermission(Permissions\RolePermission $permission)
     {
         $this->permissions()->attach($permission->id);
     }
 
     /**
      * Detach a single permission from this role.
-     * @param RolePermission $permission
+     * @param \BookStack\Auth\Permissions\RolePermission $permission
      */
-    public function detachPermission(RolePermission $permission)
+    public function detachPermission(Permissions\RolePermission $permission)
     {
         $this->permissions()->detach($permission->id);
     }
similarity index 71%
rename from app/SocialAccount.php
rename to app/Auth/SocialAccount.php
index fdba6a04fda2bc90ef439b68384457cf585d4b8b..7d0dbaafc60245a5247e5b61a8f66db2ef327371 100644 (file)
@@ -1,4 +1,7 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Auth;
+
+use BookStack\Auth\User;
+use BookStack\Model;
 
 class SocialAccount extends Model
 {
similarity index 97%
rename from app/User.php
rename to app/Auth/User.php
index d1e9b38a775e5c2e292bd56a5049fabae9823706..0f3de122c91a00f3a1f3df0190059127bcc5ff57 100644 (file)
@@ -1,6 +1,10 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Auth;
 
+use BookStack\Uploads\Image;
+use BookStack\Model;
 use BookStack\Notifications\ResetPassword;
+use BookStack\Auth\Role;
+use BookStack\Auth\SocialAccount;
 use Illuminate\Auth\Authenticatable;
 use Illuminate\Auth\Passwords\CanResetPassword;
 use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
similarity index 94%
rename from app/Repos/UserRepo.php
rename to app/Auth/UserRepo.php
index 5143366fe12ee5c41cabcd35cc59a43c5e060940..87c0328d6ffcc6d33fdfb1a87f00ad7a70e7d65e 100644 (file)
@@ -1,10 +1,11 @@
-<?php namespace BookStack\Repos;
+<?php namespace BookStack\Auth;
 
 use Activity;
+use BookStack\Entities\EntityRepo;
 use BookStack\Exceptions\NotFoundException;
-use BookStack\Image;
-use BookStack\Role;
-use BookStack\User;
+use BookStack\Uploads\Image;
+use BookStack\Auth\Role;
+use BookStack\Auth\User;
 use Exception;
 use Images;
 
@@ -80,7 +81,7 @@ class UserRepo
      * Creates a new user and attaches a role to them.
      * @param array $data
      * @param boolean $verifyEmail
-     * @return User
+     * @return \BookStack\Auth\User
      */
     public function registerNew(array $data, $verifyEmail = false)
     {
@@ -122,7 +123,7 @@ class UserRepo
 
     /**
      * Checks if the give user is the only admin.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @return bool
      */
     public function isOnlyAdmin(User $user)
@@ -142,7 +143,7 @@ class UserRepo
      * Create a new basic instance of user.
      * @param array $data
      * @param boolean $verifyEmail
-     * @return User
+     * @return \BookStack\Auth\User
      */
     public function create(array $data, $verifyEmail = false)
     {
@@ -157,7 +158,7 @@ class UserRepo
 
     /**
      * Remove the given user from storage, Delete all related content.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @throws Exception
      */
     public function destroy(User $user)
@@ -174,7 +175,7 @@ class UserRepo
 
     /**
      * Get the latest activity for a user.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @param int $count
      * @param int $page
      * @return array
@@ -186,7 +187,7 @@ class UserRepo
 
     /**
      * Get the recently created content for this given user.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @param int $count
      * @return mixed
      */
@@ -207,7 +208,7 @@ class UserRepo
 
     /**
      * Get asset created counts for the give user.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @return array
      */
     public function getAssetCounts(User $user)
index 8e1539702bd23e29b67b63c9bbd4ca01a2c38287..f2e2d9fbd4465a3544e96e54c4649fb54fe81e05 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\Services\ImageService;
+use BookStack\Uploads\ImageService;
 use Illuminate\Console\Command;
 use Symfony\Component\Console\Output\OutputInterface;
 
@@ -30,7 +30,7 @@ class CleanupImages extends Command
 
     /**
      * Create a new command instance.
-     * @param ImageService $imageService
+     * @param \BookStack\Uploads\ImageService $imageService
      */
     public function __construct(ImageService $imageService)
     {
index 66babd9a94bfe9c4631d5dbeaedbb9e559ff02ae..932ba7ddd19538983bab0a142692985e85ce4f56 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\Activity;
+use BookStack\Actions\Activity;
 use Illuminate\Console\Command;
 
 class ClearActivity extends Command
index f0c8a5e85b96ea49afadea95166bcfac07bde9e5..15f1fcc0a7138f057d3894c727cb62774a0ef37b 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\PageRevision;
+use BookStack\Entities\PageRevision;
 use Illuminate\Console\Command;
 
 class ClearRevisions extends Command
index c7a9969e80525dbc6251236aba50e8c4bec041b3..6bfc544698fdc2dba39ddae88f18ac4a154fc0c1 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\Repos\UserRepo;
+use BookStack\Auth\UserRepo;
 use Illuminate\Console\Command;
 
 class CreateAdmin extends Command
index 6dba83e1379a38198e34dce14ccf4734647ab235..68c5bb738178f6b6fdfdbfeb0dec2d64dc5371f7 100644 (file)
@@ -2,8 +2,8 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\User;
-use BookStack\Repos\UserRepo;
+use BookStack\Auth\User;
+use BookStack\Auth\UserRepo;
 use Illuminate\Console\Command;
 
 class DeleteUsers extends Command
index 9cd577a17864b5c3c759f24ae2a07e7fdb6f4f44..430b8fcb05fdad572a4f587548d271a230ea8394 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\Services\PermissionService;
+use BookStack\Auth\Permissions\PermissionService;
 use Illuminate\Console\Command;
 
 class RegeneratePermissions extends Command
@@ -31,7 +31,7 @@ class RegeneratePermissions extends Command
     /**
      * Create a new command instance.
      *
-     * @param PermissionService $permissionService
+     * @param \BookStack\Auth\\BookStack\Auth\Permissions\PermissionService $permissionService
      */
     public function __construct(PermissionService $permissionService)
     {
index 1a0005544bb5fa8a789dc21b6ab6c628fccafa9f..d27d73edc01dcbf55443f9bbf8f916539d0c5295 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace BookStack\Console\Commands;
 
-use BookStack\Services\SearchService;
+use BookStack\Entities\SearchService;
 use Illuminate\Console\Command;
 
 class RegenerateSearch extends Command
@@ -26,7 +26,7 @@ class RegenerateSearch extends Command
     /**
      * Create a new command instance.
      *
-     * @param SearchService $searchService
+     * @param \BookStack\Entities\SearchService $searchService
      */
     public function __construct(SearchService $searchService)
     {
similarity index 91%
rename from app/Book.php
rename to app/Entities/Book.php
index 4e944ce1088fb1254831f6537df58d2edd2f4544..b8a29322d6b58f52bc142104312e79209a935f0b 100644 (file)
@@ -1,4 +1,7 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Entities;
+
+use BookStack\Uploads\Image;
+use BookStack\Entities\Page;
 
 class Book extends Entity
 {
@@ -6,6 +9,15 @@ class Book extends Entity
 
     protected $fillable = ['name', 'description', 'image_id'];
 
+    /**
+     * Get the morph class for this model.
+     * @return string
+     */
+    public function getMorphClass()
+    {
+        return 'BookStack\\Book';
+    }
+
     /**
      * Get the url for this book.
      * @param string|bool $path
similarity index 91%
rename from app/Bookshelf.php
rename to app/Entities/Bookshelf.php
index 9468575c3b9473e557f46ba0e278ba5d61b1acdb..c37e36b59f8aefb125c827b3fbdff227708c9314 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Entities;
+
+use BookStack\Uploads\Image;
 
 class Bookshelf extends Entity
 {
@@ -8,6 +10,15 @@ class Bookshelf extends Entity
 
     protected $fillable = ['name', 'description', 'image_id'];
 
+    /**
+     * Get the morph class for this model.
+     * @return string
+     */
+    public function getMorphClass()
+    {
+        return 'BookStack\\Bookshelf';
+    }
+
     /**
      * Get the books in this shelf.
      * Should not be used directly since does not take into account permissions.
similarity index 86%
rename from app/Chapter.php
rename to app/Entities/Chapter.php
index 88b4c134cf9d7b0a99d54058a7f21526acf4f956..8638e3c9e4f6854cc83cf810283a24e1d64a3770 100644 (file)
@@ -1,4 +1,8 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Entities;
+
+use BookStack\Entities\Book;
+use BookStack\Entities\Entity;
+use BookStack\Entities\Page;
 
 class Chapter extends Entity
 {
@@ -6,6 +10,15 @@ class Chapter extends Entity
 
     protected $fillable = ['name', 'description', 'priority', 'book_id'];
 
+    /**
+     * Get the morph class for this model.
+     * @return string
+     */
+    public function getMorphClass()
+    {
+        return 'BookStack\\Chapter';
+    }
+
     /**
      * Get the book this chapter is within.
      * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
similarity index 88%
rename from app/Entity.php
rename to app/Entities/Entity.php
index 252a3e07ab5a04f87acdc377a550aebdd92b1164..87d679fdbeea60578bb6a7fd9894a5232c04545c 100644 (file)
@@ -1,5 +1,12 @@
-<?php namespace BookStack;
-
+<?php namespace BookStack\Entities;
+
+use BookStack\Actions\Activity;
+use BookStack\Actions\Comment;
+use BookStack\Auth\Permissions\EntityPermission;
+use BookStack\Auth\Permissions\JointPermission;
+use BookStack\Ownable;
+use BookStack\Actions\Tag;
+use BookStack\Actions\View;
 use Illuminate\Database\Eloquent\Relations\MorphMany;
 
 class Entity extends Ownable
@@ -15,6 +22,17 @@ class Entity extends Ownable
      */
     public $searchFactor = 1.0;
 
+    /**
+     * Get the morph class for this model.
+     * Set here since, due to folder changes, the namespace used
+     * in the database no longer matches the class namespace.
+     * @return string
+     */
+    public function getMorphClass()
+    {
+        return 'BookStack\\Entity';
+    }
+
     /**
      * Compares this entity to another given entity.
      * Matches by comparing class and id.
@@ -158,7 +176,7 @@ class Entity extends Ownable
             return null;
         }
 
-        return app('BookStack\\' . $className);
+        return app('BookStack\\Entities\\' . $className);
     }
 
     /**
diff --git a/app/Entities/EntityProvider.php b/app/Entities/EntityProvider.php
new file mode 100644 (file)
index 0000000..51e3ad0
--- /dev/null
@@ -0,0 +1,7 @@
+<?php namespace BookStack\Entities;
+
+
+class EntityProvider
+{
+    // TODO -
+}
\ No newline at end of file
similarity index 94%
rename from app/Repos/EntityRepo.php
rename to app/Entities/EntityRepo.php
index d6736886ee2cbf3a4feb4293621957021c8b4cc1..2031807eee02fb7ceb4347c18626e505ef0591d3 100644 (file)
@@ -1,17 +1,18 @@
-<?php namespace BookStack\Repos;
+<?php namespace BookStack\Entities;
 
-use BookStack\Book;
-use BookStack\Bookshelf;
-use BookStack\Chapter;
-use BookStack\Entity;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Entity;
 use BookStack\Exceptions\NotFoundException;
 use BookStack\Exceptions\NotifyException;
-use BookStack\Page;
-use BookStack\PageRevision;
-use BookStack\Services\AttachmentService;
-use BookStack\Services\PermissionService;
-use BookStack\Services\SearchService;
-use BookStack\Services\ViewService;
+use BookStack\Entities\Page;
+use BookStack\Entities\PageRevision;
+use BookStack\Actions\TagRepo;
+use BookStack\Uploads\AttachmentService;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Entities\SearchService;
+use BookStack\Actions\ViewService;
 use Carbon\Carbon;
 use DOMDocument;
 use DOMXPath;
@@ -20,12 +21,12 @@ use Illuminate\Support\Collection;
 class EntityRepo
 {
     /**
-     * @var Bookshelf
+     * @var \BookStack\Entities\Bookshelf
      */
     public $bookshelf;
 
     /**
-     * @var Book $book
+     * @var \BookStack\Entities\Book $book
      */
     public $book;
 
@@ -61,7 +62,7 @@ class EntityRepo
     protected $viewService;
 
     /**
-     * @var TagRepo
+     * @var \BookStack\Actions\TagRepo
      */
     protected $tagRepo;
 
@@ -72,14 +73,14 @@ class EntityRepo
 
     /**
      * EntityRepo constructor.
-     * @param Bookshelf $bookshelf
-     * @param Book $book
+     * @param \BookStack\Entities\Bookshelf $bookshelf
+     * @param \BookStack\Entities\Book $book
      * @param Chapter $chapter
-     * @param Page $page
-     * @param PageRevision $pageRevision
+     * @param \BookStack\Entities\Page $page
+     * @param \BookStack\Entities\PageRevision $pageRevision
      * @param ViewService $viewService
      * @param PermissionService $permissionService
-     * @param TagRepo $tagRepo
+     * @param \BookStack\Actions\TagRepo $tagRepo
      * @param SearchService $searchService
      */
     public function __construct(
@@ -113,7 +114,7 @@ class EntityRepo
     /**
      * Get an entity instance via type.
      * @param $type
-     * @return Entity
+     * @return \BookStack\Entities\Entity
      */
     protected function getEntity($type)
     {
@@ -152,7 +153,7 @@ class EntityRepo
      * @param integer $id
      * @param bool $allowDrafts
      * @param bool $ignorePermissions
-     * @return Entity
+     * @return \BookStack\Entities\Entity
      */
     public function getById($type, $id, $allowDrafts = false, $ignorePermissions = false)
     {
@@ -168,7 +169,7 @@ class EntityRepo
      * @param string $type
      * @param string $slug
      * @param string|bool $bookSlug
-     * @return Entity
+     * @return \BookStack\Entities\Entity
      * @throws NotFoundException
      */
     public function getBySlug($type, $slug, $bookSlug = false)
@@ -343,7 +344,7 @@ class EntityRepo
     /**
      * Get the child items for a chapter sorted by priority but
      * with draft items floated to the top.
-     * @param Bookshelf $bookshelf
+     * @param \BookStack\Entities\Bookshelf $bookshelf
      * @return \Illuminate\Database\Eloquent\Collection|static[]
      */
     public function getBookshelfChildren(Bookshelf $bookshelf)
@@ -355,7 +356,7 @@ class EntityRepo
      * Get all child objects of a book.
      * Returns a sorted collection of Pages and Chapters.
      * Loads the book slug onto child elements to prevent access database access for getting the slug.
-     * @param Book $book
+     * @param \BookStack\Entities\Book $book
      * @param bool $filterDrafts
      * @param bool $renderPages
      * @return mixed
@@ -368,13 +369,13 @@ class EntityRepo
         $tree = [];
 
         foreach ($q as $index => $rawEntity) {
-            if ($rawEntity->entity_type === 'BookStack\\Page') {
+            if ($rawEntity->entity_type ===  $this->page->getMorphClass()) {
                 $entities[$index] = $this->page->newFromBuilder($rawEntity);
                 if ($renderPages) {
                     $entities[$index]->html = $rawEntity->html;
                     $entities[$index]->html = $this->renderPage($entities[$index]);
                 };
-            } else if ($rawEntity->entity_type === 'BookStack\\Chapter') {
+            } else if ($rawEntity->entity_type === $this->chapter->getMorphClass()) {
                 $entities[$index] = $this->chapter->newFromBuilder($rawEntity);
                 $key = $entities[$index]->entity_type . ':' . $entities[$index]->id;
                 $parents[$key] = $entities[$index];
@@ -390,7 +391,7 @@ class EntityRepo
             if ($entity->chapter_id === 0 || $entity->chapter_id === '0') {
                 continue;
             }
-            $parentKey = 'BookStack\\Chapter:' . $entity->chapter_id;
+            $parentKey = $this->chapter->getMorphClass() . ':' . $entity->chapter_id;
             if (!isset($parents[$parentKey])) {
                 $tree[] = $entity;
                 continue;
@@ -405,7 +406,7 @@ class EntityRepo
     /**
      * Get the child items for a chapter sorted by priority but
      * with draft items floated to the top.
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Chapter $chapter
      * @return \Illuminate\Database\Eloquent\Collection|static[]
      */
     public function getChapterChildren(Chapter $chapter)
@@ -417,7 +418,7 @@ class EntityRepo
 
     /**
      * Get the next sequential priority for a new child element in the given book.
-     * @param Book $book
+     * @param \BookStack\Entities\Book $book
      * @return int
      */
     public function getNewBookPriority(Book $book)
@@ -428,7 +429,7 @@ class EntityRepo
 
     /**
      * Get a new priority for a new page to be added to the given chapter.
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Chapter $chapter
      * @return int
      */
     public function getNewChapterPriority(Chapter $chapter)
@@ -477,7 +478,7 @@ class EntityRepo
     /**
      * Updates entity restrictions from a request
      * @param $request
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      */
     public function updateEntityPermissionsFromRequest($request, Entity $entity)
     {
@@ -507,7 +508,7 @@ class EntityRepo
      * @param string $type
      * @param array $input
      * @param bool|Book $book
-     * @return Entity
+     * @return \BookStack\Entities\Entity
      */
     public function createFromInput($type, $input = [], $book = false)
     {
@@ -531,9 +532,9 @@ class EntityRepo
      * Update entity details from request input.
      * Used for books and chapters
      * @param string $type
-     * @param Entity $entityModel
+     * @param \BookStack\Entities\Entity $entityModel
      * @param array $input
-     * @return Entity
+     * @return \BookStack\Entities\Entity
      */
     public function updateFromInput($type, Entity $entityModel, $input = [])
     {
@@ -556,7 +557,7 @@ class EntityRepo
     /**
      * Sync the books assigned to a shelf from a comma-separated list
      * of book IDs.
-     * @param Bookshelf $shelf
+     * @param \BookStack\Entities\Bookshelf $shelf
      * @param string $books
      */
     public function updateShelfBooks(Bookshelf $shelf, string $books)
@@ -581,7 +582,7 @@ class EntityRepo
      * @param integer $newBookId
      * @param Entity $entity
      * @param bool $rebuildPermissions
-     * @return Entity
+     * @return \BookStack\Entities\Entity
      */
     public function changeBook($type, $newBookId, Entity $entity, $rebuildPermissions = false)
     {
@@ -639,7 +640,7 @@ class EntityRepo
      * Get a new draft page instance.
      * @param Book $book
      * @param Chapter|bool $chapter
-     * @return Page
+     * @return \BookStack\Entities\Page
      */
     public function getDraftPage(Book $book, $chapter = false)
     {
@@ -689,10 +690,10 @@ class EntityRepo
 
     /**
      * Create a copy of a page in a new location with a new name.
-     * @param Page $page
-     * @param Entity $newParent
+     * @param \BookStack\Entities\Page $page
+     * @param \BookStack\Entities\Entity $newParent
      * @param string $newName
-     * @return Page
+     * @return \BookStack\Entities\Page
      */
     public function copyPage(Page $page, Entity $newParent, $newName = '')
     {
@@ -728,7 +729,7 @@ class EntityRepo
      * Saves a page revision into the system.
      * @param Page $page
      * @param null|string $summary
-     * @return PageRevision
+     * @return \BookStack\Entities\PageRevision
      */
     public function savePageRevision(Page $page, $summary = null)
     {
@@ -902,7 +903,7 @@ class EntityRepo
 
     /**
      * Get the plain text version of a page's content.
-     * @param Page $page
+     * @param \BookStack\Entities\Page $page
      * @return string
      */
     public function pageToPlainText(Page $page)
@@ -971,10 +972,10 @@ class EntityRepo
 
     /**
      * Updates a page with any fillable data and saves it into the database.
-     * @param Page $page
+     * @param \BookStack\Entities\Page $page
      * @param int $book_id
      * @param array $input
-     * @return Page
+     * @return \BookStack\Entities\Page
      */
     public function updatePage(Page $page, $book_id, $input)
     {
@@ -1019,7 +1020,7 @@ class EntityRepo
 
     /**
      * The base query for getting user update drafts.
-     * @param Page $page
+     * @param \BookStack\Entities\Page $page
      * @param $userId
      * @return mixed
      */
@@ -1033,7 +1034,7 @@ class EntityRepo
 
     /**
      * Checks whether a user has a draft version of a particular page or not.
-     * @param Page $page
+     * @param \BookStack\Entities\Page $page
      * @param $userId
      * @return bool
      */
@@ -1072,7 +1073,7 @@ class EntityRepo
      * Checks for edits since last page updated.
      * Passing in a minuted range will check for edits
      * within the last x minutes.
-     * @param Page $page
+     * @param \BookStack\Entities\Page $page
      * @param null $minRange
      * @return bool
      */
@@ -1108,7 +1109,7 @@ class EntityRepo
      * @param Page $page
      * @param Book $book
      * @param  int $revisionId
-     * @return Page
+     * @return \BookStack\Entities\Page
      */
     public function restorePageRevision(Page $page, Book $book, $revisionId)
     {
@@ -1184,8 +1185,8 @@ class EntityRepo
 
     /**
      * Change the page's parent to the given entity.
-     * @param Page $page
-     * @param Entity $parent
+     * @param \BookStack\Entities\Page $page
+     * @param \BookStack\Entities\Entity $parent
      */
     public function changePageParent(Page $page, Entity $parent)
     {
@@ -1201,7 +1202,7 @@ class EntityRepo
 
     /**
      * Destroy a bookshelf instance
-     * @param Bookshelf $shelf
+     * @param \BookStack\Entities\Bookshelf $shelf
      * @throws \Throwable
      */
     public function destroyBookshelf(Bookshelf $shelf)
@@ -1212,7 +1213,7 @@ class EntityRepo
 
     /**
      * Destroy the provided book and all its child entities.
-     * @param Book $book
+     * @param \BookStack\Entities\Book $book
      * @throws NotifyException
      * @throws \Throwable
      */
@@ -1230,7 +1231,7 @@ class EntityRepo
 
     /**
      * Destroy a chapter and its relations.
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Chapter $chapter
      * @throws \Throwable
      */
     public function destroyChapter(Chapter $chapter)
@@ -1272,7 +1273,7 @@ class EntityRepo
 
     /**
      * Destroy or handle the common relations connected to an entity.
-     * @param Entity $entity
+     * @param \BookStack\Entities\Entity $entity
      * @throws \Throwable
      */
     protected function destroyEntityCommonRelations(Entity $entity)
@@ -1289,7 +1290,7 @@ class EntityRepo
     /**
      * Copy the permissions of a bookshelf to all child books.
      * Returns the number of books that had permissions updated.
-     * @param Bookshelf $bookshelf
+     * @param \BookStack\Entities\Bookshelf $bookshelf
      * @return int
      * @throws \Throwable
      */
similarity index 94%
rename from app/Services/ExportService.php
rename to app/Entities/ExportService.php
index 01e87f1678ebf7a2616b54b21e9b6cfc9d564a15..fc0e4d11491185ce19fb0fc8f44ad19c3a8cb7a9 100644 (file)
@@ -1,9 +1,10 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Entities;
 
-use BookStack\Book;
-use BookStack\Chapter;
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
+use BookStack\Entities\Book;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
+use BookStack\Uploads\ImageService;
 
 class ExportService
 {
@@ -24,7 +25,7 @@ class ExportService
     /**
      * Convert a page to a self-contained HTML file.
      * Includes required CSS & image content. Images are base64 encoded into the HTML.
-     * @param Page $page
+     * @param \BookStack\Entities\Page $page
      * @return mixed|string
      * @throws \Throwable
      */
@@ -39,7 +40,7 @@ class ExportService
 
     /**
      * Convert a chapter to a self-contained HTML file.
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Chapter $chapter
      * @return mixed|string
      * @throws \Throwable
      */
@@ -89,7 +90,7 @@ class ExportService
 
     /**
      * Convert a chapter to a PDF file.
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Chapter $chapter
      * @return mixed|string
      * @throws \Throwable
      */
@@ -108,7 +109,7 @@ class ExportService
 
     /**
      * Convert a book to a PDF file
-     * @param Book $book
+     * @param \BookStack\Entities\Book $book
      * @return string
      * @throws \Throwable
      */
@@ -208,7 +209,7 @@ class ExportService
 
     /**
      * Convert a chapter into a plain text string.
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Chapter $chapter
      * @return string
      */
     public function chapterToPlainText(Chapter $chapter)
similarity index 89%
rename from app/Page.php
rename to app/Entities/Page.php
index 5c03e7d66f610d21b8499370307314b924bcca3d..59de338cb79494e3de328d8cb7fdbe680ed07a0d 100644 (file)
@@ -1,4 +1,10 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Entities;
+
+use BookStack\Uploads\Attachment;
+use BookStack\Entities\Book;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Entity;
+use BookStack\Entities\PageRevision;
 
 class Page extends Entity
 {
@@ -8,6 +14,15 @@ class Page extends Entity
 
     public $textField = 'text';
 
+    /**
+     * Get the morph class for this model.
+     * @return string
+     */
+    public function getMorphClass()
+    {
+        return 'BookStack\\Page';
+    }
+
     /**
      * Converts this page into a simplified array.
      * @return mixed
@@ -115,7 +130,7 @@ class Page extends Entity
 
     /**
      * Get the current revision for the page if existing
-     * @return \BookStack\PageRevision|null
+     * @return \BookStack\Entities\PageRevision|null
      */
     public function getCurrentRevision()
     {
similarity index 93%
rename from app/PageRevision.php
rename to app/Entities/PageRevision.php
index ffcc4f9d25b26ec81eb6fc89db62b4393666e0a6..502a71588134ebdb02960213d3e9800da6394fef 100644 (file)
@@ -1,4 +1,8 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Entities;
+
+use BookStack\Entities\Page;
+use BookStack\Model;
+use BookStack\Auth\User;
 
 class PageRevision extends Model
 {
similarity index 97%
rename from app/Services/SearchService.php
rename to app/Entities/SearchService.php
index dfde645a1727bcd2c97a60a5090f82919bfd4fcd..0bfdab7eabe2c7237084b3a545fe7730b3ca9bdb 100644 (file)
@@ -1,11 +1,12 @@
-<?php namespace BookStack\Services;
-
-use BookStack\Book;
-use BookStack\Bookshelf;
-use BookStack\Chapter;
-use BookStack\Entity;
-use BookStack\Page;
-use BookStack\SearchTerm;
+<?php namespace BookStack\Entities;
+
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Entity;
+use BookStack\Entities\Page;
+use BookStack\Entities\SearchTerm;
+use BookStack\Auth\Permissions\PermissionService;
 use Illuminate\Database\Connection;
 use Illuminate\Database\Query\Builder;
 use Illuminate\Database\Query\JoinClause;
@@ -36,8 +37,8 @@ class SearchService
      * SearchService constructor.
      * @param SearchTerm $searchTerm
      * @param Bookshelf $bookshelf
-     * @param Book $book
-     * @param Chapter $chapter
+     * @param \BookStack\Entities\Book $book
+     * @param \BookStack\Entities\Chapter $chapter
      * @param Page $page
      * @param Connection $db
      * @param PermissionService $permissionService
@@ -352,7 +353,7 @@ class SearchService
 
     /**
      * Index multiple Entities at once
-     * @param Entity[] $entities
+     * @param \BookStack\Entities\Entity[] $entities
      */
     protected function indexEntities($entities)
     {
similarity index 85%
rename from app/SearchTerm.php
rename to app/Entities/SearchTerm.php
index ee6c72190cbb254108d5c5aa6f8dbc879b2e80c4..886c4dbc1fe4a4041859357ebe293b8ecb79177d 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Entities;
+
+use BookStack\Model;
 
 class SearchTerm extends Model
 {
similarity index 85%
rename from app/Services/Facades/Activity.php
rename to app/Facades/Activity.php
index d24e39dbac3d47d5a9536e7c6f58fa4f2895ab98..30e4b785fdb0bdb6712fcc8b448070bd23ba7345 100644 (file)
@@ -1,4 +1,4 @@
-<?php namespace BookStack\Services\Facades;
+<?php namespace BookStack\Facades;
 
 use Illuminate\Support\Facades\Facade;
 
similarity index 85%
rename from app/Services/Facades/Images.php
rename to app/Facades/Images.php
index ff455287c4cc0112c639fc457143d87cb1deefbf..fdbd35a99ad321a680a6619dc22c8db797e9f14c 100644 (file)
@@ -1,4 +1,4 @@
-<?php namespace BookStack\Services\Facades;
+<?php namespace BookStack\Facades;
 
 use Illuminate\Support\Facades\Facade;
 
similarity index 85%
rename from app/Services/Facades/Setting.php
rename to app/Facades/Setting.php
index ec6e484dae33659b2094c372d649dc557a29d0de..80feef89b24dcfe3d784dc097b7416fe0edec72a 100644 (file)
@@ -1,4 +1,4 @@
-<?php namespace BookStack\Services\Facades;
+<?php namespace BookStack\Facades;
 
 use Illuminate\Support\Facades\Facade;
 
similarity index 85%
rename from app/Services/Facades/Views.php
rename to app/Facades/Views.php
index f990bc171149053b95cedb82ac86ddbedb857f1a..f5357112e389c037c345382c13ea8e83031cf9ae 100644 (file)
@@ -1,4 +1,4 @@
-<?php namespace BookStack\Services\Facades;
+<?php namespace BookStack\Facades;
 
 use Illuminate\Support\Facades\Facade;
 
index 74644aa2fd848f0cde64171d3c1e2bd31f2c6c11..535543177c7c925e5bd74203427f097075d28dd5 100644 (file)
@@ -1,10 +1,10 @@
 <?php namespace BookStack\Http\Controllers;
 
 use BookStack\Exceptions\FileUploadException;
-use BookStack\Attachment;
+use BookStack\Uploads\Attachment;
 use BookStack\Exceptions\NotFoundException;
-use BookStack\Repos\EntityRepo;
-use BookStack\Services\AttachmentService;
+use BookStack\Entities\EntityRepo;
+use BookStack\Uploads\AttachmentService;
 use Illuminate\Http\Request;
 
 class AttachmentController extends Controller
@@ -15,7 +15,7 @@ class AttachmentController extends Controller
 
     /**
      * AttachmentController constructor.
-     * @param AttachmentService $attachmentService
+     * @param \BookStack\Uploads\AttachmentService $attachmentService
      * @param Attachment $attachment
      * @param EntityRepo $entityRepo
      */
index c0541c9e29c4c78fa32ef4197d5f7257e06eff3f..8ef46c2985a49ee6f720aab8279dd4f67553b749 100644 (file)
@@ -4,9 +4,9 @@ namespace BookStack\Http\Controllers\Auth;
 
 use BookStack\Exceptions\AuthException;
 use BookStack\Http\Controllers\Controller;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\LdapService;
-use BookStack\Services\SocialAuthService;
+use BookStack\Auth\UserRepo;
+use BookStack\Auth\Access\LdapService;
+use BookStack\Auth\Access\SocialAuthService;
 use Illuminate\Contracts\Auth\Authenticatable;
 use Illuminate\Foundation\Auth\AuthenticatesUsers;
 use Illuminate\Http\Request;
@@ -43,9 +43,9 @@ class LoginController extends Controller
     /**
      * Create a new controller instance.
      *
-     * @param SocialAuthService $socialAuthService
+     * @param \BookStack\Auth\\BookStack\Auth\Access\SocialAuthService $socialAuthService
      * @param LdapService $ldapService
-     * @param UserRepo $userRepo
+     * @param \BookStack\Auth\UserRepo $userRepo
      */
     public function __construct(SocialAuthService $socialAuthService, LdapService $ldapService, UserRepo $userRepo)
     {
index 385994324eae71e78e0be1c916bc588f678dce7b..dd60c741681e7c98239fa92356a00ccbd748bf88 100644 (file)
@@ -5,11 +5,11 @@ namespace BookStack\Http\Controllers\Auth;
 use BookStack\Exceptions\SocialSignInAccountNotUsed;
 use BookStack\Exceptions\SocialSignInException;
 use BookStack\Exceptions\UserRegistrationException;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\EmailConfirmationService;
-use BookStack\Services\SocialAuthService;
-use BookStack\SocialAccount;
-use BookStack\User;
+use BookStack\Auth\UserRepo;
+use BookStack\Auth\Access\EmailConfirmationService;
+use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Auth\SocialAccount;
+use BookStack\Auth\User;
 use Exception;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
@@ -48,11 +48,11 @@ class RegisterController extends Controller
     /**
      * Create a new controller instance.
      *
-     * @param SocialAuthService $socialAuthService
-     * @param EmailConfirmationService $emailConfirmationService
-     * @param UserRepo $userRepo
+     * @param \BookStack\Auth\Access\SocialAuthService $socialAuthService
+     * @param \BookStack\Auth\EmailConfirmationService $emailConfirmationService
+     * @param \BookStack\Auth\UserRepo $userRepo
      */
-    public function __construct(SocialAuthService $socialAuthService, EmailConfirmationService $emailConfirmationService, UserRepo $userRepo)
+    public function __construct(\BookStack\Auth\Access\SocialAuthService $socialAuthService, \BookStack\Auth\Access\EmailConfirmationService $emailConfirmationService, UserRepo $userRepo)
     {
         $this->middleware('guest')->only(['getRegister', 'postRegister', 'socialRegister']);
         $this->socialAuthService = $socialAuthService;
@@ -119,7 +119,7 @@ class RegisterController extends Controller
     /**
      * Create a new user instance after a valid registration.
      * @param  array  $data
-     * @return User
+     * @return \BookStack\Auth\User
      */
     protected function create(array $data)
     {
index ea39a771ec048529bab8995f2967306613132108..045bcd344280bd8ed689864e1deb188a770b5627 100644 (file)
@@ -1,10 +1,10 @@
 <?php namespace BookStack\Http\Controllers;
 
 use Activity;
-use BookStack\Book;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\ExportService;
+use BookStack\Entities\Book;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\UserRepo;
+use BookStack\Entities\ExportService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Views;
@@ -19,8 +19,8 @@ class BookController extends Controller
     /**
      * BookController constructor.
      * @param EntityRepo $entityRepo
-     * @param UserRepo $userRepo
-     * @param ExportService $exportService
+     * @param \BookStack\Auth\UserRepo $userRepo
+     * @param \BookStack\Entities\ExportService $exportService
      */
     public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
     {
index 8c7f7819e42904d21408e8965b3f6c03599dd07c..c1938d75480593b88a707fa3bf1aaf57370a1140 100644 (file)
@@ -1,11 +1,11 @@
 <?php namespace BookStack\Http\Controllers;
 
 use Activity;
-use BookStack\Book;
-use BookStack\Bookshelf;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\ExportService;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\UserRepo;
+use BookStack\Entities\ExportService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Views;
@@ -19,9 +19,9 @@ class BookshelfController extends Controller
 
     /**
      * BookController constructor.
-     * @param EntityRepo $entityRepo
+     * @param \BookStack\Entities\EntityRepo $entityRepo
      * @param UserRepo $userRepo
-     * @param ExportService $exportService
+     * @param \BookStack\Entities\ExportService $exportService
      */
     public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
     {
index 1fe231a6597e909198f36fb0d4d1588a7a911836..a3f26f7cde79f9ffb1d48a64abd91853c6b7b4f8 100644 (file)
@@ -1,9 +1,9 @@
 <?php namespace BookStack\Http\Controllers;
 
 use Activity;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\ExportService;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\UserRepo;
+use BookStack\Entities\ExportService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Views;
@@ -19,7 +19,7 @@ class ChapterController extends Controller
      * ChapterController constructor.
      * @param EntityRepo $entityRepo
      * @param UserRepo $userRepo
-     * @param ExportService $exportService
+     * @param \BookStack\Entities\ExportService $exportService
      */
     public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
     {
index 7bf0a2aacde5f1779b3bf093e7866de18db0cb2d..673684cc0f00213e363dcb27f29522e636b48d96 100644 (file)
@@ -1,8 +1,8 @@
 <?php namespace BookStack\Http\Controllers;
 
 use Activity;
-use BookStack\Repos\CommentRepo;
-use BookStack\Repos\EntityRepo;
+use BookStack\Actions\CommentRepo;
+use BookStack\Entities\EntityRepo;
 use Illuminate\Database\Eloquent\ModelNotFoundException;
 use Illuminate\Http\Request;
 
@@ -13,8 +13,8 @@ class CommentController extends Controller
 
     /**
      * CommentController constructor.
-     * @param EntityRepo $entityRepo
-     * @param CommentRepo $commentRepo
+     * @param \BookStack\Entities\EntityRepo $entityRepo
+     * @param \BookStack\Actions\CommentRepo $commentRepo
      */
     public function __construct(EntityRepo $entityRepo, CommentRepo $commentRepo)
     {
index 33b57b7d9a56b14f9f406c8566346e01767e0077..9c1527e98c31d6882c13b8e33de5ebe42afc3d83 100644 (file)
@@ -8,7 +8,7 @@ use Illuminate\Http\Exceptions\HttpResponseException;
 use Illuminate\Http\Request;
 use Illuminate\Routing\Controller as BaseController;
 use Illuminate\Foundation\Validation\ValidatesRequests;
-use BookStack\User;
+use BookStack\Auth\User;
 
 abstract class Controller extends BaseController
 {
index e472503187a61db9f197ab6d2b4323a22009fe31..e9469fafb0c9a24c7af2355ceba65e2c0df8312b 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace BookStack\Http\Controllers;
 
 use Activity;
-use BookStack\Repos\EntityRepo;
+use BookStack\Entities\EntityRepo;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Views;
index eb92ae9a8a5d6453385e1b1a99cc70686c004eae..a64608e8e2971729cecfb3b7d87beb859f870286 100644 (file)
@@ -2,11 +2,11 @@
 
 use BookStack\Exceptions\ImageUploadException;
 use BookStack\Exceptions\NotFoundException;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\ImageRepo;
+use BookStack\Entities\EntityRepo;
+use BookStack\Uploads\ImageRepo;
 use Illuminate\Filesystem\Filesystem as File;
 use Illuminate\Http\Request;
-use BookStack\Image;
+use BookStack\Uploads\Image;
 use BookStack\Repos\PageRepo;
 
 class ImageController extends Controller
index 80bbe56c1afe179935e08abaa73cba137243b388..df854973980a0b9b08e6e7dee8e5b277ba180f5f 100644 (file)
@@ -2,9 +2,9 @@
 
 use Activity;
 use BookStack\Exceptions\NotFoundException;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\ExportService;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\UserRepo;
+use BookStack\Entities\ExportService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Views;
@@ -19,8 +19,8 @@ class PageController extends Controller
 
     /**
      * PageController constructor.
-     * @param EntityRepo $entityRepo
-     * @param ExportService $exportService
+     * @param \BookStack\Entities\EntityRepo $entityRepo
+     * @param \BookStack\Entities\ExportService $exportService
      * @param UserRepo $userRepo
      */
     public function __construct(EntityRepo $entityRepo, ExportService $exportService, UserRepo $userRepo)
index 5695705d02b6b1e934a4a3a0b5872f13aa3cd973..215184b73fdb0694bcb06b46212ab4047b6cd1ff 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace BookStack\Http\Controllers;
 
 use BookStack\Exceptions\PermissionsException;
-use BookStack\Repos\PermissionsRepo;
+use BookStack\Auth\Permissions\PermissionsRepo;
 use Illuminate\Http\Request;
 
 class PermissionController extends Controller
@@ -11,7 +11,7 @@ class PermissionController extends Controller
 
     /**
      * PermissionController constructor.
-     * @param PermissionsRepo $permissionsRepo
+     * @param \BookStack\Auth\Permissions\PermissionsRepo $permissionsRepo
      */
     public function __construct(PermissionsRepo $permissionsRepo)
     {
index 49f9885adb24c1bb438f5b95f6cd20fd0f7937a7..6ae08a280bd698b39f9809cef206a6e2b15d9c6c 100644 (file)
@@ -1,8 +1,8 @@
 <?php namespace BookStack\Http\Controllers;
 
-use BookStack\Repos\EntityRepo;
-use BookStack\Services\SearchService;
-use BookStack\Services\ViewService;
+use BookStack\Entities\EntityRepo;
+use BookStack\Entities\SearchService;
+use BookStack\Actions\ViewService;
 use Illuminate\Http\Request;
 
 class SearchController extends Controller
@@ -97,7 +97,7 @@ class SearchController extends Controller
             $entities = $this->searchService->searchEntities($searchTerm, 'all', 1, 20, $permission)['results'];
         } else {
             $entityNames = $entityTypes->map(function ($type) {
-                return 'BookStack\\' . ucfirst($type);
+                return 'BookStack\\' . ucfirst($type); // TODO - Extract this elsewhere, too specific and stringy
             })->toArray();
             $entities = $this->viewService->getPopular(20, 0, $entityNames, $permission);
         }
index d9d66042e19ba0bc998d0b74e14b0855b14ff4be..01fb68fe06e509908bd863671eddf0f2c94ba323 100644 (file)
@@ -1,6 +1,6 @@
 <?php namespace BookStack\Http\Controllers;
 
-use BookStack\Services\ImageService;
+use BookStack\Uploads\ImageService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Setting;
index 815d9e8d5c87936d168baf406be87772a6fc3ba1..6abbeeebaa451e437e8b150a2ae496f15fe37827 100644 (file)
@@ -1,6 +1,6 @@
 <?php namespace BookStack\Http\Controllers;
 
-use BookStack\Repos\TagRepo;
+use BookStack\Actions\TagRepo;
 use Illuminate\Http\Request;
 
 class TagController extends Controller
index f6bd13e6f7de8bd15de6505821460355ade582a4..93e4c34509af04c59a669a3468afae610897397d 100644 (file)
@@ -3,9 +3,9 @@
 use Exception;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
-use BookStack\Repos\UserRepo;
-use BookStack\Services\SocialAuthService;
-use BookStack\User;
+use BookStack\Auth\UserRepo;
+use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Auth\User;
 
 class UserController extends Controller
 {
@@ -16,7 +16,7 @@ class UserController extends Controller
     /**
      * UserController constructor.
      * @param User     $user
-     * @param UserRepo $userRepo
+     * @param \BookStack\Auth\UserRepo $userRepo
      */
     public function __construct(User $user, UserRepo $userRepo)
     {
@@ -101,7 +101,7 @@ class UserController extends Controller
     /**
      * Show the form for editing the specified user.
      * @param  int              $id
-     * @param SocialAuthService $socialAuthService
+     * @param \BookStack\Auth\Access\SocialAuthService $socialAuthService
      * @return Response
      */
     public function edit($id, SocialAuthService $socialAuthService)
index fe58e05ed4843121cea591b36d8028ca44460206..e660a0500de165cbc7233bacf3bf9e3b65f9debf 100644 (file)
@@ -1,5 +1,7 @@
 <?php namespace BookStack;
 
+use BookStack\Auth\User;
+
 abstract class Ownable extends Model
 {
     /**
index b06b2f3a25b992322b8172e110f0ecd3ef447cab..ef4c657d9ab2e567b2db9a56c965a318b6a23203 100644 (file)
@@ -1,8 +1,15 @@
 <?php namespace BookStack\Providers;
 
-use BookStack\Services\SettingService;
-use BookStack\Setting;
+use Blade;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Page;
+use BookStack\Settings\SettingService;
+use BookStack\Settings\Setting;
+use Illuminate\Database\Eloquent\Relations\Relation;
 use Illuminate\Support\ServiceProvider;
+use Schema;
 use Validator;
 
 class AppServiceProvider extends ServiceProvider
@@ -20,12 +27,21 @@ class AppServiceProvider extends ServiceProvider
             return in_array($value->getMimeType(), $imageMimes);
         });
 
-        \Blade::directive('icon', function ($expression) {
+        // Custom blade view directives
+        Blade::directive('icon', function ($expression) {
             return "<?php echo icon($expression); ?>";
         });
 
         // Allow longer string lengths after upgrade to utf8mb4
-        \Schema::defaultStringLength(191);
+        Schema::defaultStringLength(191);
+
+        // Set morph-map due to namespace changes
+        Relation::morphMap([
+            'BookStack\\Bookshelf' => Bookshelf::class,
+            'BookStack\\Book' => Book::class,
+            'BookStack\\Chapter' => Chapter::class,
+            'BookStack\\Page' => Page::class,
+        ]);
     }
 
     /**
index d1fac56e677ff968896b6ce60df441da91b13c91..6e5b6ffde7ca10274b1beef274f2e06cd7283472 100644 (file)
@@ -3,7 +3,7 @@
 namespace BookStack\Providers;
 
 use Auth;
-use BookStack\Services\LdapService;
+use BookStack\Auth\Access\LdapService;
 use Illuminate\Support\ServiceProvider;
 
 class AuthServiceProvider extends ServiceProvider
index c81a5529d8d6d95e842b799adf007aca9ba34727..2a5b101dbf9160a3cb8319df51976aef230339e5 100644 (file)
@@ -2,18 +2,18 @@
 
 namespace BookStack\Providers;
 
-use BookStack\Activity;
-use BookStack\Image;
-use BookStack\Services\ImageService;
-use BookStack\Services\PermissionService;
-use BookStack\Services\ViewService;
-use BookStack\Setting;
-use BookStack\View;
+use BookStack\Actions\Activity;
+use BookStack\Uploads\Image;
+use BookStack\Uploads\ImageService;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Actions\ViewService;
+use BookStack\Settings\Setting;
+use BookStack\Actions\View;
 use Illuminate\Contracts\Cache\Repository;
 use Illuminate\Contracts\Filesystem\Factory;
 use Illuminate\Support\ServiceProvider;
-use BookStack\Services\ActivityService;
-use BookStack\Services\SettingService;
+use BookStack\Actions\ActivityService;
+use BookStack\Settings\SettingService;
 use Intervention\Image\ImageManager;
 
 class CustomFacadeProvider extends ServiceProvider
index 1dc789c3b3bc513c770e514eaf7fbdef42f0b2bb..7f676eace26110caafc765224b65e1c33f24fa56 100644 (file)
@@ -2,9 +2,9 @@
 
 namespace BookStack\Providers;
 
-use BookStack\Role;
-use BookStack\Services\LdapService;
-use BookStack\User;
+use BookStack\Auth\Role;
+use BookStack\Auth\Access\LdapService;
+use BookStack\Auth\User;
 use Illuminate\Contracts\Auth\Authenticatable;
 use Illuminate\Contracts\Auth\UserProvider;
 
@@ -19,7 +19,7 @@ class LdapUserProvider implements UserProvider
     protected $model;
 
     /**
-     * @var LdapService
+     * @var \BookStack\Auth\LdapService
      */
     protected $ldapService;
 
@@ -27,7 +27,7 @@ class LdapUserProvider implements UserProvider
     /**
      * LdapUserProvider constructor.
      * @param             $model
-     * @param LdapService $ldapService
+     * @param \BookStack\Auth\LdapService $ldapService
      */
     public function __construct($model, LdapService $ldapService)
     {
similarity index 68%
rename from app/Setting.php
rename to app/Settings/Setting.php
index 0af3652db628dec19cff86439e5ffa0544aff5bd..1a52920eeb73cc6c88e78ad7ec68961ddd30e8cf 100644 (file)
@@ -1,4 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Settings;
+
+use BookStack\Model;
 
 class Setting extends Model
 {
similarity index 97%
rename from app/Services/SettingService.php
rename to app/Settings/SettingService.php
index 7ec3ef93aee582afb74f6faadf997b0cff199c9d..756640485a600708a25a83a8a13686a5dbe907fe 100644 (file)
@@ -1,7 +1,7 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Settings;
 
-use BookStack\Setting;
-use BookStack\User;
+use BookStack\Settings\Setting;
+use BookStack\Auth\User;
 use Illuminate\Contracts\Cache\Repository as Cache;
 
 /**
@@ -55,7 +55,7 @@ class SettingService
 
     /**
      * Get a user-specific setting from the database or cache.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @param $key
      * @param bool $default
      * @return bool|string
@@ -174,7 +174,7 @@ class SettingService
 
     /**
      * Put a user-specific setting into the database.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @param $key
      * @param $value
      * @return bool
similarity index 90%
rename from app/Attachment.php
rename to app/Uploads/Attachment.php
index 6749130d9686268dde0ee1299d03d26284a70687..11c1408eb1a8ed926bac71d2796b3b3f69e7d9c3 100644 (file)
@@ -1,4 +1,7 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Uploads;
+
+use BookStack\Entities\Page;
+use BookStack\Ownable;
 
 class Attachment extends Ownable
 {
similarity index 98%
rename from app/Services/AttachmentService.php
rename to app/Uploads/AttachmentService.php
index 3a6f95dcc7aa7f84d4520e32ab1e697695c2ce69..26e3411112a6184c9900315bd23742d3baf14d1b 100644 (file)
@@ -1,7 +1,8 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Uploads;
 
 use BookStack\Exceptions\FileUploadException;
-use BookStack\Attachment;
+use BookStack\Uploads\Attachment;
+use BookStack\Uploads\UploadService;
 use Exception;
 use Symfony\Component\HttpFoundation\File\UploadedFile;
 
similarity index 88%
rename from app/Image.php
rename to app/Uploads/Image.php
index acc82df90a1ec7fcb572dcf3c636499c9ba5b94e..df6d9fb0d151ef00cd8c579bdccc3891e3626974 100644 (file)
@@ -1,5 +1,6 @@
-<?php namespace BookStack;
+<?php namespace BookStack\Uploads;
 
+use BookStack\Ownable;
 use Images;
 
 class Image extends Ownable
similarity index 95%
rename from app/Repos/ImageRepo.php
rename to app/Uploads/ImageRepo.php
index 4ccd719ade8a3e5a54738aa528c076b9a1cc7728..194a0d583c89a9dc1a4eb079f26af2237e0c3d15 100644 (file)
@@ -1,9 +1,9 @@
-<?php namespace BookStack\Repos;
+<?php namespace BookStack\Uploads;
 
-use BookStack\Image;
-use BookStack\Page;
-use BookStack\Services\ImageService;
-use BookStack\Services\PermissionService;
+use BookStack\Uploads\Image;
+use BookStack\Entities\Page;
+use BookStack\Uploads\ImageService;
+use BookStack\Auth\Permissions\PermissionService;
 use Symfony\Component\HttpFoundation\File\UploadedFile;
 
 class ImageRepo
@@ -18,8 +18,8 @@ class ImageRepo
      * ImageRepo constructor.
      * @param Image $image
      * @param ImageService $imageService
-     * @param PermissionService $permissionService
-     * @param Page $page
+     * @param \BookStack\Auth\\BookStack\Auth\Permissions\PermissionService $permissionService
+     * @param \BookStack\Entities\Page $page
      */
     public function __construct(Image $image, ImageService $imageService, PermissionService $permissionService, Page $page)
     {
similarity index 98%
rename from app/Services/ImageService.php
rename to app/Uploads/ImageService.php
index 7b73c457c08ec76e5d490e1971b7bb1e230b8189..9ecf9492e8598fd6d832ccd6f8affc4d0bddf4e3 100644 (file)
@@ -1,8 +1,9 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Uploads;
 
 use BookStack\Exceptions\ImageUploadException;
-use BookStack\Image;
-use BookStack\User;
+use BookStack\Uploads\Image;
+use BookStack\Auth\User;
+use BookStack\Uploads\UploadService;
 use DB;
 use Exception;
 use Intervention\Image\Exception\NotSupportedException;
@@ -281,7 +282,7 @@ class ImageService extends UploadService
 
     /**
      * Save a gravatar image and set a the profile image for a user.
-     * @param User $user
+     * @param \BookStack\Auth\User $user
      * @param int $size
      * @return mixed
      * @throws Exception
similarity index 93%
rename from app/Services/UploadService.php
rename to app/Uploads/UploadService.php
index df597a40fef5dbcb79bac610caabf8528ae0d525..292e61e30ab1a0c0aebdf934a4a69999d9149dff 100644 (file)
@@ -1,9 +1,9 @@
-<?php namespace BookStack\Services;
+<?php namespace BookStack\Uploads;
 
 use Illuminate\Contracts\Filesystem\Factory as FileSystem;
 use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
 
-class UploadService
+abstract class UploadService
 {
 
     /**
index 50b41ec05d9180ad1a2ebf8d60b3e7867f793bc2..9f2f74c18a82c944f0ff01ccfe2a310fd956c5f9 100644 (file)
@@ -30,11 +30,11 @@ function versioned_asset($file = '')
 /**
  * Helper method to get the current User.
  * Defaults to public 'Guest' user if not logged in.
- * @return \BookStack\User
+ * @return \BookStack\Auth\User
  */
 function user()
 {
-    return auth()->user() ?: \BookStack\User::getDefault();
+    return auth()->user() ?: \BookStack\Auth\User::getDefault();
 }
 
 /**
@@ -61,7 +61,7 @@ function userCan($permission, Ownable $ownable = null)
     }
 
     // Check permission on ownable item
-    $permissionService = app(\BookStack\Services\PermissionService::class);
+    $permissionService = app(\BookStack\Auth\Permissions\PermissionService::class);
     return $permissionService->checkOwnableUserAccess($ownable, $permission);
 }
 
@@ -69,11 +69,11 @@ function userCan($permission, Ownable $ownable = null)
  * Helper to access system settings.
  * @param $key
  * @param bool $default
- * @return bool|string|\BookStack\Services\SettingService
+ * @return bool|string|\BookStack\Settings\SettingService
  */
 function setting($key = null, $default = false)
 {
-    $settingService = resolve(\BookStack\Services\SettingService::class);
+    $settingService = resolve(\BookStack\Settings\SettingService::class);
     if (is_null($key)) {
         return $settingService;
     }
index 9b5ac2f8c025f0b1dfd558c1ab59ffa1fc49e2d1..7529697faf700a797a9d9b2bd00dc487a3ab9d27 100755 (executable)
@@ -274,10 +274,10 @@ return [
          * Custom
          */
 
-        'Activity' => BookStack\Services\Facades\Activity::class,
-        'Setting'  => BookStack\Services\Facades\Setting::class,
-        'Views'    => BookStack\Services\Facades\Views::class,
-        'Images'   => BookStack\Services\Facades\Images::class,
+        'Activity' => BookStack\Facades\Activity::class,
+        'Setting'  => BookStack\Facades\Setting::class,
+        'Views'    => BookStack\Facades\Views::class,
+        'Images'   => BookStack\Facades\Images::class,
 
     ],
 
index ceeab5c71d88aecd074316f77f7fdf589e89a3a0..f0e699809a99fe1c722b8a1bc20a7cc78774ade4 100644 (file)
@@ -70,7 +70,7 @@ return [
     'providers' => [
         'users' => [
             'driver' => env('AUTH_METHOD', 'standard') === 'standard' ? 'eloquent' : env('AUTH_METHOD'),
-            'model' => BookStack\User::class,
+            'model' => \BookStack\Auth\User::class,
         ],
 
         // 'users' => [
index 2b0f260cde6b40b8653947626fc19ff37e0a2658..711040386a9ac17c954ad694ac3aece8b11a06de 100644 (file)
@@ -38,7 +38,7 @@ return [
     ],
 
     'stripe'   => [
-        'model'  => BookStack\User::class,
+        'model'  => \BookStack\Auth\User::class,
         'key'    => '',
         'secret' => '',
     ],
index 3d6ed1d633301d36eda41636bf0d7eac563be8bc..de6b0b276899b976afd5f78235a6b5d7ec803f75 100644 (file)
@@ -11,7 +11,7 @@
 |
 */
 
-$factory->define(BookStack\User::class, function ($faker) {
+$factory->define(\BookStack\Auth\User::class, function ($faker) {
     return [
         'name' => $faker->name,
         'email' => $faker->email,
@@ -21,7 +21,7 @@ $factory->define(BookStack\User::class, function ($faker) {
     ];
 });
 
-$factory->define(BookStack\Bookshelf::class, function ($faker) {
+$factory->define(\BookStack\Entities\Bookshelf::class, function ($faker) {
     return [
         'name' => $faker->sentence,
         'slug' => str_random(10),
@@ -29,7 +29,7 @@ $factory->define(BookStack\Bookshelf::class, function ($faker) {
     ];
 });
 
-$factory->define(BookStack\Book::class, function ($faker) {
+$factory->define(\BookStack\Entities\Book::class, function ($faker) {
     return [
         'name' => $faker->sentence,
         'slug' => str_random(10),
@@ -37,7 +37,7 @@ $factory->define(BookStack\Book::class, function ($faker) {
     ];
 });
 
-$factory->define(BookStack\Chapter::class, function ($faker) {
+$factory->define(\BookStack\Entities\Chapter::class, function ($faker) {
     return [
         'name' => $faker->sentence,
         'slug' => str_random(10),
@@ -45,7 +45,7 @@ $factory->define(BookStack\Chapter::class, function ($faker) {
     ];
 });
 
-$factory->define(BookStack\Page::class, function ($faker) {
+$factory->define(\BookStack\Entities\Page::class, function ($faker) {
     $html = '<p>' . implode('</p>', $faker->paragraphs(5)) . '</p>';
     return [
         'name' => $faker->sentence,
@@ -56,21 +56,21 @@ $factory->define(BookStack\Page::class, function ($faker) {
     ];
 });
 
-$factory->define(BookStack\Role::class, function ($faker) {
+$factory->define(\BookStack\Auth\Role::class, function ($faker) {
     return [
         'display_name' => $faker->sentence(3),
         'description' => $faker->sentence(10)
     ];
 });
 
-$factory->define(BookStack\Tag::class, function ($faker) {
+$factory->define(\BookStack\Actions\Tag::class, function ($faker) {
     return [
         'name' => $faker->city,
         'value' => $faker->sentence(3)
     ];
 });
 
-$factory->define(BookStack\Image::class, function ($faker) {
+$factory->define(\BookStack\Uploads\Image::class, function ($faker) {
     return [
         'name' => $faker->slug . '.jpg',
         'url' => $faker->url,
@@ -80,7 +80,7 @@ $factory->define(BookStack\Image::class, function ($faker) {
     ];
 });
 
-$factory->define(BookStack\Comment::class, function($faker) {
+$factory->define(\BookStack\Actions\Comment::class, function($faker) {
     $text = $faker->paragraph(1);
     $html = '<p>' . $text. '</p>';
     return [
index eed937611485d14f0c2c97c37058a510bf2054f9..515bc9d8df7e86fcfd5e5640dbe2b6afbd77f5c3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-use BookStack\Image;
+use BookStack\Uploads\Image;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Database\Migrations\Migration;
 
index e4dca8c0b00a41460c6080aad2e60803ac6b5f63..eab3216bbdfa6cc02e2b180ff094683a73f5cfdd 100644 (file)
@@ -119,11 +119,11 @@ class CreateBookshelvesTable extends Migration
         Schema::dropIfExists('bookshelves');
 
         // Drop related polymorphic items
-        DB::table('activities')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
-        DB::table('views')->where('viewable_type', '=', 'BookStack\Bookshelf')->delete();
-        DB::table('entity_permissions')->where('restrictable_type', '=', 'BookStack\Bookshelf')->delete();
-        DB::table('tags')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
-        DB::table('search_terms')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
-        DB::table('comments')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
+        DB::table('activities')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
+        DB::table('views')->where('viewable_type', '=', 'BookStack\Entities\Bookshelf')->delete();
+        DB::table('entity_permissions')->where('restrictable_type', '=', 'BookStack\Entities\Bookshelf')->delete();
+        DB::table('tags')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
+        DB::table('search_terms')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
+        DB::table('comments')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
     }
 }
index dcf5893529435e219cde412e415d7c7e25f9dbb1..ce3cd1307d6f5279f0f1a37ee830bd5d7c661a80 100644 (file)
@@ -12,39 +12,39 @@ class DummyContentSeeder extends Seeder
     public function run()
     {
         // Create an editor user
-        $editorUser = factory(\BookStack\User::class)->create();
-        $editorRole = \BookStack\Role::getRole('editor');
+        $editorUser = factory(\BookStack\Auth\User::class)->create();
+        $editorRole = \BookStack\Auth\Role::getRole('editor');
         $editorUser->attachRole($editorRole);
 
         // Create a viewer user
-        $viewerUser = factory(\BookStack\User::class)->create();
-        $role = \BookStack\Role::getRole('viewer');
+        $viewerUser = factory(\BookStack\Auth\User::class)->create();
+        $role = \BookStack\Auth\Role::getRole('viewer');
         $viewerUser->attachRole($role);
 
         $byData = ['created_by' => $editorUser->id, 'updated_by' => $editorUser->id];
 
-        factory(\BookStack\Book::class, 5)->create($byData)
+        factory(\BookStack\Entities\Book::class, 5)->create($byData)
             ->each(function($book) use ($editorUser, $byData) {
-                $chapters = factory(\BookStack\Chapter::class, 3)->create($byData)
+                $chapters = factory(\BookStack\Entities\Chapter::class, 3)->create($byData)
                     ->each(function($chapter) use ($editorUser, $book, $byData){
-                        $pages = factory(\BookStack\Page::class, 3)->make(array_merge($byData, ['book_id' => $book->id]));
+                        $pages = factory(\BookStack\Entities\Page::class, 3)->make(array_merge($byData, ['book_id' => $book->id]));
                         $chapter->pages()->saveMany($pages);
                     });
-                $pages = factory(\BookStack\Page::class, 3)->make($byData);
+                $pages = factory(\BookStack\Entities\Page::class, 3)->make($byData);
                 $book->chapters()->saveMany($chapters);
                 $book->pages()->saveMany($pages);
             });
 
-        $largeBook = factory(\BookStack\Book::class)->create(array_merge($byData, ['name' => 'Large book' . str_random(10)]));
-        $pages = factory(\BookStack\Page::class, 200)->make($byData);
-        $chapters = factory(\BookStack\Chapter::class, 50)->make($byData);
+        $largeBook = factory(\BookStack\Entities\Book::class)->create(array_merge($byData, ['name' => 'Large book' . str_random(10)]));
+        $pages = factory(\BookStack\Entities\Page::class, 200)->make($byData);
+        $chapters = factory(\BookStack\Entities\Chapter::class, 50)->make($byData);
         $largeBook->pages()->saveMany($pages);
         $largeBook->chapters()->saveMany($chapters);
 
-        $shelves = factory(\BookStack\Bookshelf::class, 10)->create($byData);
+        $shelves = factory(\BookStack\Entities\Bookshelf::class, 10)->create($byData);
         $largeBook->shelves()->attach($shelves->pluck('id'));
 
-        app(\BookStack\Services\PermissionService::class)->buildJointPermissions();
-        app(\BookStack\Services\SearchService::class)->indexAllEntities();
+        app(\BookStack\Auth\Permissions\PermissionService::class)->buildJointPermissions();
+        app(\BookStack\Entities\SearchService::class)->indexAllEntities();
     }
 }
index 129ede997d5cf358a5dc320bce20125bf1578a1c..136b6cb6a9f6465627bdab0ccab31f7fd8c24112 100644 (file)
@@ -12,16 +12,16 @@ class LargeContentSeeder extends Seeder
     public function run()
     {
         // Create an editor user
-        $editorUser = factory(\BookStack\User::class)->create();
-        $editorRole = \BookStack\Role::getRole('editor');
+        $editorUser = factory(\BookStack\Auth\User::class)->create();
+        $editorRole = \BookStack\Auth\Role::getRole('editor');
         $editorUser->attachRole($editorRole);
 
-        $largeBook = factory(\BookStack\Book::class)->create(['name' => 'Large book' . str_random(10), 'created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
-        $pages = factory(\BookStack\Page::class, 200)->make(['created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
-        $chapters = factory(\BookStack\Chapter::class, 50)->make(['created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
+        $largeBook = factory(\BookStack\Entities\Book::class)->create(['name' => 'Large book' . str_random(10), 'created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
+        $pages = factory(\BookStack\Entities\Page::class, 200)->make(['created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
+        $chapters = factory(\BookStack\Entities\Chapter::class, 50)->make(['created_by' => $editorUser->id, 'updated_by' => $editorUser->id]);
         $largeBook->pages()->saveMany($pages);
         $largeBook->chapters()->saveMany($chapters);
-        app(\BookStack\Services\PermissionService::class)->buildJointPermissions();
-        app(\BookStack\Services\SearchService::class)->indexAllEntities();
+        app(\BookStack\Auth\Permissions\PermissionService::class)->buildJointPermissions();
+        app(\BookStack\Entities\SearchService::class)->indexAllEntities();
     }
 }
index 91d8eb64660967382544f61ee849d4e75ba14b5b..7a3285fa76afe1215c1939c639056e6f53193b8f 100644 (file)
@@ -3,7 +3,7 @@
 <div page-picker>
     <div class="input-base">
         <span @if($value) style="display: none" @endif page-picker-default class="text-muted italic">{{ $placeholder }}</span>
-        <a @if(!$value) style="display: none" @endif href="{{ baseUrl('/link/' . $value) }}" target="_blank" class="text-page" page-picker-display>#{{$value}}, {{$value ? \BookStack\Page::find($value)->name : '' }}</a>
+        <a @if(!$value) style="display: none" @endif href="{{ baseUrl('/link/' . $value) }}" target="_blank" class="text-page" page-picker-display>#{{$value}}, {{$value ? \BookStack\Entities\Page::find($value)->name : '' }}</a>
     </div>
     <br>
     <input type="hidden" value="{{$value}}" name="{{$name}}" id="{{$name}}">
index d614edca8e53a1e78d421d3ecc47e379556ad45f..9c431828a810f6b260e9bd91c2246d51c78d90b9 100644 (file)
             <div class="col-md-4">
                 <div class="card">
                     <h3 class="text-muted">@icon('page') {{ trans('entities.pages_popular') }}</h3>
-                    @include('partials.entity-list', ['entities' => Views::getPopular(10, 0, [\BookStack\Page::class]), 'style' => 'compact'])
+                    @include('partials.entity-list', ['entities' => Views::getPopular(10, 0, [\BookStack\Entities\Page::class]), 'style' => 'compact'])
                 </div>
             </div>
             <div class="col-md-4">
                 <div class="card">
                     <h3 class="text-muted">@icon('book') {{ trans('entities.books_popular') }}</h3>
-                    @include('partials.entity-list', ['entities' => Views::getPopular(10, 0, [\BookStack\Book::class]), 'style' => 'compact'])
+                    @include('partials.entity-list', ['entities' => Views::getPopular(10, 0, [\BookStack\Entities\Book::class]), 'style' => 'compact'])
                 </div>
             </div>
             <div class="col-md-4">
                 <div class="card">
                     <h3 class="text-muted">@icon('chapter') {{ trans('entities.chapters_popular') }}</h3>
-                    @include('partials.entity-list', ['entities' => Views::getPopular(10, 0, [\BookStack\Chapter::class]), 'style' => 'compact'])
+                    @include('partials.entity-list', ['entities' => Views::getPopular(10, 0, [\BookStack\Entities\Chapter::class]), 'style' => 'compact'])
                 </div>
             </div>
         </div>
index 3c563a61c975fba2169993658230de7153a001ec..26b81899e8bdb775c43ae9e6bd5dd1a576f66c9e 100644 (file)
                         <div class="form-group">
                             <label for="setting-registration-role">{{ trans('settings.reg_default_role') }}</label>
                             <select id="setting-registration-role" name="setting-registration-role" @if($errors->has('setting-registration-role')) class="neg" @endif>
-                                @foreach(\BookStack\Role::all() as $role)
+                                @foreach(\BookStack\Auth\Role::all() as $role)
                                     <option value="{{$role->id}}" data-role-name="{{ $role->name }}"
-                                            @if(setting('registration-role', \BookStack\Role::first()->id) == $role->id) selected @endif
+                                            @if(setting('registration-role', \BookStack\Auth\Role::first()->id) == $role->id) selected @endif
                                     >
                                         {{ $role->display_name }}
                                     </option>
index bb65fbcf4b8745ec7d9b39c8e0bd5b20de1cbe71..f47bc44a30d7b01d419178dc0e9f83cc414887b6 100644 (file)
@@ -1,12 +1,14 @@
 <?php namespace Tests;
 
 
+use BookStack\Entities\Book;
+
 class ActivityTrackingTest extends BrowserKitTest
 {
 
     public function test_recently_viewed_books()
     {
-        $books = \BookStack\Book::all()->take(10);
+        $books = Book::all()->take(10);
 
         $this->asAdmin()->visit('/books')
             ->dontSeeInElement('#recents', $books[0]->name)
@@ -20,7 +22,7 @@ class ActivityTrackingTest extends BrowserKitTest
 
     public function test_popular_books()
     {
-        $books = \BookStack\Book::all()->take(10);
+        $books = Book::all()->take(10);
 
         $this->asAdmin()->visit('/books')
             ->dontSeeInElement('#popular', $books[0]->name)
index bb3a92706511f2aa814533ec2d7ed8f5c767021d..373d9eb5a9c9ce99655c407dee51664e5b9f43eb 100644 (file)
@@ -1,8 +1,8 @@
 <?php namespace Tests;
 
-use BookStack\Attachment;
-use BookStack\Page;
-use BookStack\Services\PermissionService;
+use BookStack\Uploads\Attachment;
+use BookStack\Entities\Page;
+use BookStack\Auth\Permissions\PermissionService;
 
 class AttachmentTest extends TestCase
 {
@@ -44,8 +44,8 @@ class AttachmentTest extends TestCase
      */
     protected function deleteUploads()
     {
-        $fileService = $this->app->make(\BookStack\Services\AttachmentService::class);
-        foreach (\BookStack\Attachment::all() as $file) {
+        $fileService = $this->app->make(\BookStack\Uploads\AttachmentService::class);
+        foreach (\BookStack\Uploads\Attachment::all() as $file) {
             $fileService->deleteFile($file);
         }
     }
@@ -144,7 +144,7 @@ class AttachmentTest extends TestCase
             'uploaded_to' => $page->id,
         ]);
 
-        $attachmentId = \BookStack\Attachment::first()->id;
+        $attachmentId = \BookStack\Uploads\Attachment::first()->id;
 
         $update = $this->call('PUT', 'attachments/' . $attachmentId, [
             'uploaded_to' => $page->id,
@@ -175,7 +175,7 @@ class AttachmentTest extends TestCase
         $filePath = base_path('storage/' . $this->getUploadPath($fileName));
         $this->assertTrue(file_exists($filePath), 'File at path ' . $filePath . ' does not exist');
 
-        $attachment = \BookStack\Attachment::first();
+        $attachment = \BookStack\Uploads\Attachment::first();
         $this->delete($attachment->getUrl());
 
         $this->assertDatabaseMissing('attachments', [
index b456de964f7c82546f44ed2bf590f39daa3133ab..0aa0e2a23625ea9ab614623065edb116679af9e9 100644 (file)
@@ -1,7 +1,8 @@
 <?php namespace Tests;
 
 use BookStack\Notifications\ConfirmEmail;
-use BookStack\User;
+use BookStack\Auth\User;
+use BookStack\Settings\SettingService;
 use Illuminate\Support\Facades\Notification;
 
 class AuthTest extends BrowserKitTest
@@ -21,7 +22,7 @@ class AuthTest extends BrowserKitTest
 
     public function test_public_viewing()
     {
-        $settings = app('BookStack\Services\SettingService');
+        $settings = app(SettingService::class);
         $settings->put('app-public', 'true');
         $this->visit('/')
             ->seePageIs('/')
@@ -248,7 +249,7 @@ class AuthTest extends BrowserKitTest
 
     public function test_user_cannot_be_deleted_if_last_admin()
     {
-        $adminRole = \BookStack\Role::getRole('admin');
+        $adminRole = \BookStack\Auth\Role::getRole('admin');
         // Ensure we currently only have 1 admin user
         $this->assertEquals(1, $adminRole->users()->count());
         $user = $adminRole->users->first();
index 289daa932cde793e3f1fc3b7ab94fca19dae5936..25d8a59064301d618bc2216495383e880bc3bb2a 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace Tests;
-use BookStack\Role;
-use BookStack\Services\Ldap;
-use BookStack\User;
+use BookStack\Auth\Role;
+use BookStack\Auth\Access\Ldap;
+use BookStack\Auth\User;
 use Mockery\MockInterface;
 
 class LdapTest extends BrowserKitTest
index 5bfe0c222cb04e2dd35baacc35099b2ee31a5537..572c32f4620ff23756b0f61867ce13c15338f863 100644 (file)
@@ -6,7 +6,7 @@ class SocialAuthTest extends TestCase
     public function test_social_registration()
     {
         // http://docs.mockery.io/en/latest/reference/startup_methods.html
-        $user = factory(\BookStack\User::class)->make();
+        $user = factory(\BookStack\Auth\User::class)->make();
 
         $this->setSettings(['registration-enabled' => 'true']);
         config(['GOOGLE_APP_ID' => 'abc123', 'GOOGLE_APP_SECRET' => '123abc', 'APP_URL' => 'http://localhost']);
@@ -86,7 +86,7 @@ class SocialAuthTest extends TestCase
             'APP_URL' => 'http://localhost'
         ]);
 
-        $user = factory(\BookStack\User::class)->make();
+        $user = factory(\BookStack\Auth\User::class)->make();
         $mockSocialite = \Mockery::mock('Laravel\Socialite\Contracts\Factory');
         $this->app['Laravel\Socialite\Contracts\Factory'] = $mockSocialite;
         $mockSocialDriver = \Mockery::mock('Laravel\Socialite\Contracts\Provider');
@@ -125,7 +125,7 @@ class SocialAuthTest extends TestCase
             'APP_URL' => 'http://localhost', 'services.google.auto_register' => true, 'services.google.auto_confirm' => true
         ]);
 
-        $user = factory(\BookStack\User::class)->make();
+        $user = factory(\BookStack\Auth\User::class)->make();
         $mockSocialite = \Mockery::mock('Laravel\Socialite\Contracts\Factory');
         $this->app['Laravel\Socialite\Contracts\Factory'] = $mockSocialite;
         $mockSocialDriver = \Mockery::mock('Laravel\Socialite\Contracts\Provider');
index 86f61a7647181e1aa3a89e166d3202964c1c4c57..ab0d9d898b31db9a9f167fc7a4b9131ffe722a1f 100644 (file)
@@ -1,8 +1,9 @@
 <?php namespace Tests;
 
-use BookStack\Entity;
-use BookStack\Role;
-use BookStack\Services\PermissionService;
+use BookStack\Entities\Entity;
+use BookStack\Auth\Role;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Settings\SettingService;
 use Illuminate\Contracts\Console\Kernel;
 use Illuminate\Foundation\Testing\DatabaseTransactions;
 use Laravel\BrowserKitTesting\TestCase;
@@ -46,7 +47,7 @@ abstract class BrowserKitTest extends TestCase
      */
     public function getNormalUser()
     {
-        return \BookStack\User::where('system_name', '=', null)->get()->last();
+        return \BookStack\Auth\User::where('system_name', '=', null)->get()->last();
     }
 
     /**
@@ -55,7 +56,7 @@ abstract class BrowserKitTest extends TestCase
      */
     protected function setSettings($settingsArray)
     {
-        $settings = app('BookStack\Services\SettingService');
+        $settings = app(SettingService::class);
         foreach ($settingsArray as $key => $value) {
             $settings->put($key, $value);
         }
@@ -70,9 +71,9 @@ abstract class BrowserKitTest extends TestCase
     protected function createEntityChainBelongingToUser($creatorUser, $updaterUser = false)
     {
         if ($updaterUser === false) $updaterUser = $creatorUser;
-        $book = factory(\BookStack\Book::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]);
-        $chapter = factory(\BookStack\Chapter::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id]);
-        $page = factory(\BookStack\Page::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id, 'chapter_id' => $chapter->id]);
+        $book = factory(\BookStack\Entities\Book::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]);
+        $chapter = factory(\BookStack\Entities\Chapter::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id]);
+        $page = factory(\BookStack\Entities\Page::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id, 'chapter_id' => $chapter->id]);
         $restrictionService = $this->app[PermissionService::class];
         $restrictionService->buildJointPermissionsForEntity($book);
         return [
@@ -100,7 +101,7 @@ abstract class BrowserKitTest extends TestCase
      */
     protected function getNewBlankUser($attributes = [])
     {
-        $user = factory(\BookStack\User::class)->create($attributes);
+        $user = factory(\BookStack\Auth\User::class)->create($attributes);
         return $user;
     }
 
index 25516c31732bd04ae2ba9f6dc8743305b6b245be..1533df7927f45578e3f35497c7a4c7afb49cbf83 100644 (file)
@@ -1,9 +1,9 @@
 <?php namespace Tests;
 
-use BookStack\JointPermission;
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
-use BookStack\User;
+use BookStack\Auth\Permissions\JointPermission;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\User;
 
 class CommandsTest extends TestCase
 {
index 9071e3c06990e28d82d794d3a4109e51150c2c28..5d71ec6f6a15f12c5c5e1cd7e057f70ccd5de6bb 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace Tests;
 
-use BookStack\Book;
-use BookStack\Bookshelf;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
 
 class BookShelfTest extends TestCase
 {
index 29df8b3278daf7f2a900ba9e6fdede2db24708b9..2683f57cb601767243b745edd31b2caf1ea4e457 100644 (file)
@@ -5,7 +5,7 @@ class CommentSettingTest extends BrowserKitTest {
 
   public function setUp() {
       parent::setUp();
-      $this->page = \BookStack\Page::first();
+      $this->page = \BookStack\Entities\Page::first();
   }
 
   public function test_comment_disable () {
index 04716c1c29d389cae945b493d0397d49a513dd96..2b943f96f18c853dfd36f805110f7eb0715b0666 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace Tests;
 
-use BookStack\Page;
-use BookStack\Comment;
+use BookStack\Entities\Page;
+use BookStack\Actions\Comment;
 
 class CommentTest extends TestCase
 {
@@ -23,7 +23,7 @@ class CommentTest extends TestCase
         $this->assertDatabaseHas('comments', [
             'local_id' => 1,
             'entity_id' => $page->id,
-            'entity_type' => 'BookStack\\Page',
+            'entity_type' => Page::newModelInstance()->getMorphClass(),
             'text' => $comment->text,
             'parent_id' => 2
         ]);
index 301f0d02d73ca221f2377523d9c93f6b1790114c..4114d4af9c816dc04f4576185566491bf9c01537 100644 (file)
@@ -1,16 +1,16 @@
 <?php namespace Tests;
 
 
-use BookStack\Bookshelf;
-use BookStack\Chapter;
-use BookStack\Page;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Page;
 
 class EntitySearchTest extends TestCase
 {
 
     public function test_page_search()
     {
-        $book = \BookStack\Book::all()->first();
+        $book = \BookStack\Entities\Book::all()->first();
         $page = $book->pages->first();
 
         $search = $this->asEditor()->get('/search?term=' . urlencode($page->name));
@@ -54,7 +54,7 @@ class EntitySearchTest extends TestCase
 
     public function test_book_search()
     {
-        $book = \BookStack\Book::first();
+        $book = \BookStack\Entities\Book::first();
         $page = $book->pages->last();
         $chapter = $book->chapters->last();
 
@@ -67,7 +67,7 @@ class EntitySearchTest extends TestCase
 
     public function test_chapter_search()
     {
-        $chapter = \BookStack\Chapter::has('pages')->first();
+        $chapter = \BookStack\Entities\Chapter::has('pages')->first();
         $page = $chapter->pages[0];
 
         $pageTestResp = $this->asEditor()->get('/search/chapter/' . $chapter->id . '?term=' . urlencode($page->name));
@@ -77,11 +77,11 @@ class EntitySearchTest extends TestCase
     public function test_tag_search()
     {
         $newTags = [
-            new \BookStack\Tag([
+            new \BookStack\Actions\Tag([
                 'name' => 'animal',
                 'value' => 'cat'
             ]),
-            new \BookStack\Tag([
+            new \BookStack\Actions\Tag([
                 'name' => 'color',
                 'value' => 'red'
             ])
index f8ca8ea1217d0726b1c33f4078e73a2f667001a2..90082deaf58ea19eb67eba2a1be6cdaefceb6243 100644 (file)
@@ -1,10 +1,10 @@
 <?php namespace Tests;
 
-use BookStack\Book;
-use BookStack\Chapter;
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\UserRepo;
+use BookStack\Entities\Book;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\UserRepo;
 use Carbon\Carbon;
 
 class EntityTest extends BrowserKitTest
index 5fff84b8dfaa79dadc6efec5ff4202ca6f9a97c3..51090650c267514b67a840bd8909e16c5a09a6d4 100644 (file)
@@ -1,8 +1,8 @@
 <?php namespace Tests;
 
 
-use BookStack\Chapter;
-use BookStack\Page;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Page;
 
 class ExportTest extends TestCase
 {
index b85e92565aa69037982e82271c41cf19cd46e9d5..c481e444f59cf563f25791bd3725bac74ee6df1c 100644 (file)
@@ -7,7 +7,7 @@ class MarkdownTest extends BrowserKitTest
     public function setUp()
     {
         parent::setUp();
-        $this->page = \BookStack\Page::first();
+        $this->page = \BookStack\Entities\Page::first();
     }
 
     protected function setMarkdownEditor()
index 8b0e180da724617234b3da246556e2f82d742f84..4c0d1c47a76a70f26d23a111d67b36e213188745 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace Tests;
 
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
 
 class PageContentTest extends TestCase
 {
index d9341ace67f406d308026edc56235f175634fa09..baae9bdedf946820866838be3f39d373575b7360 100644 (file)
@@ -9,8 +9,8 @@ class PageDraftTest extends BrowserKitTest
     public function setUp()
     {
         parent::setUp();
-        $this->page = \BookStack\Page::first();
-        $this->entityRepo = app('\BookStack\Repos\EntityRepo');
+        $this->page = \BookStack\Entities\Page::first();
+        $this->entityRepo = app('\BookStack\Entities\EntityRepo');
     }
 
     public function test_draft_content_shows_if_available()
@@ -48,7 +48,7 @@ class PageDraftTest extends BrowserKitTest
 
     public function test_alert_message_shows_if_someone_else_editing()
     {
-        $nonEditedPage = \BookStack\Page::take(10)->get()->last();
+        $nonEditedPage = \BookStack\Entities\Page::take(10)->get()->last();
         $addedContent = '<p>test message content</p>';
         $this->asAdmin()->visit($this->page->getUrl() . '/edit')
             ->dontSeeInField('html', $addedContent);
@@ -67,7 +67,7 @@ class PageDraftTest extends BrowserKitTest
 
     public function test_draft_pages_show_on_homepage()
     {
-        $book = \BookStack\Book::first();
+        $book = \BookStack\Entities\Book::first();
         $this->asAdmin()->visit('/')
             ->dontSeeInElement('#recent-drafts', 'New Page')
             ->visit($book->getUrl() . '/create-page')
@@ -77,7 +77,7 @@ class PageDraftTest extends BrowserKitTest
 
     public function test_draft_pages_not_visible_by_others()
     {
-        $book = \BookStack\Book::first();
+        $book = \BookStack\Entities\Book::first();
         $chapter = $book->chapters->first();
         $newUser = $this->getEditor();
 
index 390042dbf3c61de1fd9ab6105a7f98325a3637e5..015320dd7b1208e7c2ae4aa74d49f13f5498b457 100644 (file)
@@ -1,7 +1,7 @@
 <?php namespace Entity;
 
 
-use BookStack\Page;
+use BookStack\Entities\Page;
 use Tests\TestCase;
 
 class PageRevisionTest extends TestCase
index ea5ab665d0edb732ae2681cdba8dab498089674a..689ca690f6e6c19911c19aa5aa04d6e64f25df34 100644 (file)
@@ -1,9 +1,9 @@
 <?php namespace Tests;
 
-use BookStack\Book;
-use BookStack\Chapter;
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
+use BookStack\Entities\Book;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
 
 class SortTest extends TestCase
 {
index 7e11663882533e120dbcd1138bb47a9b735dceab..70b8c960b73980544b74356d2666c0cd89fee067 100644 (file)
@@ -1,10 +1,10 @@
 <?php namespace Tests;
 
-use BookStack\Book;
-use BookStack\Chapter;
-use BookStack\Tag;
-use BookStack\Page;
-use BookStack\Services\PermissionService;
+use BookStack\Entities\Book;
+use BookStack\Entities\Chapter;
+use BookStack\Actions\Tag;
+use BookStack\Entities\Page;
+use BookStack\Auth\Permissions\PermissionService;
 
 class TagTest extends BrowserKitTest
 {
@@ -13,7 +13,7 @@ class TagTest extends BrowserKitTest
 
     /**
      * Get an instance of a page that has many tags.
-     * @param Tag[]|bool $tags
+     * @param \BookStack\Actions\Tag[]|bool $tags
      * @return mixed
      */
     protected function getEntityWithTags($class, $tags = false)
index 0f1e772e937e86660110f1ca171642872b33d693..d5c13cd95be80c6436342b463c3e8093ddfa14a2 100644 (file)
@@ -1,9 +1,9 @@
 <?php namespace Tests;
 
-use BookStack\Image;
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
-use BookStack\Services\ImageService;
+use BookStack\Uploads\Image;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
+use BookStack\Uploads\ImageService;
 
 class ImageTest extends TestCase
 {
index 540125fd11129cd0a80432d9b4ed3987ba9da92b..cc4211843c125c2d52643800443102860a2f20dd 100644 (file)
@@ -1,16 +1,18 @@
 <?php namespace Tests;
 
-use BookStack\Book;
-use BookStack\Bookshelf;
-use BookStack\Entity;
-use BookStack\User;
-use BookStack\Repos\EntityRepo;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Entity;
+use BookStack\Auth\User;
+use BookStack\Entities\EntityRepo;
+use BookStack\Entities\Page;
 
 class RestrictionsTest extends BrowserKitTest
 {
 
     /**
-     * @var User
+     * @var \BookStack\Auth\User
      */
     protected $user;
 
@@ -223,7 +225,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_chapter_view_restriction()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $chapterPage = $chapter->pages->first();
 
         $chapterUrl = $chapter->getUrl();
@@ -248,7 +250,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_chapter_create_restriction()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
 
         $chapterUrl = $chapter->getUrl();
         $this->actingAs($this->user)
@@ -275,7 +277,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_chapter_update_restriction()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $chapterPage = $chapter->pages->first();
 
         $chapterUrl = $chapter->getUrl();
@@ -300,7 +302,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_chapter_delete_restriction()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $chapterPage = $chapter->pages->first();
 
         $chapterUrl = $chapter->getUrl();
@@ -325,7 +327,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_page_view_restriction()
     {
-        $page = \BookStack\Page::first();
+        $page = \BookStack\Entities\Page::first();
 
         $pageUrl = $page->getUrl();
         $this->actingAs($this->user)
@@ -345,7 +347,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_page_update_restriction()
     {
-        $page = \BookStack\Chapter::first();
+        $page = Chapter::first();
 
         $pageUrl = $page->getUrl();
         $this->actingAs($this->user)
@@ -365,7 +367,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_page_delete_restriction()
     {
-        $page = \BookStack\Page::first();
+        $page = \BookStack\Entities\Page::first();
 
         $pageUrl = $page->getUrl();
         $this->actingAs($this->user)
@@ -394,7 +396,7 @@ class RestrictionsTest extends BrowserKitTest
             ->seeInDatabase('bookshelves', ['id' => $shelf->id, 'restricted' => true])
             ->seeInDatabase('entity_permissions', [
                 'restrictable_id' => $shelf->id,
-                'restrictable_type' => 'BookStack\Bookshelf',
+                'restrictable_type' => Bookshelf::newModelInstance()->getMorphClass(),
                 'role_id' => '2',
                 'action' => 'view'
             ]);
@@ -411,7 +413,7 @@ class RestrictionsTest extends BrowserKitTest
             ->seeInDatabase('books', ['id' => $book->id, 'restricted' => true])
             ->seeInDatabase('entity_permissions', [
                 'restrictable_id' => $book->id,
-                'restrictable_type' => 'BookStack\Book',
+                'restrictable_type' => Book::newModelInstance()->getMorphClass(),
                 'role_id' => '2',
                 'action' => 'view'
             ]);
@@ -419,7 +421,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_chapter_restriction_form()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $this->asAdmin()->visit($chapter->getUrl() . '/permissions')
             ->see('Chapter Permissions')
             ->check('restricted')
@@ -428,7 +430,7 @@ class RestrictionsTest extends BrowserKitTest
             ->seeInDatabase('chapters', ['id' => $chapter->id, 'restricted' => true])
             ->seeInDatabase('entity_permissions', [
                 'restrictable_id' => $chapter->id,
-                'restrictable_type' => 'BookStack\Chapter',
+                'restrictable_type' => Chapter::newModelInstance()->getMorphClass(),
                 'role_id' => '2',
                 'action' => 'update'
             ]);
@@ -436,7 +438,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_page_restriction_form()
     {
-        $page = \BookStack\Page::first();
+        $page = \BookStack\Entities\Page::first();
         $this->asAdmin()->visit($page->getUrl() . '/permissions')
             ->see('Page Permissions')
             ->check('restricted')
@@ -445,7 +447,7 @@ class RestrictionsTest extends BrowserKitTest
             ->seeInDatabase('pages', ['id' => $page->id, 'restricted' => true])
             ->seeInDatabase('entity_permissions', [
                 'restrictable_id' => $page->id,
-                'restrictable_type' => 'BookStack\Page',
+                'restrictable_type' => Page::newModelInstance()->getMorphClass(),
                 'role_id' => '2',
                 'action' => 'delete'
             ]);
@@ -453,7 +455,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_restricted_pages_not_visible_in_book_navigation_on_pages()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $page = $chapter->pages->first();
         $page2 = $chapter->pages[2];
 
@@ -466,7 +468,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_restricted_pages_not_visible_in_book_navigation_on_chapters()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $page = $chapter->pages->first();
 
         $this->setEntityRestrictions($page, []);
@@ -478,7 +480,7 @@ class RestrictionsTest extends BrowserKitTest
 
     public function test_restricted_pages_not_visible_on_chapter_pages()
     {
-        $chapter = \BookStack\Chapter::first();
+        $chapter = Chapter::first();
         $page = $chapter->pages->first();
 
         $this->setEntityRestrictions($page, []);
index e0f827d0246af435bcc8f93d80c7f56895e35384..95cb7cd5726ec7e54bd31902a86511f6a745386b 100644 (file)
@@ -1,9 +1,9 @@
 <?php namespace Tests;
 
-use BookStack\Bookshelf;
-use BookStack\Page;
-use BookStack\Repos\PermissionsRepo;
-use BookStack\Role;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Page;
+use BookStack\Auth\Permissions\PermissionsRepo;
+use BookStack\Auth\Role;
 use Laravel\BrowserKitTesting\HttpException;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 
@@ -24,7 +24,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_cannot_delete_admin_role()
     {
-        $adminRole = \BookStack\Role::getRole('admin');
+        $adminRole = \BookStack\Auth\Role::getRole('admin');
         $deletePageUrl = '/settings/roles/delete/' . $adminRole->id;
         $this->asAdmin()->visit($deletePageUrl)
             ->press('Confirm')
@@ -108,7 +108,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_restrictions_manage_all_permission()
     {
-        $page = \BookStack\Page::take(1)->get()->first();
+        $page = \BookStack\Entities\Page::take(1)->get()->first();
         $this->actingAs($this->user)->visit($page->getUrl())
             ->dontSee('Permissions')
             ->visit($page->getUrl() . '/permissions')
@@ -122,7 +122,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_restrictions_manage_own_permission()
     {
-        $otherUsersPage = \BookStack\Page::first();
+        $otherUsersPage = \BookStack\Entities\Page::first();
         $content = $this->createEntityChainBelongingToUser($this->user);
         // Check can't restrict other's content
         $this->actingAs($this->user)->visit($otherUsersPage->getUrl())
@@ -214,7 +214,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_bookshelves_edit_all_permission()
     {
-        $otherShelf = \BookStack\Bookshelf::first();
+        $otherShelf = \BookStack\Entities\Bookshelf::first();
         $this->checkAccessPermission('bookshelf-update-all', [
             $otherShelf->getUrl('/edit')
         ], [
@@ -225,7 +225,7 @@ class RolesTest extends BrowserKitTest
     public function test_bookshelves_delete_own_permission()
     {
         $this->giveUserPermissions($this->user, ['bookshelf-update-all']);
-        $otherShelf = \BookStack\Bookshelf::first();
+        $otherShelf = \BookStack\Entities\Bookshelf::first();
         $ownShelf = $this->newShelf(['name' => 'test-shelf', 'slug' => 'test-shelf']);
         $ownShelf->forceFill(['created_by' => $this->user->id, 'updated_by' => $this->user->id])->save();
         $this->regenEntityPermissions($ownShelf);
@@ -249,7 +249,7 @@ class RolesTest extends BrowserKitTest
     public function test_bookshelves_delete_all_permission()
     {
         $this->giveUserPermissions($this->user, ['bookshelf-update-all']);
-        $otherShelf = \BookStack\Bookshelf::first();
+        $otherShelf = \BookStack\Entities\Bookshelf::first();
         $this->checkAccessPermission('bookshelf-delete-all', [
             $otherShelf->getUrl('/delete')
         ], [
@@ -279,7 +279,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_books_edit_own_permission()
     {
-        $otherBook = \BookStack\Book::take(1)->get()->first();
+        $otherBook = \BookStack\Entities\Book::take(1)->get()->first();
         $ownBook = $this->createEntityChainBelongingToUser($this->user)['book'];
         $this->checkAccessPermission('book-update-own', [
             $ownBook->getUrl() . '/edit'
@@ -295,7 +295,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_books_edit_all_permission()
     {
-        $otherBook = \BookStack\Book::take(1)->get()->first();
+        $otherBook = \BookStack\Entities\Book::take(1)->get()->first();
         $this->checkAccessPermission('book-update-all', [
             $otherBook->getUrl() . '/edit'
         ], [
@@ -306,7 +306,7 @@ class RolesTest extends BrowserKitTest
     public function test_books_delete_own_permission()
     {
         $this->giveUserPermissions($this->user, ['book-update-all']);
-        $otherBook = \BookStack\Book::take(1)->get()->first();
+        $otherBook = \BookStack\Entities\Book::take(1)->get()->first();
         $ownBook = $this->createEntityChainBelongingToUser($this->user)['book'];
         $this->checkAccessPermission('book-delete-own', [
             $ownBook->getUrl() . '/delete'
@@ -327,7 +327,7 @@ class RolesTest extends BrowserKitTest
     public function test_books_delete_all_permission()
     {
         $this->giveUserPermissions($this->user, ['book-update-all']);
-        $otherBook = \BookStack\Book::take(1)->get()->first();
+        $otherBook = \BookStack\Entities\Book::take(1)->get()->first();
         $this->checkAccessPermission('book-delete-all', [
             $otherBook->getUrl() . '/delete'
         ], [
@@ -342,7 +342,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_chapter_create_own_permissions()
     {
-        $book = \BookStack\Book::take(1)->get()->first();
+        $book = \BookStack\Entities\Book::take(1)->get()->first();
         $ownBook = $this->createEntityChainBelongingToUser($this->user)['book'];
         $this->checkAccessPermission('chapter-create-own', [
             $ownBook->getUrl('/create-chapter')
@@ -364,7 +364,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_chapter_create_all_permissions()
     {
-        $book = \BookStack\Book::take(1)->get()->first();
+        $book = \BookStack\Entities\Book::take(1)->get()->first();
         $this->checkAccessPermission('chapter-create-all', [
             $book->getUrl('/create-chapter')
         ], [
@@ -380,7 +380,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_chapter_edit_own_permission()
     {
-        $otherChapter = \BookStack\Chapter::take(1)->get()->first();
+        $otherChapter = \BookStack\Entities\Chapter::take(1)->get()->first();
         $ownChapter = $this->createEntityChainBelongingToUser($this->user)['chapter'];
         $this->checkAccessPermission('chapter-update-own', [
             $ownChapter->getUrl() . '/edit'
@@ -396,7 +396,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_chapter_edit_all_permission()
     {
-        $otherChapter = \BookStack\Chapter::take(1)->get()->first();
+        $otherChapter = \BookStack\Entities\Chapter::take(1)->get()->first();
         $this->checkAccessPermission('chapter-update-all', [
             $otherChapter->getUrl() . '/edit'
         ], [
@@ -407,7 +407,7 @@ class RolesTest extends BrowserKitTest
     public function test_chapter_delete_own_permission()
     {
         $this->giveUserPermissions($this->user, ['chapter-update-all']);
-        $otherChapter = \BookStack\Chapter::take(1)->get()->first();
+        $otherChapter = \BookStack\Entities\Chapter::take(1)->get()->first();
         $ownChapter = $this->createEntityChainBelongingToUser($this->user)['chapter'];
         $this->checkAccessPermission('chapter-delete-own', [
             $ownChapter->getUrl() . '/delete'
@@ -429,7 +429,7 @@ class RolesTest extends BrowserKitTest
     public function test_chapter_delete_all_permission()
     {
         $this->giveUserPermissions($this->user, ['chapter-update-all']);
-        $otherChapter = \BookStack\Chapter::take(1)->get()->first();
+        $otherChapter = \BookStack\Entities\Chapter::take(1)->get()->first();
         $this->checkAccessPermission('chapter-delete-all', [
             $otherChapter->getUrl() . '/delete'
         ], [
@@ -445,8 +445,8 @@ class RolesTest extends BrowserKitTest
 
     public function test_page_create_own_permissions()
     {
-        $book = \BookStack\Book::first();
-        $chapter = \BookStack\Chapter::first();
+        $book = \BookStack\Entities\Book::first();
+        $chapter = \BookStack\Entities\Chapter::first();
 
         $entities = $this->createEntityChainBelongingToUser($this->user);
         $ownBook = $entities['book'];
@@ -470,7 +470,7 @@ class RolesTest extends BrowserKitTest
 
         foreach ($accessUrls as $index => $url) {
             $this->actingAs($this->user)->visit($url);
-            $expectedUrl = \BookStack\Page::where('draft', '=', true)->orderBy('id', 'desc')->first()->getUrl();
+            $expectedUrl = \BookStack\Entities\Page::where('draft', '=', true)->orderBy('id', 'desc')->first()->getUrl();
             $this->seePageIs($expectedUrl);
         }
 
@@ -492,8 +492,8 @@ class RolesTest extends BrowserKitTest
 
     public function test_page_create_all_permissions()
     {
-        $book = \BookStack\Book::take(1)->get()->first();
-        $chapter = \BookStack\Chapter::take(1)->get()->first();
+        $book = \BookStack\Entities\Book::take(1)->get()->first();
+        $chapter = \BookStack\Entities\Chapter::take(1)->get()->first();
         $baseUrl = $book->getUrl() . '/page';
         $createUrl = $book->getUrl('/create-page');
 
@@ -514,7 +514,7 @@ class RolesTest extends BrowserKitTest
 
         foreach ($accessUrls as $index => $url) {
             $this->actingAs($this->user)->visit($url);
-            $expectedUrl = \BookStack\Page::where('draft', '=', true)->orderBy('id', 'desc')->first()->getUrl();
+            $expectedUrl = \BookStack\Entities\Page::where('draft', '=', true)->orderBy('id', 'desc')->first()->getUrl();
             $this->seePageIs($expectedUrl);
         }
 
@@ -533,7 +533,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_page_edit_own_permission()
     {
-        $otherPage = \BookStack\Page::take(1)->get()->first();
+        $otherPage = \BookStack\Entities\Page::take(1)->get()->first();
         $ownPage = $this->createEntityChainBelongingToUser($this->user)['page'];
         $this->checkAccessPermission('page-update-own', [
             $ownPage->getUrl() . '/edit'
@@ -549,7 +549,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_page_edit_all_permission()
     {
-        $otherPage = \BookStack\Page::take(1)->get()->first();
+        $otherPage = \BookStack\Entities\Page::take(1)->get()->first();
         $this->checkAccessPermission('page-update-all', [
             $otherPage->getUrl() . '/edit'
         ], [
@@ -560,7 +560,7 @@ class RolesTest extends BrowserKitTest
     public function test_page_delete_own_permission()
     {
         $this->giveUserPermissions($this->user, ['page-update-all']);
-        $otherPage = \BookStack\Page::take(1)->get()->first();
+        $otherPage = \BookStack\Entities\Page::take(1)->get()->first();
         $ownPage = $this->createEntityChainBelongingToUser($this->user)['page'];
         $this->checkAccessPermission('page-delete-own', [
             $ownPage->getUrl() . '/delete'
@@ -582,7 +582,7 @@ class RolesTest extends BrowserKitTest
     public function test_page_delete_all_permission()
     {
         $this->giveUserPermissions($this->user, ['page-update-all']);
-        $otherPage = \BookStack\Page::take(1)->get()->first();
+        $otherPage = \BookStack\Entities\Page::take(1)->get()->first();
         $this->checkAccessPermission('page-delete-all', [
             $otherPage->getUrl() . '/delete'
         ], [
@@ -598,7 +598,7 @@ class RolesTest extends BrowserKitTest
 
     public function test_public_role_visible_in_user_edit_screen()
     {
-        $user = \BookStack\User::first();
+        $user = \BookStack\Auth\User::first();
         $this->asAdmin()->visit('/settings/users/' . $user->id)
             ->seeElement('#roles-admin')
             ->seeElement('#roles-public');
@@ -633,8 +633,8 @@ class RolesTest extends BrowserKitTest
     public function test_image_delete_own_permission()
     {
         $this->giveUserPermissions($this->user, ['image-update-all']);
-        $page = \BookStack\Page::first();
-        $image = factory(\BookStack\Image::class)->create(['uploaded_to' => $page->id, 'created_by' => $this->user->id, 'updated_by' => $this->user->id]);
+        $page = \BookStack\Entities\Page::first();
+        $image = factory(\BookStack\Uploads\Image::class)->create(['uploaded_to' => $page->id, 'created_by' => $this->user->id, 'updated_by' => $this->user->id]);
 
         $this->actingAs($this->user)->json('delete', '/images/' . $image->id)
             ->seeStatusCode(403);
@@ -650,8 +650,8 @@ class RolesTest extends BrowserKitTest
     {
         $this->giveUserPermissions($this->user, ['image-update-all']);
         $admin = $this->getAdmin();
-        $page = \BookStack\Page::first();
-        $image = factory(\BookStack\Image::class)->create(['uploaded_to' => $page->id, 'created_by' => $admin->id, 'updated_by' => $admin->id]);
+        $page = \BookStack\Entities\Page::first();
+        $image = factory(\BookStack\Uploads\Image::class)->create(['uploaded_to' => $page->id, 'created_by' => $admin->id, 'updated_by' => $admin->id]);
 
         $this->actingAs($this->user)->json('delete', '/images/' . $image->id)
             ->seeStatusCode(403);
@@ -672,7 +672,7 @@ class RolesTest extends BrowserKitTest
     {
         // To cover issue fixed in f99c8ff99aee9beb8c692f36d4b84dc6e651e50a.
         $page = Page::first();
-        $viewerRole = \BookStack\Role::getRole('viewer');
+        $viewerRole = \BookStack\Auth\Role::getRole('viewer');
         $viewer = $this->getViewer();
         $this->actingAs($viewer)->visit($page->getUrl())->assertResponseStatus(200);
 
@@ -690,14 +690,14 @@ class RolesTest extends BrowserKitTest
     {
         $admin = $this->getAdmin();
         // Book links
-        $book = factory(\BookStack\Book::class)->create(['created_by' => $admin->id, 'updated_by' => $admin->id]);
+        $book = factory(\BookStack\Entities\Book::class)->create(['created_by' => $admin->id, 'updated_by' => $admin->id]);
         $this->updateEntityPermissions($book);
         $this->actingAs($this->getViewer())->visit($book->getUrl())
             ->dontSee('Create a new page')
             ->dontSee('Add a chapter');
 
         // Chapter links
-        $chapter = factory(\BookStack\Chapter::class)->create(['created_by' => $admin->id, 'updated_by' => $admin->id, 'book_id' => $book->id]);
+        $chapter = factory(\BookStack\Entities\Chapter::class)->create(['created_by' => $admin->id, 'updated_by' => $admin->id, 'book_id' => $book->id]);
         $this->updateEntityPermissions($chapter);
         $this->actingAs($this->getViewer())->visit($chapter->getUrl())
             ->dontSee('Create a new page')
@@ -781,7 +781,7 @@ class RolesTest extends BrowserKitTest
     }
 
     private function addComment($page) {
-        $comment = factory(\BookStack\Comment::class)->make();
+        $comment = factory(\BookStack\Actions\Comment::class)->make();
         $url = "/ajax/page/$page->id/comment";
         $request = [
             'text' => $comment->text,
@@ -794,7 +794,7 @@ class RolesTest extends BrowserKitTest
     }
 
     private function updateComment($commentId) {
-        $comment = factory(\BookStack\Comment::class)->make();
+        $comment = factory(\BookStack\Actions\Comment::class)->make();
         $url = "/ajax/comment/$commentId";
         $request = [
             'text' => $comment->text,
index dadb37e46ce2cac9082d98b05fef2615fee972db..671b5ee420453d266618b09a2f795de1c124d7dc 100644 (file)
@@ -6,18 +6,18 @@ class PublicActionTest extends BrowserKitTest
     public function test_app_not_public()
     {
         $this->setSettings(['app-public' => 'false']);
-        $book = \BookStack\Book::orderBy('name', 'asc')->first();
+        $book = \BookStack\Entities\Book::orderBy('name', 'asc')->first();
         $this->visit('/books')->seePageIs('/login');
         $this->visit($book->getUrl())->seePageIs('/login');
 
-        $page = \BookStack\Page::first();
+        $page = \BookStack\Entities\Page::first();
         $this->visit($page->getUrl())->seePageIs('/login');
     }
 
     public function test_books_viewable()
     {
         $this->setSettings(['app-public' => 'true']);
-        $books = \BookStack\Book::orderBy('name', 'asc')->take(10)->get();
+        $books = \BookStack\Entities\Book::orderBy('name', 'asc')->take(10)->get();
         $bookToVisit = $books[1];
 
         // Check books index page is showing
@@ -34,7 +34,7 @@ class PublicActionTest extends BrowserKitTest
     public function test_chapters_viewable()
     {
         $this->setSettings(['app-public' => 'true']);
-        $chapterToVisit = \BookStack\Chapter::first();
+        $chapterToVisit = \BookStack\Entities\Chapter::first();
         $pageToVisit = $chapterToVisit->pages()->first();
 
         // Check chapters index page is showing
@@ -52,15 +52,15 @@ class PublicActionTest extends BrowserKitTest
     public function test_public_page_creation()
     {
         $this->setSettings(['app-public' => 'true']);
-        $publicRole = \BookStack\Role::getSystemRole('public');
+        $publicRole = \BookStack\Auth\Role::getSystemRole('public');
         // Grant all permissions to public
         $publicRole->permissions()->detach();
-        foreach (\BookStack\RolePermission::all() as $perm) {
+        foreach (\BookStack\Auth\Permissions\RolePermission::all() as $perm) {
             $publicRole->attachPermission($perm);
         }
-        $this->app[\BookStack\Services\PermissionService::class]->buildJointPermissionForRole($publicRole);
+        $this->app[\BookStack\Auth\Permissions\PermissionService::class]->buildJointPermissionForRole($publicRole);
 
-        $chapter = \BookStack\Chapter::first();
+        $chapter = \BookStack\Entities\Chapter::first();
         $this->visit($chapter->book->getUrl());
         $this->visit($chapter->getUrl())
             ->click('New Page')
@@ -71,7 +71,7 @@ class PublicActionTest extends BrowserKitTest
             'name' => 'My guest page'
         ])->seePageIs($chapter->book->getUrl('/page/my-guest-page/edit'));
 
-        $user = \BookStack\User::getDefault();
+        $user = \BookStack\Auth\User::getDefault();
         $this->seeInDatabase('pages', [
             'name' => 'My guest page',
             'chapter_id' => $chapter->id,
@@ -82,7 +82,7 @@ class PublicActionTest extends BrowserKitTest
 
     public function test_content_not_listed_on_404_for_public_users()
     {
-        $page = \BookStack\Page::first();
+        $page = \BookStack\Entities\Page::first();
         $this->asAdmin()->visit($page->getUrl());
         \Auth::logout();
         view()->share('pageTitle', '');
index ad983423c6f1122fcf056a6a15cdc48c4bfd22c5..80fab874c9299297d18905e87bb6eaa49ff785af 100644 (file)
@@ -1,15 +1,15 @@
 <?php namespace Tests;
 
-use BookStack\Book;
-use BookStack\Bookshelf;
-use BookStack\Chapter;
-use BookStack\Entity;
-use BookStack\Page;
-use BookStack\Repos\EntityRepo;
-use BookStack\Repos\PermissionsRepo;
-use BookStack\Role;
-use BookStack\Services\PermissionService;
-use BookStack\Services\SettingService;
+use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
+use BookStack\Entities\Chapter;
+use BookStack\Entities\Entity;
+use BookStack\Entities\Page;
+use BookStack\Entities\EntityRepo;
+use BookStack\Auth\Permissions\PermissionsRepo;
+use BookStack\Auth\Role;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Settings\SettingService;
 
 trait SharedTestHelpers
 {
@@ -67,7 +67,7 @@ trait SharedTestHelpers
      */
     protected function getViewer($attributes = [])
     {
-        $user = \BookStack\Role::getRole('viewer')->users()->first();
+        $user = \BookStack\Auth\Role::getRole('viewer')->users()->first();
         if (!empty($attributes)) $user->forceFill($attributes)->save();
         return $user;
     }
@@ -85,7 +85,7 @@ trait SharedTestHelpers
     /**
      * Create and return a new bookshelf.
      * @param array $input
-     * @return Bookshelf
+     * @return \BookStack\Entities\Bookshelf
      */
     public function newShelf($input = ['name' => 'test shelf', 'description' => 'My new test shelf']) {
         return $this->app[EntityRepo::class]->createFromInput('bookshelf', $input, false);
@@ -104,7 +104,7 @@ trait SharedTestHelpers
      * Create and return a new test chapter
      * @param array $input
      * @param Book $book
-     * @return Chapter
+     * @return \BookStack\Entities\Chapter
      */
     public function newChapter($input = ['name' => 'test chapter', 'description' => 'My new test chapter'], Book $book) {
         return $this->app[EntityRepo::class]->createFromInput('chapter', $input, $book);
@@ -164,10 +164,10 @@ trait SharedTestHelpers
 
     /**
      * Give the given user some permissions.
-     * @param \BookStack\User $user
+     * @param \BookStack\Auth\User $user
      * @param array $permissions
      */
-    protected function giveUserPermissions(\BookStack\User $user, $permissions = [])
+    protected function giveUserPermissions(\BookStack\Auth\User $user, $permissions = [])
     {
         $newRole = $this->createNewRole($permissions);
         $user->attachRole($newRole);
index c1e254090f27ac1d336001fd7e5630a6813bcc27..0c29f63c5953d1752acbaeb6d890e83ad985d7ea 100644 (file)
@@ -7,7 +7,7 @@ class UserProfileTest extends BrowserKitTest
     public function setUp()
     {
         parent::setUp();
-        $this->user = \BookStack\User::all()->last();
+        $this->user = \BookStack\Auth\User::all()->last();
     }
 
     public function test_profile_page_shows_name()
@@ -87,7 +87,7 @@ class UserProfileTest extends BrowserKitTest
 
     public function test_guest_profile_cannot_be_deleted()
     {
-        $guestUser = \BookStack\User::getDefault();
+        $guestUser = \BookStack\Auth\User::getDefault();
         $this->asAdmin()->visit('/settings/users/' . $guestUser->id . '/delete')
             ->see('Delete User')->see('Guest')
             ->press('Confirm')