mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Re-structured the app code to be feature based rather than code type based
This commit is contained in:
parent
19751ed1cb
commit
919660678b
@ -1,6 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace BookStack;
|
namespace BookStack\Actions;
|
||||||
|
|
||||||
|
use BookStack\Auth\User;
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property string key
|
* @property string key
|
@ -1,7 +1,8 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
use BookStack\Activity;
|
use BookStack\Actions\Activity;
|
||||||
use BookStack\Entity;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
|
use BookStack\Entities\Entity;
|
||||||
use Session;
|
use Session;
|
||||||
|
|
||||||
class ActivityService
|
class ActivityService
|
||||||
@ -12,7 +13,7 @@ class ActivityService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ActivityService constructor.
|
* ActivityService constructor.
|
||||||
* @param Activity $activity
|
* @param \BookStack\Actions\Activity $activity
|
||||||
* @param PermissionService $permissionService
|
* @param PermissionService $permissionService
|
||||||
*/
|
*/
|
||||||
public function __construct(Activity $activity, PermissionService $permissionService)
|
public function __construct(Activity $activity, PermissionService $permissionService)
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
|
use BookStack\Ownable;
|
||||||
|
|
||||||
class Comment extends Ownable
|
class Comment extends Ownable
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace BookStack\Repos;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
use BookStack\Comment;
|
use BookStack\Actions\Comment;
|
||||||
use BookStack\Entity;
|
use BookStack\Entities\Entity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CommentRepo
|
* Class CommentRepo
|
||||||
@ -11,13 +11,13 @@ class CommentRepo
|
|||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Comment $comment
|
* @var \BookStack\Actions\Comment $comment
|
||||||
*/
|
*/
|
||||||
protected $comment;
|
protected $comment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CommentRepo constructor.
|
* CommentRepo constructor.
|
||||||
* @param Comment $comment
|
* @param \BookStack\Actions\Comment $comment
|
||||||
*/
|
*/
|
||||||
public function __construct(Comment $comment)
|
public function __construct(Comment $comment)
|
||||||
{
|
{
|
||||||
@ -27,7 +27,7 @@ class CommentRepo
|
|||||||
/**
|
/**
|
||||||
* Get a comment by ID.
|
* Get a comment by ID.
|
||||||
* @param $id
|
* @param $id
|
||||||
* @return Comment|\Illuminate\Database\Eloquent\Model
|
* @return \BookStack\Actions\Comment|\Illuminate\Database\Eloquent\Model
|
||||||
*/
|
*/
|
||||||
public function getById($id)
|
public function getById($id)
|
||||||
{
|
{
|
||||||
@ -36,9 +36,9 @@ class CommentRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new comment on an entity.
|
* Create a new comment on an entity.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @return Comment
|
* @return \BookStack\Actions\Comment
|
||||||
*/
|
*/
|
||||||
public function create(Entity $entity, $data = [])
|
public function create(Entity $entity, $data = [])
|
||||||
{
|
{
|
||||||
@ -53,7 +53,7 @@ class CommentRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Update an existing comment.
|
* Update an existing comment.
|
||||||
* @param Comment $comment
|
* @param \BookStack\Actions\Comment $comment
|
||||||
* @param array $input
|
* @param array $input
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@ -66,7 +66,7 @@ class CommentRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a comment from the system.
|
* Delete a comment from the system.
|
||||||
* @param Comment $comment
|
* @param \BookStack\Actions\Comment $comment
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function delete($comment)
|
public function delete($comment)
|
||||||
@ -76,7 +76,7 @@ class CommentRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the next local ID relative to the linked entity.
|
* Get the next local ID relative to the linked entity.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
protected function getNextLocalId(Entity $entity)
|
protected function getNextLocalId(Entity $entity)
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Attribute
|
* Class Attribute
|
@ -1,8 +1,7 @@
|
|||||||
<?php namespace BookStack\Repos;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
use BookStack\Tag;
|
use BookStack\Entities\Entity;
|
||||||
use BookStack\Entity;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use BookStack\Services\PermissionService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class TagRepo
|
* Class TagRepo
|
||||||
@ -17,9 +16,9 @@ class TagRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* TagRepo constructor.
|
* TagRepo constructor.
|
||||||
* @param Tag $attr
|
* @param \BookStack\Actions\Tag $attr
|
||||||
* @param Entity $ent
|
* @param \BookStack\Entities\Entity $ent
|
||||||
* @param PermissionService $ps
|
* @param \BookStack\Auth\Permissions\PermissionService $ps
|
||||||
*/
|
*/
|
||||||
public function __construct(Tag $attr, Entity $ent, 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
|
* Save an array of tags to an entity
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @param array $tags
|
* @param array $tags
|
||||||
* @return array|\Illuminate\Database\Eloquent\Collection
|
* @return array|\Illuminate\Database\Eloquent\Collection
|
||||||
*/
|
*/
|
||||||
@ -128,7 +127,7 @@ class TagRepo
|
|||||||
/**
|
/**
|
||||||
* Create a new Tag instance from user input.
|
* Create a new Tag instance from user input.
|
||||||
* @param $input
|
* @param $input
|
||||||
* @return Tag
|
* @return \BookStack\Actions\Tag
|
||||||
*/
|
*/
|
||||||
protected function newInstanceFromInput($input)
|
protected function newInstanceFromInput($input)
|
||||||
{
|
{
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
class View extends Model
|
class View extends Model
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Actions;
|
||||||
|
|
||||||
use BookStack\Entity;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use BookStack\View;
|
use BookStack\Entities\Entity;
|
||||||
|
|
||||||
class ViewService
|
class ViewService
|
||||||
{
|
{
|
||||||
@ -10,8 +10,8 @@ class ViewService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ViewService constructor.
|
* ViewService constructor.
|
||||||
* @param View $view
|
* @param \BookStack\Actions\View $view
|
||||||
* @param PermissionService $permissionService
|
* @param \BookStack\Auth\Permissions\PermissionService $permissionService
|
||||||
*/
|
*/
|
||||||
public function __construct(View $view, PermissionService $permissionService)
|
public function __construct(View $view, PermissionService $permissionService)
|
||||||
{
|
{
|
||||||
@ -50,12 +50,13 @@ class ViewService
|
|||||||
* Get the entities with the most views.
|
* Get the entities with the most views.
|
||||||
* @param int $count
|
* @param int $count
|
||||||
* @param int $page
|
* @param int $page
|
||||||
* @param bool|false|array $filterModel
|
* @param Entity|false|array $filterModel
|
||||||
* @param string $action - used for permission checking
|
* @param string $action - used for permission checking
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public function getPopular($count = 10, $page = 0, $filterModel = false, $action = 'view')
|
public function getPopular($count = 10, $page = 0, $filterModel = false, $action = 'view')
|
||||||
{
|
{
|
||||||
|
// TODO - Standardise input filter
|
||||||
$skipCount = $count * $page;
|
$skipCount = $count * $page;
|
||||||
$query = $this->permissionService->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type', $action)
|
$query = $this->permissionService->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type', $action)
|
||||||
->select('*', 'viewable_id', 'viewable_type', \DB::raw('SUM(views) as view_count'))
|
->select('*', 'viewable_id', 'viewable_type', \DB::raw('SUM(views) as view_count'))
|
||||||
@ -65,7 +66,7 @@ class ViewService
|
|||||||
if ($filterModel && is_array($filterModel)) {
|
if ($filterModel && is_array($filterModel)) {
|
||||||
$query->whereIn('viewable_type', $filterModel);
|
$query->whereIn('viewable_type', $filterModel);
|
||||||
} else if ($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');
|
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');
|
->filterRestrictedEntityRelations($this->view, 'views', 'viewable_id', 'viewable_type');
|
||||||
|
|
||||||
if ($filterModel) {
|
if ($filterModel) {
|
||||||
$query = $query->where('viewable_type', '=', get_class($filterModel));
|
$query = $query->where('viewable_type', '=', $filterModel->getMorphClass());
|
||||||
}
|
}
|
||||||
$query = $query->where('user_id', '=', $user->id);
|
$query = $query->where('user_id', '=', $user->id);
|
||||||
|
|
@ -1,11 +1,11 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Auth\Access;
|
||||||
|
|
||||||
use BookStack\Notifications\ConfirmEmail;
|
use BookStack\Notifications\ConfirmEmail;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use BookStack\Exceptions\ConfirmationEmailException;
|
use BookStack\Exceptions\ConfirmationEmailException;
|
||||||
use BookStack\Exceptions\UserRegistrationException;
|
use BookStack\Exceptions\UserRegistrationException;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Illuminate\Database\Connection as Database;
|
use Illuminate\Database\Connection as Database;
|
||||||
|
|
||||||
class EmailConfirmationService
|
class EmailConfirmationService
|
||||||
@ -16,7 +16,7 @@ class EmailConfirmationService
|
|||||||
/**
|
/**
|
||||||
* EmailConfirmationService constructor.
|
* EmailConfirmationService constructor.
|
||||||
* @param Database $db
|
* @param Database $db
|
||||||
* @param UserRepo $users
|
* @param \BookStack\Auth\UserRepo $users
|
||||||
*/
|
*/
|
||||||
public function __construct(Database $db, UserRepo $users)
|
public function __construct(Database $db, UserRepo $users)
|
||||||
{
|
{
|
||||||
@ -27,7 +27,7 @@ class EmailConfirmationService
|
|||||||
/**
|
/**
|
||||||
* Create new confirmation for a user,
|
* Create new confirmation for a user,
|
||||||
* Also removes any existing old ones.
|
* Also removes any existing old ones.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @throws ConfirmationEmailException
|
* @throws ConfirmationEmailException
|
||||||
*/
|
*/
|
||||||
public function sendConfirmation(User $user)
|
public function sendConfirmation(User $user)
|
||||||
@ -88,7 +88,7 @@ class EmailConfirmationService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete all email confirmations that belong to a user.
|
* Delete all email confirmations that belong to a user.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function deleteConfirmationsByUser(User $user)
|
public function deleteConfirmationsByUser(User $user)
|
@ -1,4 +1,4 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Auth\Access;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Ldap
|
* Class Ldap
|
@ -1,9 +1,11 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Auth\Access;
|
||||||
|
|
||||||
|
use BookStack\Auth\Access;
|
||||||
use BookStack\Exceptions\LdapException;
|
use BookStack\Exceptions\LdapException;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
|
use BookStack\Auth\Access\Ldap;
|
||||||
use Illuminate\Contracts\Auth\Authenticatable;
|
use Illuminate\Contracts\Auth\Authenticatable;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
@ -24,9 +26,9 @@ class LdapService
|
|||||||
/**
|
/**
|
||||||
* LdapService constructor.
|
* LdapService constructor.
|
||||||
* @param Ldap $ldap
|
* @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->ldap = $ldap;
|
||||||
$this->config = config('services.ldap');
|
$this->config = config('services.ldap');
|
||||||
@ -298,7 +300,7 @@ class LdapService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sync the LDAP groups to the user roles for the current user
|
* Sync the LDAP groups to the user roles for the current user
|
||||||
* @param \BookStack\User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @param string $username
|
* @param string $username
|
||||||
* @throws LdapException
|
* @throws LdapException
|
||||||
*/
|
*/
|
||||||
@ -347,7 +349,7 @@ class LdapService
|
|||||||
/**
|
/**
|
||||||
* Check a role against an array of group names to see if it matches.
|
* 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.
|
* 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
|
* @param array $groupNames
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
@ -1,11 +1,11 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Auth\Access;
|
||||||
|
|
||||||
use BookStack\Exceptions\SocialSignInAccountNotUsed;
|
use BookStack\Exceptions\SocialSignInAccountNotUsed;
|
||||||
use Laravel\Socialite\Contracts\Factory as Socialite;
|
use Laravel\Socialite\Contracts\Factory as Socialite;
|
||||||
use BookStack\Exceptions\SocialDriverNotConfigured;
|
use BookStack\Exceptions\SocialDriverNotConfigured;
|
||||||
use BookStack\Exceptions\UserRegistrationException;
|
use BookStack\Exceptions\UserRegistrationException;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\SocialAccount;
|
use BookStack\Auth\SocialAccount;
|
||||||
use Laravel\Socialite\Contracts\User as SocialUser;
|
use Laravel\Socialite\Contracts\User as SocialUser;
|
||||||
|
|
||||||
class SocialAuthService
|
class SocialAuthService
|
||||||
@ -19,7 +19,7 @@ class SocialAuthService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* SocialAuthService constructor.
|
* SocialAuthService constructor.
|
||||||
* @param UserRepo $userRepo
|
* @param \BookStack\Auth\UserRepo $userRepo
|
||||||
* @param Socialite $socialite
|
* @param Socialite $socialite
|
||||||
* @param SocialAccount $socialAccount
|
* @param SocialAccount $socialAccount
|
||||||
*/
|
*/
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Auth\Permissions;
|
||||||
|
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
class EntityPermission extends Model
|
class EntityPermission extends Model
|
||||||
{
|
{
|
@ -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
|
class JointPermission extends Model
|
||||||
{
|
{
|
@ -1,15 +1,16 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Auth\Permissions;
|
||||||
|
|
||||||
use BookStack\Book;
|
use BookStack\Auth\Permissions;
|
||||||
use BookStack\Bookshelf;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Bookshelf;
|
||||||
use BookStack\Entity;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\EntityPermission;
|
use BookStack\Entities\Entity;
|
||||||
use BookStack\JointPermission;
|
use BookStack\Auth\Permissions\EntityPermission;
|
||||||
|
use BookStack\Auth\Permissions\JointPermission;
|
||||||
use BookStack\Ownable;
|
use BookStack\Ownable;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Illuminate\Database\Connection;
|
use Illuminate\Database\Connection;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
@ -44,12 +45,12 @@ class PermissionService
|
|||||||
* @param Connection $db
|
* @param Connection $db
|
||||||
* @param Bookshelf $bookshelf
|
* @param Bookshelf $bookshelf
|
||||||
* @param Book $book
|
* @param Book $book
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
JointPermission $jointPermission,
|
JointPermission $jointPermission,
|
||||||
EntityPermission $entityPermission,
|
Permissions\EntityPermission $entityPermission,
|
||||||
Role $role,
|
Role $role,
|
||||||
Connection $db,
|
Connection $db,
|
||||||
Bookshelf $bookshelf,
|
Bookshelf $bookshelf,
|
||||||
@ -78,7 +79,7 @@ class PermissionService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare the local entity cache and ensure it's empty
|
* Prepare the local entity cache and ensure it's empty
|
||||||
* @param Entity[] $entities
|
* @param \BookStack\Entities\Entity[] $entities
|
||||||
*/
|
*/
|
||||||
protected function readyEntityCache($entities = [])
|
protected function readyEntityCache($entities = [])
|
||||||
{
|
{
|
||||||
@ -115,7 +116,7 @@ class PermissionService
|
|||||||
/**
|
/**
|
||||||
* Get a chapter via ID, Checks local cache
|
* Get a chapter via ID, Checks local cache
|
||||||
* @param $chapterId
|
* @param $chapterId
|
||||||
* @return Book
|
* @return \BookStack\Entities\Book
|
||||||
*/
|
*/
|
||||||
protected function getChapter($chapterId)
|
protected function getChapter($chapterId)
|
||||||
{
|
{
|
||||||
@ -234,7 +235,7 @@ class PermissionService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Rebuild the entity jointPermissions for a particular entity.
|
* Rebuild the entity jointPermissions for a particular entity.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
public function buildJointPermissionsForEntity(Entity $entity)
|
public function buildJointPermissionsForEntity(Entity $entity)
|
||||||
@ -329,7 +330,7 @@ class PermissionService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete all of the entity jointPermissions for a list of entities.
|
* Delete all of the entity jointPermissions for a list of entities.
|
||||||
* @param Entity[] $entities
|
* @param \BookStack\Entities\Entity[] $entities
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
protected function deleteManyJointPermissionsForEntities($entities)
|
protected function deleteManyJointPermissionsForEntities($entities)
|
||||||
@ -410,7 +411,7 @@ class PermissionService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the actions related to an entity.
|
* Get the actions related to an entity.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function getActions(Entity $entity)
|
protected function getActions(Entity $entity)
|
||||||
@ -496,7 +497,7 @@ class PermissionService
|
|||||||
/**
|
/**
|
||||||
* Create an array of data with the information of an entity jointPermissions.
|
* Create an array of data with the information of an entity jointPermissions.
|
||||||
* Used to build data for bulk insertion.
|
* Used to build data for bulk insertion.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @param Role $role
|
* @param Role $role
|
||||||
* @param $action
|
* @param $action
|
||||||
* @param $permissionAll
|
* @param $permissionAll
|
||||||
@ -554,7 +555,7 @@ class PermissionService
|
|||||||
/**
|
/**
|
||||||
* Check if an entity has restrictions set on itself or its
|
* Check if an entity has restrictions set on itself or its
|
||||||
* parent tree.
|
* parent tree.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @param $action
|
* @param $action
|
||||||
* @return bool|mixed
|
* @return bool|mixed
|
||||||
*/
|
*/
|
||||||
@ -635,7 +636,7 @@ class PermissionService
|
|||||||
/**
|
/**
|
||||||
* Add restrictions for a generic entity
|
* Add restrictions for a generic entity
|
||||||
* @param string $entityType
|
* @param string $entityType
|
||||||
* @param Builder|Entity $query
|
* @param Builder|\BookStack\Entities\Entity $query
|
||||||
* @param string $action
|
* @param string $action
|
||||||
* @return Builder
|
* @return Builder
|
||||||
*/
|
*/
|
||||||
@ -703,12 +704,13 @@ class PermissionService
|
|||||||
$this->currentAction = 'view';
|
$this->currentAction = 'view';
|
||||||
$tableDetails = ['tableName' => $tableName, 'entityIdColumn' => $entityIdColumn];
|
$tableDetails = ['tableName' => $tableName, 'entityIdColumn' => $entityIdColumn];
|
||||||
|
|
||||||
$q = $query->where(function ($query) use ($tableDetails) {
|
$pageMorphClass = $this->page->getMorphClass();
|
||||||
$query->where(function ($query) use (&$tableDetails) {
|
$q = $query->where(function ($query) use ($tableDetails, $pageMorphClass) {
|
||||||
$query->whereExists(function ($permissionQuery) use (&$tableDetails) {
|
$query->where(function ($query) use (&$tableDetails, $pageMorphClass) {
|
||||||
|
$query->whereExists(function ($permissionQuery) use (&$tableDetails, $pageMorphClass) {
|
||||||
$permissionQuery->select('id')->from('joint_permissions')
|
$permissionQuery->select('id')->from('joint_permissions')
|
||||||
->whereRaw('joint_permissions.entity_id=' . $tableDetails['tableName'] . '.' . $tableDetails['entityIdColumn'])
|
->whereRaw('joint_permissions.entity_id=' . $tableDetails['tableName'] . '.' . $tableDetails['entityIdColumn'])
|
||||||
->where('entity_type', '=', 'Bookstack\\Page')
|
->where('entity_type', '=', $pageMorphClass)
|
||||||
->where('action', '=', $this->currentAction)
|
->where('action', '=', $this->currentAction)
|
||||||
->whereIn('role_id', $this->getRoles())
|
->whereIn('role_id', $this->getRoles())
|
||||||
->where(function ($query) {
|
->where(function ($query) {
|
||||||
@ -726,7 +728,7 @@ class PermissionService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current user
|
* Get the current user
|
||||||
* @return User
|
* @return \BookStack\Auth\User
|
||||||
*/
|
*/
|
||||||
private function currentUser()
|
private function currentUser()
|
||||||
{
|
{
|
@ -1,9 +1,10 @@
|
|||||||
<?php namespace BookStack\Repos;
|
<?php namespace BookStack\Auth\Permissions;
|
||||||
|
|
||||||
|
use BookStack\Auth\Permissions;
|
||||||
use BookStack\Exceptions\PermissionsException;
|
use BookStack\Exceptions\PermissionsException;
|
||||||
use BookStack\RolePermission;
|
use BookStack\Auth\Permissions\RolePermission;
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use Setting;
|
use Setting;
|
||||||
|
|
||||||
class PermissionsRepo
|
class PermissionsRepo
|
||||||
@ -19,9 +20,9 @@ class PermissionsRepo
|
|||||||
* PermissionsRepo constructor.
|
* PermissionsRepo constructor.
|
||||||
* @param RolePermission $permission
|
* @param RolePermission $permission
|
||||||
* @param Role $role
|
* @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->permission = $permission;
|
||||||
$this->role = $role;
|
$this->role = $role;
|
@ -1,4 +1,7 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Auth\Permissions;
|
||||||
|
|
||||||
|
use BookStack\Auth\Role;
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
class RolePermission extends Model
|
class RolePermission extends Model
|
||||||
{
|
{
|
@ -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
|
class Role extends Model
|
||||||
{
|
{
|
||||||
@ -27,7 +31,7 @@ class Role extends Model
|
|||||||
*/
|
*/
|
||||||
public function permissions()
|
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.
|
* 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);
|
$this->permissions()->attach($permission->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detach a single permission from this role.
|
* 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);
|
$this->permissions()->detach($permission->id);
|
||||||
}
|
}
|
@ -1,4 +1,7 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Auth;
|
||||||
|
|
||||||
|
use BookStack\Auth\User;
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
class SocialAccount extends Model
|
class SocialAccount extends Model
|
||||||
{
|
{
|
@ -1,6 +1,10 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Auth;
|
||||||
|
|
||||||
|
use BookStack\Uploads\Image;
|
||||||
|
use BookStack\Model;
|
||||||
use BookStack\Notifications\ResetPassword;
|
use BookStack\Notifications\ResetPassword;
|
||||||
|
use BookStack\Auth\Role;
|
||||||
|
use BookStack\Auth\SocialAccount;
|
||||||
use Illuminate\Auth\Authenticatable;
|
use Illuminate\Auth\Authenticatable;
|
||||||
use Illuminate\Auth\Passwords\CanResetPassword;
|
use Illuminate\Auth\Passwords\CanResetPassword;
|
||||||
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
@ -1,10 +1,11 @@
|
|||||||
<?php namespace BookStack\Repos;
|
<?php namespace BookStack\Auth;
|
||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Image;
|
use BookStack\Uploads\Image;
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Images;
|
use Images;
|
||||||
|
|
||||||
@ -80,7 +81,7 @@ class UserRepo
|
|||||||
* Creates a new user and attaches a role to them.
|
* Creates a new user and attaches a role to them.
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @param boolean $verifyEmail
|
* @param boolean $verifyEmail
|
||||||
* @return User
|
* @return \BookStack\Auth\User
|
||||||
*/
|
*/
|
||||||
public function registerNew(array $data, $verifyEmail = false)
|
public function registerNew(array $data, $verifyEmail = false)
|
||||||
{
|
{
|
||||||
@ -122,7 +123,7 @@ class UserRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the give user is the only admin.
|
* Checks if the give user is the only admin.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function isOnlyAdmin(User $user)
|
public function isOnlyAdmin(User $user)
|
||||||
@ -142,7 +143,7 @@ class UserRepo
|
|||||||
* Create a new basic instance of user.
|
* Create a new basic instance of user.
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @param boolean $verifyEmail
|
* @param boolean $verifyEmail
|
||||||
* @return User
|
* @return \BookStack\Auth\User
|
||||||
*/
|
*/
|
||||||
public function create(array $data, $verifyEmail = false)
|
public function create(array $data, $verifyEmail = false)
|
||||||
{
|
{
|
||||||
@ -157,7 +158,7 @@ class UserRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the given user from storage, Delete all related content.
|
* Remove the given user from storage, Delete all related content.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function destroy(User $user)
|
public function destroy(User $user)
|
||||||
@ -174,7 +175,7 @@ class UserRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the latest activity for a user.
|
* Get the latest activity for a user.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @param int $count
|
* @param int $count
|
||||||
* @param int $page
|
* @param int $page
|
||||||
* @return array
|
* @return array
|
||||||
@ -186,7 +187,7 @@ class UserRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the recently created content for this given user.
|
* Get the recently created content for this given user.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @param int $count
|
* @param int $count
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@ -207,7 +208,7 @@ class UserRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get asset created counts for the give user.
|
* Get asset created counts for the give user.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getAssetCounts(User $user)
|
public function getAssetCounts(User $user)
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\Services\ImageService;
|
use BookStack\Uploads\ImageService;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ class CleanupImages extends Command
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new command instance.
|
* Create a new command instance.
|
||||||
* @param ImageService $imageService
|
* @param \BookStack\Uploads\ImageService $imageService
|
||||||
*/
|
*/
|
||||||
public function __construct(ImageService $imageService)
|
public function __construct(ImageService $imageService)
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\Activity;
|
use BookStack\Actions\Activity;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class ClearActivity extends Command
|
class ClearActivity extends Command
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\PageRevision;
|
use BookStack\Entities\PageRevision;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class ClearRevisions extends Command
|
class ClearRevisions extends Command
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class CreateAdmin extends Command
|
class CreateAdmin extends Command
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class DeleteUsers extends Command
|
class DeleteUsers extends Command
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class RegeneratePermissions extends Command
|
class RegeneratePermissions extends Command
|
||||||
@ -31,7 +31,7 @@ class RegeneratePermissions extends Command
|
|||||||
/**
|
/**
|
||||||
* Create a new command instance.
|
* Create a new command instance.
|
||||||
*
|
*
|
||||||
* @param PermissionService $permissionService
|
* @param \BookStack\Auth\\BookStack\Auth\Permissions\PermissionService $permissionService
|
||||||
*/
|
*/
|
||||||
public function __construct(PermissionService $permissionService)
|
public function __construct(PermissionService $permissionService)
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace BookStack\Console\Commands;
|
namespace BookStack\Console\Commands;
|
||||||
|
|
||||||
use BookStack\Services\SearchService;
|
use BookStack\Entities\SearchService;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
class RegenerateSearch extends Command
|
class RegenerateSearch extends Command
|
||||||
@ -26,7 +26,7 @@ class RegenerateSearch extends Command
|
|||||||
/**
|
/**
|
||||||
* Create a new command instance.
|
* Create a new command instance.
|
||||||
*
|
*
|
||||||
* @param SearchService $searchService
|
* @param \BookStack\Entities\SearchService $searchService
|
||||||
*/
|
*/
|
||||||
public function __construct(SearchService $searchService)
|
public function __construct(SearchService $searchService)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
|
use BookStack\Uploads\Image;
|
||||||
|
use BookStack\Entities\Page;
|
||||||
|
|
||||||
class Book extends Entity
|
class Book extends Entity
|
||||||
{
|
{
|
||||||
@ -6,6 +9,15 @@ class Book extends Entity
|
|||||||
|
|
||||||
protected $fillable = ['name', 'description', 'image_id'];
|
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.
|
* Get the url for this book.
|
||||||
* @param string|bool $path
|
* @param string|bool $path
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
|
use BookStack\Uploads\Image;
|
||||||
|
|
||||||
class Bookshelf extends Entity
|
class Bookshelf extends Entity
|
||||||
{
|
{
|
||||||
@ -8,6 +10,15 @@ class Bookshelf extends Entity
|
|||||||
|
|
||||||
protected $fillable = ['name', 'description', 'image_id'];
|
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.
|
* Get the books in this shelf.
|
||||||
* Should not be used directly since does not take into account permissions.
|
* Should not be used directly since does not take into account permissions.
|
@ -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
|
class Chapter extends Entity
|
||||||
{
|
{
|
||||||
@ -6,6 +10,15 @@ class Chapter extends Entity
|
|||||||
|
|
||||||
protected $fillable = ['name', 'description', 'priority', 'book_id'];
|
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.
|
* Get the book this chapter is within.
|
||||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
@ -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;
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
|
|
||||||
class Entity extends Ownable
|
class Entity extends Ownable
|
||||||
@ -15,6 +22,17 @@ class Entity extends Ownable
|
|||||||
*/
|
*/
|
||||||
public $searchFactor = 1.0;
|
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.
|
* Compares this entity to another given entity.
|
||||||
* Matches by comparing class and id.
|
* Matches by comparing class and id.
|
||||||
@ -158,7 +176,7 @@ class Entity extends Ownable
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return app('BookStack\\' . $className);
|
return app('BookStack\\Entities\\' . $className);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
7
app/Entities/EntityProvider.php
Normal file
7
app/Entities/EntityProvider.php
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
|
|
||||||
|
class EntityProvider
|
||||||
|
{
|
||||||
|
// TODO -
|
||||||
|
}
|
@ -1,17 +1,18 @@
|
|||||||
<?php namespace BookStack\Repos;
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Bookshelf;
|
use BookStack\Entities\Bookshelf;
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\Entity;
|
use BookStack\Entities\Entity;
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Exceptions\NotifyException;
|
use BookStack\Exceptions\NotifyException;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\PageRevision;
|
use BookStack\Entities\PageRevision;
|
||||||
use BookStack\Services\AttachmentService;
|
use BookStack\Actions\TagRepo;
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Uploads\AttachmentService;
|
||||||
use BookStack\Services\SearchService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use BookStack\Services\ViewService;
|
use BookStack\Entities\SearchService;
|
||||||
|
use BookStack\Actions\ViewService;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use DOMDocument;
|
use DOMDocument;
|
||||||
use DOMXPath;
|
use DOMXPath;
|
||||||
@ -20,12 +21,12 @@ use Illuminate\Support\Collection;
|
|||||||
class EntityRepo
|
class EntityRepo
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var Bookshelf
|
* @var \BookStack\Entities\Bookshelf
|
||||||
*/
|
*/
|
||||||
public $bookshelf;
|
public $bookshelf;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Book $book
|
* @var \BookStack\Entities\Book $book
|
||||||
*/
|
*/
|
||||||
public $book;
|
public $book;
|
||||||
|
|
||||||
@ -61,7 +62,7 @@ class EntityRepo
|
|||||||
protected $viewService;
|
protected $viewService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var TagRepo
|
* @var \BookStack\Actions\TagRepo
|
||||||
*/
|
*/
|
||||||
protected $tagRepo;
|
protected $tagRepo;
|
||||||
|
|
||||||
@ -72,14 +73,14 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* EntityRepo constructor.
|
* EntityRepo constructor.
|
||||||
* @param Bookshelf $bookshelf
|
* @param \BookStack\Entities\Bookshelf $bookshelf
|
||||||
* @param Book $book
|
* @param \BookStack\Entities\Book $book
|
||||||
* @param Chapter $chapter
|
* @param Chapter $chapter
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @param PageRevision $pageRevision
|
* @param \BookStack\Entities\PageRevision $pageRevision
|
||||||
* @param ViewService $viewService
|
* @param ViewService $viewService
|
||||||
* @param PermissionService $permissionService
|
* @param PermissionService $permissionService
|
||||||
* @param TagRepo $tagRepo
|
* @param \BookStack\Actions\TagRepo $tagRepo
|
||||||
* @param SearchService $searchService
|
* @param SearchService $searchService
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
@ -113,7 +114,7 @@ class EntityRepo
|
|||||||
/**
|
/**
|
||||||
* Get an entity instance via type.
|
* Get an entity instance via type.
|
||||||
* @param $type
|
* @param $type
|
||||||
* @return Entity
|
* @return \BookStack\Entities\Entity
|
||||||
*/
|
*/
|
||||||
protected function getEntity($type)
|
protected function getEntity($type)
|
||||||
{
|
{
|
||||||
@ -152,7 +153,7 @@ class EntityRepo
|
|||||||
* @param integer $id
|
* @param integer $id
|
||||||
* @param bool $allowDrafts
|
* @param bool $allowDrafts
|
||||||
* @param bool $ignorePermissions
|
* @param bool $ignorePermissions
|
||||||
* @return Entity
|
* @return \BookStack\Entities\Entity
|
||||||
*/
|
*/
|
||||||
public function getById($type, $id, $allowDrafts = false, $ignorePermissions = false)
|
public function getById($type, $id, $allowDrafts = false, $ignorePermissions = false)
|
||||||
{
|
{
|
||||||
@ -168,7 +169,7 @@ class EntityRepo
|
|||||||
* @param string $type
|
* @param string $type
|
||||||
* @param string $slug
|
* @param string $slug
|
||||||
* @param string|bool $bookSlug
|
* @param string|bool $bookSlug
|
||||||
* @return Entity
|
* @return \BookStack\Entities\Entity
|
||||||
* @throws NotFoundException
|
* @throws NotFoundException
|
||||||
*/
|
*/
|
||||||
public function getBySlug($type, $slug, $bookSlug = false)
|
public function getBySlug($type, $slug, $bookSlug = false)
|
||||||
@ -343,7 +344,7 @@ class EntityRepo
|
|||||||
/**
|
/**
|
||||||
* Get the child items for a chapter sorted by priority but
|
* Get the child items for a chapter sorted by priority but
|
||||||
* with draft items floated to the top.
|
* with draft items floated to the top.
|
||||||
* @param Bookshelf $bookshelf
|
* @param \BookStack\Entities\Bookshelf $bookshelf
|
||||||
* @return \Illuminate\Database\Eloquent\Collection|static[]
|
* @return \Illuminate\Database\Eloquent\Collection|static[]
|
||||||
*/
|
*/
|
||||||
public function getBookshelfChildren(Bookshelf $bookshelf)
|
public function getBookshelfChildren(Bookshelf $bookshelf)
|
||||||
@ -355,7 +356,7 @@ class EntityRepo
|
|||||||
* Get all child objects of a book.
|
* Get all child objects of a book.
|
||||||
* Returns a sorted collection of Pages and Chapters.
|
* Returns a sorted collection of Pages and Chapters.
|
||||||
* Loads the book slug onto child elements to prevent access database access for getting the slug.
|
* 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 $filterDrafts
|
||||||
* @param bool $renderPages
|
* @param bool $renderPages
|
||||||
* @return mixed
|
* @return mixed
|
||||||
@ -368,13 +369,13 @@ class EntityRepo
|
|||||||
$tree = [];
|
$tree = [];
|
||||||
|
|
||||||
foreach ($q as $index => $rawEntity) {
|
foreach ($q as $index => $rawEntity) {
|
||||||
if ($rawEntity->entity_type === 'BookStack\\Page') {
|
if ($rawEntity->entity_type === $this->page->getMorphClass()) {
|
||||||
$entities[$index] = $this->page->newFromBuilder($rawEntity);
|
$entities[$index] = $this->page->newFromBuilder($rawEntity);
|
||||||
if ($renderPages) {
|
if ($renderPages) {
|
||||||
$entities[$index]->html = $rawEntity->html;
|
$entities[$index]->html = $rawEntity->html;
|
||||||
$entities[$index]->html = $this->renderPage($entities[$index]);
|
$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);
|
$entities[$index] = $this->chapter->newFromBuilder($rawEntity);
|
||||||
$key = $entities[$index]->entity_type . ':' . $entities[$index]->id;
|
$key = $entities[$index]->entity_type . ':' . $entities[$index]->id;
|
||||||
$parents[$key] = $entities[$index];
|
$parents[$key] = $entities[$index];
|
||||||
@ -390,7 +391,7 @@ class EntityRepo
|
|||||||
if ($entity->chapter_id === 0 || $entity->chapter_id === '0') {
|
if ($entity->chapter_id === 0 || $entity->chapter_id === '0') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$parentKey = 'BookStack\\Chapter:' . $entity->chapter_id;
|
$parentKey = $this->chapter->getMorphClass() . ':' . $entity->chapter_id;
|
||||||
if (!isset($parents[$parentKey])) {
|
if (!isset($parents[$parentKey])) {
|
||||||
$tree[] = $entity;
|
$tree[] = $entity;
|
||||||
continue;
|
continue;
|
||||||
@ -405,7 +406,7 @@ class EntityRepo
|
|||||||
/**
|
/**
|
||||||
* Get the child items for a chapter sorted by priority but
|
* Get the child items for a chapter sorted by priority but
|
||||||
* with draft items floated to the top.
|
* with draft items floated to the top.
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @return \Illuminate\Database\Eloquent\Collection|static[]
|
* @return \Illuminate\Database\Eloquent\Collection|static[]
|
||||||
*/
|
*/
|
||||||
public function getChapterChildren(Chapter $chapter)
|
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.
|
* Get the next sequential priority for a new child element in the given book.
|
||||||
* @param Book $book
|
* @param \BookStack\Entities\Book $book
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getNewBookPriority(Book $book)
|
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.
|
* 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
|
* @return int
|
||||||
*/
|
*/
|
||||||
public function getNewChapterPriority(Chapter $chapter)
|
public function getNewChapterPriority(Chapter $chapter)
|
||||||
@ -477,7 +478,7 @@ class EntityRepo
|
|||||||
/**
|
/**
|
||||||
* Updates entity restrictions from a request
|
* Updates entity restrictions from a request
|
||||||
* @param $request
|
* @param $request
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
*/
|
*/
|
||||||
public function updateEntityPermissionsFromRequest($request, Entity $entity)
|
public function updateEntityPermissionsFromRequest($request, Entity $entity)
|
||||||
{
|
{
|
||||||
@ -507,7 +508,7 @@ class EntityRepo
|
|||||||
* @param string $type
|
* @param string $type
|
||||||
* @param array $input
|
* @param array $input
|
||||||
* @param bool|Book $book
|
* @param bool|Book $book
|
||||||
* @return Entity
|
* @return \BookStack\Entities\Entity
|
||||||
*/
|
*/
|
||||||
public function createFromInput($type, $input = [], $book = false)
|
public function createFromInput($type, $input = [], $book = false)
|
||||||
{
|
{
|
||||||
@ -531,9 +532,9 @@ class EntityRepo
|
|||||||
* Update entity details from request input.
|
* Update entity details from request input.
|
||||||
* Used for books and chapters
|
* Used for books and chapters
|
||||||
* @param string $type
|
* @param string $type
|
||||||
* @param Entity $entityModel
|
* @param \BookStack\Entities\Entity $entityModel
|
||||||
* @param array $input
|
* @param array $input
|
||||||
* @return Entity
|
* @return \BookStack\Entities\Entity
|
||||||
*/
|
*/
|
||||||
public function updateFromInput($type, Entity $entityModel, $input = [])
|
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
|
* Sync the books assigned to a shelf from a comma-separated list
|
||||||
* of book IDs.
|
* of book IDs.
|
||||||
* @param Bookshelf $shelf
|
* @param \BookStack\Entities\Bookshelf $shelf
|
||||||
* @param string $books
|
* @param string $books
|
||||||
*/
|
*/
|
||||||
public function updateShelfBooks(Bookshelf $shelf, string $books)
|
public function updateShelfBooks(Bookshelf $shelf, string $books)
|
||||||
@ -581,7 +582,7 @@ class EntityRepo
|
|||||||
* @param integer $newBookId
|
* @param integer $newBookId
|
||||||
* @param Entity $entity
|
* @param Entity $entity
|
||||||
* @param bool $rebuildPermissions
|
* @param bool $rebuildPermissions
|
||||||
* @return Entity
|
* @return \BookStack\Entities\Entity
|
||||||
*/
|
*/
|
||||||
public function changeBook($type, $newBookId, Entity $entity, $rebuildPermissions = false)
|
public function changeBook($type, $newBookId, Entity $entity, $rebuildPermissions = false)
|
||||||
{
|
{
|
||||||
@ -639,7 +640,7 @@ class EntityRepo
|
|||||||
* Get a new draft page instance.
|
* Get a new draft page instance.
|
||||||
* @param Book $book
|
* @param Book $book
|
||||||
* @param Chapter|bool $chapter
|
* @param Chapter|bool $chapter
|
||||||
* @return Page
|
* @return \BookStack\Entities\Page
|
||||||
*/
|
*/
|
||||||
public function getDraftPage(Book $book, $chapter = false)
|
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.
|
* Create a copy of a page in a new location with a new name.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @param Entity $newParent
|
* @param \BookStack\Entities\Entity $newParent
|
||||||
* @param string $newName
|
* @param string $newName
|
||||||
* @return Page
|
* @return \BookStack\Entities\Page
|
||||||
*/
|
*/
|
||||||
public function copyPage(Page $page, Entity $newParent, $newName = '')
|
public function copyPage(Page $page, Entity $newParent, $newName = '')
|
||||||
{
|
{
|
||||||
@ -728,7 +729,7 @@ class EntityRepo
|
|||||||
* Saves a page revision into the system.
|
* Saves a page revision into the system.
|
||||||
* @param Page $page
|
* @param Page $page
|
||||||
* @param null|string $summary
|
* @param null|string $summary
|
||||||
* @return PageRevision
|
* @return \BookStack\Entities\PageRevision
|
||||||
*/
|
*/
|
||||||
public function savePageRevision(Page $page, $summary = null)
|
public function savePageRevision(Page $page, $summary = null)
|
||||||
{
|
{
|
||||||
@ -902,7 +903,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the plain text version of a page's content.
|
* Get the plain text version of a page's content.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function pageToPlainText(Page $page)
|
public function pageToPlainText(Page $page)
|
||||||
@ -971,10 +972,10 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a page with any fillable data and saves it into the database.
|
* 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 int $book_id
|
||||||
* @param array $input
|
* @param array $input
|
||||||
* @return Page
|
* @return \BookStack\Entities\Page
|
||||||
*/
|
*/
|
||||||
public function updatePage(Page $page, $book_id, $input)
|
public function updatePage(Page $page, $book_id, $input)
|
||||||
{
|
{
|
||||||
@ -1019,7 +1020,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The base query for getting user update drafts.
|
* The base query for getting user update drafts.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @param $userId
|
* @param $userId
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@ -1033,7 +1034,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether a user has a draft version of a particular page or not.
|
* Checks whether a user has a draft version of a particular page or not.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @param $userId
|
* @param $userId
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
@ -1072,7 +1073,7 @@ class EntityRepo
|
|||||||
* Checks for edits since last page updated.
|
* Checks for edits since last page updated.
|
||||||
* Passing in a minuted range will check for edits
|
* Passing in a minuted range will check for edits
|
||||||
* within the last x minutes.
|
* within the last x minutes.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @param null $minRange
|
* @param null $minRange
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
@ -1108,7 +1109,7 @@ class EntityRepo
|
|||||||
* @param Page $page
|
* @param Page $page
|
||||||
* @param Book $book
|
* @param Book $book
|
||||||
* @param int $revisionId
|
* @param int $revisionId
|
||||||
* @return Page
|
* @return \BookStack\Entities\Page
|
||||||
*/
|
*/
|
||||||
public function restorePageRevision(Page $page, Book $book, $revisionId)
|
public function restorePageRevision(Page $page, Book $book, $revisionId)
|
||||||
{
|
{
|
||||||
@ -1184,8 +1185,8 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Change the page's parent to the given entity.
|
* Change the page's parent to the given entity.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @param Entity $parent
|
* @param \BookStack\Entities\Entity $parent
|
||||||
*/
|
*/
|
||||||
public function changePageParent(Page $page, Entity $parent)
|
public function changePageParent(Page $page, Entity $parent)
|
||||||
{
|
{
|
||||||
@ -1201,7 +1202,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy a bookshelf instance
|
* Destroy a bookshelf instance
|
||||||
* @param Bookshelf $shelf
|
* @param \BookStack\Entities\Bookshelf $shelf
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
public function destroyBookshelf(Bookshelf $shelf)
|
public function destroyBookshelf(Bookshelf $shelf)
|
||||||
@ -1212,7 +1213,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy the provided book and all its child entities.
|
* Destroy the provided book and all its child entities.
|
||||||
* @param Book $book
|
* @param \BookStack\Entities\Book $book
|
||||||
* @throws NotifyException
|
* @throws NotifyException
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
@ -1230,7 +1231,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy a chapter and its relations.
|
* Destroy a chapter and its relations.
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
public function destroyChapter(Chapter $chapter)
|
public function destroyChapter(Chapter $chapter)
|
||||||
@ -1272,7 +1273,7 @@ class EntityRepo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy or handle the common relations connected to an entity.
|
* Destroy or handle the common relations connected to an entity.
|
||||||
* @param Entity $entity
|
* @param \BookStack\Entities\Entity $entity
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
protected function destroyEntityCommonRelations(Entity $entity)
|
protected function destroyEntityCommonRelations(Entity $entity)
|
||||||
@ -1289,7 +1290,7 @@ class EntityRepo
|
|||||||
/**
|
/**
|
||||||
* Copy the permissions of a bookshelf to all child books.
|
* Copy the permissions of a bookshelf to all child books.
|
||||||
* Returns the number of books that had permissions updated.
|
* Returns the number of books that had permissions updated.
|
||||||
* @param Bookshelf $bookshelf
|
* @param \BookStack\Entities\Bookshelf $bookshelf
|
||||||
* @return int
|
* @return int
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
@ -1,9 +1,10 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
|
use BookStack\Uploads\ImageService;
|
||||||
|
|
||||||
class ExportService
|
class ExportService
|
||||||
{
|
{
|
||||||
@ -24,7 +25,7 @@ class ExportService
|
|||||||
/**
|
/**
|
||||||
* Convert a page to a self-contained HTML file.
|
* Convert a page to a self-contained HTML file.
|
||||||
* Includes required CSS & image content. Images are base64 encoded into the HTML.
|
* Includes required CSS & image content. Images are base64 encoded into the HTML.
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
* @return mixed|string
|
* @return mixed|string
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
@ -39,7 +40,7 @@ class ExportService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a chapter to a self-contained HTML file.
|
* Convert a chapter to a self-contained HTML file.
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @return mixed|string
|
* @return mixed|string
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
@ -89,7 +90,7 @@ class ExportService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a chapter to a PDF file.
|
* Convert a chapter to a PDF file.
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @return mixed|string
|
* @return mixed|string
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
@ -108,7 +109,7 @@ class ExportService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a book to a PDF file
|
* Convert a book to a PDF file
|
||||||
* @param Book $book
|
* @param \BookStack\Entities\Book $book
|
||||||
* @return string
|
* @return string
|
||||||
* @throws \Throwable
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
@ -208,7 +209,7 @@ class ExportService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a chapter into a plain text string.
|
* Convert a chapter into a plain text string.
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function chapterToPlainText(Chapter $chapter)
|
public function chapterToPlainText(Chapter $chapter)
|
@ -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
|
class Page extends Entity
|
||||||
{
|
{
|
||||||
@ -8,6 +14,15 @@ class Page extends Entity
|
|||||||
|
|
||||||
public $textField = 'text';
|
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.
|
* Converts this page into a simplified array.
|
||||||
* @return mixed
|
* @return mixed
|
||||||
@ -115,7 +130,7 @@ class Page extends Entity
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current revision for the page if existing
|
* Get the current revision for the page if existing
|
||||||
* @return \BookStack\PageRevision|null
|
* @return \BookStack\Entities\PageRevision|null
|
||||||
*/
|
*/
|
||||||
public function getCurrentRevision()
|
public function getCurrentRevision()
|
||||||
{
|
{
|
@ -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
|
class PageRevision extends Model
|
||||||
{
|
{
|
@ -1,11 +1,12 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Bookshelf;
|
use BookStack\Entities\Bookshelf;
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\Entity;
|
use BookStack\Entities\Entity;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\SearchTerm;
|
use BookStack\Entities\SearchTerm;
|
||||||
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use Illuminate\Database\Connection;
|
use Illuminate\Database\Connection;
|
||||||
use Illuminate\Database\Query\Builder;
|
use Illuminate\Database\Query\Builder;
|
||||||
use Illuminate\Database\Query\JoinClause;
|
use Illuminate\Database\Query\JoinClause;
|
||||||
@ -36,8 +37,8 @@ class SearchService
|
|||||||
* SearchService constructor.
|
* SearchService constructor.
|
||||||
* @param SearchTerm $searchTerm
|
* @param SearchTerm $searchTerm
|
||||||
* @param Bookshelf $bookshelf
|
* @param Bookshelf $bookshelf
|
||||||
* @param Book $book
|
* @param \BookStack\Entities\Book $book
|
||||||
* @param Chapter $chapter
|
* @param \BookStack\Entities\Chapter $chapter
|
||||||
* @param Page $page
|
* @param Page $page
|
||||||
* @param Connection $db
|
* @param Connection $db
|
||||||
* @param PermissionService $permissionService
|
* @param PermissionService $permissionService
|
||||||
@ -352,7 +353,7 @@ class SearchService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Index multiple Entities at once
|
* Index multiple Entities at once
|
||||||
* @param Entity[] $entities
|
* @param \BookStack\Entities\Entity[] $entities
|
||||||
*/
|
*/
|
||||||
protected function indexEntities($entities)
|
protected function indexEntities($entities)
|
||||||
{
|
{
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Entities;
|
||||||
|
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
class SearchTerm extends Model
|
class SearchTerm extends Model
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
<?php namespace BookStack\Services\Facades;
|
<?php namespace BookStack\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<?php namespace BookStack\Services\Facades;
|
<?php namespace BookStack\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<?php namespace BookStack\Services\Facades;
|
<?php namespace BookStack\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<?php namespace BookStack\Services\Facades;
|
<?php namespace BookStack\Facades;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Facade;
|
use Illuminate\Support\Facades\Facade;
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use BookStack\Exceptions\FileUploadException;
|
use BookStack\Exceptions\FileUploadException;
|
||||||
use BookStack\Attachment;
|
use BookStack\Uploads\Attachment;
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Services\AttachmentService;
|
use BookStack\Uploads\AttachmentService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class AttachmentController extends Controller
|
class AttachmentController extends Controller
|
||||||
@ -15,7 +15,7 @@ class AttachmentController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachmentController constructor.
|
* AttachmentController constructor.
|
||||||
* @param AttachmentService $attachmentService
|
* @param \BookStack\Uploads\AttachmentService $attachmentService
|
||||||
* @param Attachment $attachment
|
* @param Attachment $attachment
|
||||||
* @param EntityRepo $entityRepo
|
* @param EntityRepo $entityRepo
|
||||||
*/
|
*/
|
||||||
|
@ -4,9 +4,9 @@ namespace BookStack\Http\Controllers\Auth;
|
|||||||
|
|
||||||
use BookStack\Exceptions\AuthException;
|
use BookStack\Exceptions\AuthException;
|
||||||
use BookStack\Http\Controllers\Controller;
|
use BookStack\Http\Controllers\Controller;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\LdapService;
|
use BookStack\Auth\Access\LdapService;
|
||||||
use BookStack\Services\SocialAuthService;
|
use BookStack\Auth\Access\SocialAuthService;
|
||||||
use Illuminate\Contracts\Auth\Authenticatable;
|
use Illuminate\Contracts\Auth\Authenticatable;
|
||||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -43,9 +43,9 @@ class LoginController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Create a new controller instance.
|
* Create a new controller instance.
|
||||||
*
|
*
|
||||||
* @param SocialAuthService $socialAuthService
|
* @param \BookStack\Auth\\BookStack\Auth\Access\SocialAuthService $socialAuthService
|
||||||
* @param LdapService $ldapService
|
* @param LdapService $ldapService
|
||||||
* @param UserRepo $userRepo
|
* @param \BookStack\Auth\UserRepo $userRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(SocialAuthService $socialAuthService, LdapService $ldapService, UserRepo $userRepo)
|
public function __construct(SocialAuthService $socialAuthService, LdapService $ldapService, UserRepo $userRepo)
|
||||||
{
|
{
|
||||||
|
@ -5,11 +5,11 @@ namespace BookStack\Http\Controllers\Auth;
|
|||||||
use BookStack\Exceptions\SocialSignInAccountNotUsed;
|
use BookStack\Exceptions\SocialSignInAccountNotUsed;
|
||||||
use BookStack\Exceptions\SocialSignInException;
|
use BookStack\Exceptions\SocialSignInException;
|
||||||
use BookStack\Exceptions\UserRegistrationException;
|
use BookStack\Exceptions\UserRegistrationException;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\EmailConfirmationService;
|
use BookStack\Auth\Access\EmailConfirmationService;
|
||||||
use BookStack\Services\SocialAuthService;
|
use BookStack\Auth\Access\SocialAuthService;
|
||||||
use BookStack\SocialAccount;
|
use BookStack\Auth\SocialAccount;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
@ -48,11 +48,11 @@ class RegisterController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Create a new controller instance.
|
* Create a new controller instance.
|
||||||
*
|
*
|
||||||
* @param SocialAuthService $socialAuthService
|
* @param \BookStack\Auth\Access\SocialAuthService $socialAuthService
|
||||||
* @param EmailConfirmationService $emailConfirmationService
|
* @param \BookStack\Auth\EmailConfirmationService $emailConfirmationService
|
||||||
* @param UserRepo $userRepo
|
* @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->middleware('guest')->only(['getRegister', 'postRegister', 'socialRegister']);
|
||||||
$this->socialAuthService = $socialAuthService;
|
$this->socialAuthService = $socialAuthService;
|
||||||
@ -119,7 +119,7 @@ class RegisterController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Create a new user instance after a valid registration.
|
* Create a new user instance after a valid registration.
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @return User
|
* @return \BookStack\Auth\User
|
||||||
*/
|
*/
|
||||||
protected function create(array $data)
|
protected function create(array $data)
|
||||||
{
|
{
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\ExportService;
|
use BookStack\Entities\ExportService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Views;
|
use Views;
|
||||||
@ -19,8 +19,8 @@ class BookController extends Controller
|
|||||||
/**
|
/**
|
||||||
* BookController constructor.
|
* BookController constructor.
|
||||||
* @param EntityRepo $entityRepo
|
* @param EntityRepo $entityRepo
|
||||||
* @param UserRepo $userRepo
|
* @param \BookStack\Auth\UserRepo $userRepo
|
||||||
* @param ExportService $exportService
|
* @param \BookStack\Entities\ExportService $exportService
|
||||||
*/
|
*/
|
||||||
public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
|
public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
|
||||||
{
|
{
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Bookshelf;
|
use BookStack\Entities\Bookshelf;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\ExportService;
|
use BookStack\Entities\ExportService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Views;
|
use Views;
|
||||||
@ -19,9 +19,9 @@ class BookshelfController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* BookController constructor.
|
* BookController constructor.
|
||||||
* @param EntityRepo $entityRepo
|
* @param \BookStack\Entities\EntityRepo $entityRepo
|
||||||
* @param UserRepo $userRepo
|
* @param UserRepo $userRepo
|
||||||
* @param ExportService $exportService
|
* @param \BookStack\Entities\ExportService $exportService
|
||||||
*/
|
*/
|
||||||
public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
|
public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\ExportService;
|
use BookStack\Entities\ExportService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Views;
|
use Views;
|
||||||
@ -19,7 +19,7 @@ class ChapterController extends Controller
|
|||||||
* ChapterController constructor.
|
* ChapterController constructor.
|
||||||
* @param EntityRepo $entityRepo
|
* @param EntityRepo $entityRepo
|
||||||
* @param UserRepo $userRepo
|
* @param UserRepo $userRepo
|
||||||
* @param ExportService $exportService
|
* @param \BookStack\Entities\ExportService $exportService
|
||||||
*/
|
*/
|
||||||
public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
|
public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService)
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Repos\CommentRepo;
|
use BookStack\Actions\CommentRepo;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
@ -13,8 +13,8 @@ class CommentController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* CommentController constructor.
|
* CommentController constructor.
|
||||||
* @param EntityRepo $entityRepo
|
* @param \BookStack\Entities\EntityRepo $entityRepo
|
||||||
* @param CommentRepo $commentRepo
|
* @param \BookStack\Actions\CommentRepo $commentRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(EntityRepo $entityRepo, CommentRepo $commentRepo)
|
public function __construct(EntityRepo $entityRepo, CommentRepo $commentRepo)
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@ use Illuminate\Http\Exceptions\HttpResponseException;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller as BaseController;
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
|
|
||||||
abstract class Controller extends BaseController
|
abstract class Controller extends BaseController
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Views;
|
use Views;
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
use BookStack\Exceptions\ImageUploadException;
|
use BookStack\Exceptions\ImageUploadException;
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Repos\ImageRepo;
|
use BookStack\Uploads\ImageRepo;
|
||||||
use Illuminate\Filesystem\Filesystem as File;
|
use Illuminate\Filesystem\Filesystem as File;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use BookStack\Image;
|
use BookStack\Uploads\Image;
|
||||||
use BookStack\Repos\PageRepo;
|
use BookStack\Repos\PageRepo;
|
||||||
|
|
||||||
class ImageController extends Controller
|
class ImageController extends Controller
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\ExportService;
|
use BookStack\Entities\ExportService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Views;
|
use Views;
|
||||||
@ -19,8 +19,8 @@ class PageController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* PageController constructor.
|
* PageController constructor.
|
||||||
* @param EntityRepo $entityRepo
|
* @param \BookStack\Entities\EntityRepo $entityRepo
|
||||||
* @param ExportService $exportService
|
* @param \BookStack\Entities\ExportService $exportService
|
||||||
* @param UserRepo $userRepo
|
* @param UserRepo $userRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(EntityRepo $entityRepo, ExportService $exportService, UserRepo $userRepo)
|
public function __construct(EntityRepo $entityRepo, ExportService $exportService, UserRepo $userRepo)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use BookStack\Exceptions\PermissionsException;
|
use BookStack\Exceptions\PermissionsException;
|
||||||
use BookStack\Repos\PermissionsRepo;
|
use BookStack\Auth\Permissions\PermissionsRepo;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class PermissionController extends Controller
|
class PermissionController extends Controller
|
||||||
@ -11,7 +11,7 @@ class PermissionController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* PermissionController constructor.
|
* PermissionController constructor.
|
||||||
* @param PermissionsRepo $permissionsRepo
|
* @param \BookStack\Auth\Permissions\PermissionsRepo $permissionsRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(PermissionsRepo $permissionsRepo)
|
public function __construct(PermissionsRepo $permissionsRepo)
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Services\SearchService;
|
use BookStack\Entities\SearchService;
|
||||||
use BookStack\Services\ViewService;
|
use BookStack\Actions\ViewService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class SearchController extends Controller
|
class SearchController extends Controller
|
||||||
@ -97,7 +97,7 @@ class SearchController extends Controller
|
|||||||
$entities = $this->searchService->searchEntities($searchTerm, 'all', 1, 20, $permission)['results'];
|
$entities = $this->searchService->searchEntities($searchTerm, 'all', 1, 20, $permission)['results'];
|
||||||
} else {
|
} else {
|
||||||
$entityNames = $entityTypes->map(function ($type) {
|
$entityNames = $entityTypes->map(function ($type) {
|
||||||
return 'BookStack\\' . ucfirst($type);
|
return 'BookStack\\' . ucfirst($type); // TODO - Extract this elsewhere, too specific and stringy
|
||||||
})->toArray();
|
})->toArray();
|
||||||
$entities = $this->viewService->getPopular(20, 0, $entityNames, $permission);
|
$entities = $this->viewService->getPopular(20, 0, $entityNames, $permission);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use BookStack\Services\ImageService;
|
use BookStack\Uploads\ImageService;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Setting;
|
use Setting;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php namespace BookStack\Http\Controllers;
|
<?php namespace BookStack\Http\Controllers;
|
||||||
|
|
||||||
use BookStack\Repos\TagRepo;
|
use BookStack\Actions\TagRepo;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class TagController extends Controller
|
class TagController extends Controller
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Services\SocialAuthService;
|
use BookStack\Auth\Access\SocialAuthService;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
@ -16,7 +16,7 @@ class UserController extends Controller
|
|||||||
/**
|
/**
|
||||||
* UserController constructor.
|
* UserController constructor.
|
||||||
* @param User $user
|
* @param User $user
|
||||||
* @param UserRepo $userRepo
|
* @param \BookStack\Auth\UserRepo $userRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(User $user, 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.
|
* Show the form for editing the specified user.
|
||||||
* @param int $id
|
* @param int $id
|
||||||
* @param SocialAuthService $socialAuthService
|
* @param \BookStack\Auth\Access\SocialAuthService $socialAuthService
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
public function edit($id, SocialAuthService $socialAuthService)
|
public function edit($id, SocialAuthService $socialAuthService)
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack;
|
||||||
|
|
||||||
|
use BookStack\Auth\User;
|
||||||
|
|
||||||
abstract class Ownable extends Model
|
abstract class Ownable extends Model
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
<?php namespace BookStack\Providers;
|
<?php namespace BookStack\Providers;
|
||||||
|
|
||||||
use BookStack\Services\SettingService;
|
use Blade;
|
||||||
use BookStack\Setting;
|
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 Illuminate\Support\ServiceProvider;
|
||||||
|
use Schema;
|
||||||
use Validator;
|
use Validator;
|
||||||
|
|
||||||
class AppServiceProvider extends ServiceProvider
|
class AppServiceProvider extends ServiceProvider
|
||||||
@ -20,12 +27,21 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
return in_array($value->getMimeType(), $imageMimes);
|
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); ?>";
|
return "<?php echo icon($expression); ?>";
|
||||||
});
|
});
|
||||||
|
|
||||||
// Allow longer string lengths after upgrade to utf8mb4
|
// 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,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
namespace BookStack\Providers;
|
namespace BookStack\Providers;
|
||||||
|
|
||||||
use Auth;
|
use Auth;
|
||||||
use BookStack\Services\LdapService;
|
use BookStack\Auth\Access\LdapService;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
class AuthServiceProvider extends ServiceProvider
|
class AuthServiceProvider extends ServiceProvider
|
||||||
|
@ -2,18 +2,18 @@
|
|||||||
|
|
||||||
namespace BookStack\Providers;
|
namespace BookStack\Providers;
|
||||||
|
|
||||||
use BookStack\Activity;
|
use BookStack\Actions\Activity;
|
||||||
use BookStack\Image;
|
use BookStack\Uploads\Image;
|
||||||
use BookStack\Services\ImageService;
|
use BookStack\Uploads\ImageService;
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use BookStack\Services\ViewService;
|
use BookStack\Actions\ViewService;
|
||||||
use BookStack\Setting;
|
use BookStack\Settings\Setting;
|
||||||
use BookStack\View;
|
use BookStack\Actions\View;
|
||||||
use Illuminate\Contracts\Cache\Repository;
|
use Illuminate\Contracts\Cache\Repository;
|
||||||
use Illuminate\Contracts\Filesystem\Factory;
|
use Illuminate\Contracts\Filesystem\Factory;
|
||||||
use Illuminate\Support\ServiceProvider;
|
use Illuminate\Support\ServiceProvider;
|
||||||
use BookStack\Services\ActivityService;
|
use BookStack\Actions\ActivityService;
|
||||||
use BookStack\Services\SettingService;
|
use BookStack\Settings\SettingService;
|
||||||
use Intervention\Image\ImageManager;
|
use Intervention\Image\ImageManager;
|
||||||
|
|
||||||
class CustomFacadeProvider extends ServiceProvider
|
class CustomFacadeProvider extends ServiceProvider
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
namespace BookStack\Providers;
|
namespace BookStack\Providers;
|
||||||
|
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\Services\LdapService;
|
use BookStack\Auth\Access\LdapService;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Illuminate\Contracts\Auth\Authenticatable;
|
use Illuminate\Contracts\Auth\Authenticatable;
|
||||||
use Illuminate\Contracts\Auth\UserProvider;
|
use Illuminate\Contracts\Auth\UserProvider;
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ class LdapUserProvider implements UserProvider
|
|||||||
protected $model;
|
protected $model;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var LdapService
|
* @var \BookStack\Auth\LdapService
|
||||||
*/
|
*/
|
||||||
protected $ldapService;
|
protected $ldapService;
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ class LdapUserProvider implements UserProvider
|
|||||||
/**
|
/**
|
||||||
* LdapUserProvider constructor.
|
* LdapUserProvider constructor.
|
||||||
* @param $model
|
* @param $model
|
||||||
* @param LdapService $ldapService
|
* @param \BookStack\Auth\LdapService $ldapService
|
||||||
*/
|
*/
|
||||||
public function __construct($model, LdapService $ldapService)
|
public function __construct($model, LdapService $ldapService)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Settings;
|
||||||
|
|
||||||
|
use BookStack\Model;
|
||||||
|
|
||||||
class Setting extends Model
|
class Setting extends Model
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Settings;
|
||||||
|
|
||||||
use BookStack\Setting;
|
use BookStack\Settings\Setting;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Illuminate\Contracts\Cache\Repository as Cache;
|
use Illuminate\Contracts\Cache\Repository as Cache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,7 +55,7 @@ class SettingService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a user-specific setting from the database or cache.
|
* Get a user-specific setting from the database or cache.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param bool $default
|
* @param bool $default
|
||||||
* @return bool|string
|
* @return bool|string
|
||||||
@ -174,7 +174,7 @@ class SettingService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Put a user-specific setting into the database.
|
* Put a user-specific setting into the database.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param $value
|
* @param $value
|
||||||
* @return bool
|
* @return bool
|
@ -1,4 +1,7 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Uploads;
|
||||||
|
|
||||||
|
use BookStack\Entities\Page;
|
||||||
|
use BookStack\Ownable;
|
||||||
|
|
||||||
class Attachment extends Ownable
|
class Attachment extends Ownable
|
||||||
{
|
{
|
@ -1,7 +1,8 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Uploads;
|
||||||
|
|
||||||
use BookStack\Exceptions\FileUploadException;
|
use BookStack\Exceptions\FileUploadException;
|
||||||
use BookStack\Attachment;
|
use BookStack\Uploads\Attachment;
|
||||||
|
use BookStack\Uploads\UploadService;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
||||||
|
|
@ -1,5 +1,6 @@
|
|||||||
<?php namespace BookStack;
|
<?php namespace BookStack\Uploads;
|
||||||
|
|
||||||
|
use BookStack\Ownable;
|
||||||
use Images;
|
use Images;
|
||||||
|
|
||||||
class Image extends Ownable
|
class Image extends Ownable
|
@ -1,9 +1,9 @@
|
|||||||
<?php namespace BookStack\Repos;
|
<?php namespace BookStack\Uploads;
|
||||||
|
|
||||||
use BookStack\Image;
|
use BookStack\Uploads\Image;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Services\ImageService;
|
use BookStack\Uploads\ImageService;
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
||||||
|
|
||||||
class ImageRepo
|
class ImageRepo
|
||||||
@ -18,8 +18,8 @@ class ImageRepo
|
|||||||
* ImageRepo constructor.
|
* ImageRepo constructor.
|
||||||
* @param Image $image
|
* @param Image $image
|
||||||
* @param ImageService $imageService
|
* @param ImageService $imageService
|
||||||
* @param PermissionService $permissionService
|
* @param \BookStack\Auth\\BookStack\Auth\Permissions\PermissionService $permissionService
|
||||||
* @param Page $page
|
* @param \BookStack\Entities\Page $page
|
||||||
*/
|
*/
|
||||||
public function __construct(Image $image, ImageService $imageService, PermissionService $permissionService, Page $page)
|
public function __construct(Image $image, ImageService $imageService, PermissionService $permissionService, Page $page)
|
||||||
{
|
{
|
@ -1,8 +1,9 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Uploads;
|
||||||
|
|
||||||
use BookStack\Exceptions\ImageUploadException;
|
use BookStack\Exceptions\ImageUploadException;
|
||||||
use BookStack\Image;
|
use BookStack\Uploads\Image;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
|
use BookStack\Uploads\UploadService;
|
||||||
use DB;
|
use DB;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Intervention\Image\Exception\NotSupportedException;
|
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.
|
* Save a gravatar image and set a the profile image for a user.
|
||||||
* @param User $user
|
* @param \BookStack\Auth\User $user
|
||||||
* @param int $size
|
* @param int $size
|
||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws Exception
|
* @throws Exception
|
@ -1,9 +1,9 @@
|
|||||||
<?php namespace BookStack\Services;
|
<?php namespace BookStack\Uploads;
|
||||||
|
|
||||||
use Illuminate\Contracts\Filesystem\Factory as FileSystem;
|
use Illuminate\Contracts\Filesystem\Factory as FileSystem;
|
||||||
use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
|
use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
|
||||||
|
|
||||||
class UploadService
|
abstract class UploadService
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
@ -30,11 +30,11 @@ function versioned_asset($file = '')
|
|||||||
/**
|
/**
|
||||||
* Helper method to get the current User.
|
* Helper method to get the current User.
|
||||||
* Defaults to public 'Guest' user if not logged in.
|
* Defaults to public 'Guest' user if not logged in.
|
||||||
* @return \BookStack\User
|
* @return \BookStack\Auth\User
|
||||||
*/
|
*/
|
||||||
function 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
|
// Check permission on ownable item
|
||||||
$permissionService = app(\BookStack\Services\PermissionService::class);
|
$permissionService = app(\BookStack\Auth\Permissions\PermissionService::class);
|
||||||
return $permissionService->checkOwnableUserAccess($ownable, $permission);
|
return $permissionService->checkOwnableUserAccess($ownable, $permission);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,11 +69,11 @@ function userCan($permission, Ownable $ownable = null)
|
|||||||
* Helper to access system settings.
|
* Helper to access system settings.
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param bool $default
|
* @param bool $default
|
||||||
* @return bool|string|\BookStack\Services\SettingService
|
* @return bool|string|\BookStack\Settings\SettingService
|
||||||
*/
|
*/
|
||||||
function setting($key = null, $default = false)
|
function setting($key = null, $default = false)
|
||||||
{
|
{
|
||||||
$settingService = resolve(\BookStack\Services\SettingService::class);
|
$settingService = resolve(\BookStack\Settings\SettingService::class);
|
||||||
if (is_null($key)) {
|
if (is_null($key)) {
|
||||||
return $settingService;
|
return $settingService;
|
||||||
}
|
}
|
||||||
|
@ -274,10 +274,10 @@ return [
|
|||||||
* Custom
|
* Custom
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'Activity' => BookStack\Services\Facades\Activity::class,
|
'Activity' => BookStack\Facades\Activity::class,
|
||||||
'Setting' => BookStack\Services\Facades\Setting::class,
|
'Setting' => BookStack\Facades\Setting::class,
|
||||||
'Views' => BookStack\Services\Facades\Views::class,
|
'Views' => BookStack\Facades\Views::class,
|
||||||
'Images' => BookStack\Services\Facades\Images::class,
|
'Images' => BookStack\Facades\Images::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ return [
|
|||||||
'providers' => [
|
'providers' => [
|
||||||
'users' => [
|
'users' => [
|
||||||
'driver' => env('AUTH_METHOD', 'standard') === 'standard' ? 'eloquent' : env('AUTH_METHOD'),
|
'driver' => env('AUTH_METHOD', 'standard') === 'standard' ? 'eloquent' : env('AUTH_METHOD'),
|
||||||
'model' => BookStack\User::class,
|
'model' => \BookStack\Auth\User::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
// 'users' => [
|
// 'users' => [
|
||||||
|
@ -38,7 +38,7 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'stripe' => [
|
'stripe' => [
|
||||||
'model' => BookStack\User::class,
|
'model' => \BookStack\Auth\User::class,
|
||||||
'key' => '',
|
'key' => '',
|
||||||
'secret' => '',
|
'secret' => '',
|
||||||
],
|
],
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$factory->define(BookStack\User::class, function ($faker) {
|
$factory->define(\BookStack\Auth\User::class, function ($faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->name,
|
'name' => $faker->name,
|
||||||
'email' => $faker->email,
|
'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 [
|
return [
|
||||||
'name' => $faker->sentence,
|
'name' => $faker->sentence,
|
||||||
'slug' => str_random(10),
|
'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 [
|
return [
|
||||||
'name' => $faker->sentence,
|
'name' => $faker->sentence,
|
||||||
'slug' => str_random(10),
|
'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 [
|
return [
|
||||||
'name' => $faker->sentence,
|
'name' => $faker->sentence,
|
||||||
'slug' => str_random(10),
|
'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>';
|
$html = '<p>' . implode('</p>', $faker->paragraphs(5)) . '</p>';
|
||||||
return [
|
return [
|
||||||
'name' => $faker->sentence,
|
'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 [
|
return [
|
||||||
'display_name' => $faker->sentence(3),
|
'display_name' => $faker->sentence(3),
|
||||||
'description' => $faker->sentence(10)
|
'description' => $faker->sentence(10)
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->define(BookStack\Tag::class, function ($faker) {
|
$factory->define(\BookStack\Actions\Tag::class, function ($faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->city,
|
'name' => $faker->city,
|
||||||
'value' => $faker->sentence(3)
|
'value' => $faker->sentence(3)
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
$factory->define(BookStack\Image::class, function ($faker) {
|
$factory->define(\BookStack\Uploads\Image::class, function ($faker) {
|
||||||
return [
|
return [
|
||||||
'name' => $faker->slug . '.jpg',
|
'name' => $faker->slug . '.jpg',
|
||||||
'url' => $faker->url,
|
'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);
|
$text = $faker->paragraph(1);
|
||||||
$html = '<p>' . $text. '</p>';
|
$html = '<p>' . $text. '</p>';
|
||||||
return [
|
return [
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use BookStack\Image;
|
use BookStack\Uploads\Image;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
@ -119,11 +119,11 @@ class CreateBookshelvesTable extends Migration
|
|||||||
Schema::dropIfExists('bookshelves');
|
Schema::dropIfExists('bookshelves');
|
||||||
|
|
||||||
// Drop related polymorphic items
|
// Drop related polymorphic items
|
||||||
DB::table('activities')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
|
DB::table('activities')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
|
||||||
DB::table('views')->where('viewable_type', '=', 'BookStack\Bookshelf')->delete();
|
DB::table('views')->where('viewable_type', '=', 'BookStack\Entities\Bookshelf')->delete();
|
||||||
DB::table('entity_permissions')->where('restrictable_type', '=', 'BookStack\Bookshelf')->delete();
|
DB::table('entity_permissions')->where('restrictable_type', '=', 'BookStack\Entities\Bookshelf')->delete();
|
||||||
DB::table('tags')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
|
DB::table('tags')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
|
||||||
DB::table('search_terms')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
|
DB::table('search_terms')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
|
||||||
DB::table('comments')->where('entity_type', '=', 'BookStack\Bookshelf')->delete();
|
DB::table('comments')->where('entity_type', '=', 'BookStack\Entities\Bookshelf')->delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,39 +12,39 @@ class DummyContentSeeder extends Seeder
|
|||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
// Create an editor user
|
// Create an editor user
|
||||||
$editorUser = factory(\BookStack\User::class)->create();
|
$editorUser = factory(\BookStack\Auth\User::class)->create();
|
||||||
$editorRole = \BookStack\Role::getRole('editor');
|
$editorRole = \BookStack\Auth\Role::getRole('editor');
|
||||||
$editorUser->attachRole($editorRole);
|
$editorUser->attachRole($editorRole);
|
||||||
|
|
||||||
// Create a viewer user
|
// Create a viewer user
|
||||||
$viewerUser = factory(\BookStack\User::class)->create();
|
$viewerUser = factory(\BookStack\Auth\User::class)->create();
|
||||||
$role = \BookStack\Role::getRole('viewer');
|
$role = \BookStack\Auth\Role::getRole('viewer');
|
||||||
$viewerUser->attachRole($role);
|
$viewerUser->attachRole($role);
|
||||||
|
|
||||||
$byData = ['created_by' => $editorUser->id, 'updated_by' => $editorUser->id];
|
$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) {
|
->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){
|
->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);
|
$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->chapters()->saveMany($chapters);
|
||||||
$book->pages()->saveMany($pages);
|
$book->pages()->saveMany($pages);
|
||||||
});
|
});
|
||||||
|
|
||||||
$largeBook = factory(\BookStack\Book::class)->create(array_merge($byData, ['name' => 'Large book' . str_random(10)]));
|
$largeBook = factory(\BookStack\Entities\Book::class)->create(array_merge($byData, ['name' => 'Large book' . str_random(10)]));
|
||||||
$pages = factory(\BookStack\Page::class, 200)->make($byData);
|
$pages = factory(\BookStack\Entities\Page::class, 200)->make($byData);
|
||||||
$chapters = factory(\BookStack\Chapter::class, 50)->make($byData);
|
$chapters = factory(\BookStack\Entities\Chapter::class, 50)->make($byData);
|
||||||
$largeBook->pages()->saveMany($pages);
|
$largeBook->pages()->saveMany($pages);
|
||||||
$largeBook->chapters()->saveMany($chapters);
|
$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'));
|
$largeBook->shelves()->attach($shelves->pluck('id'));
|
||||||
|
|
||||||
app(\BookStack\Services\PermissionService::class)->buildJointPermissions();
|
app(\BookStack\Auth\Permissions\PermissionService::class)->buildJointPermissions();
|
||||||
app(\BookStack\Services\SearchService::class)->indexAllEntities();
|
app(\BookStack\Entities\SearchService::class)->indexAllEntities();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,16 +12,16 @@ class LargeContentSeeder extends Seeder
|
|||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
// Create an editor user
|
// Create an editor user
|
||||||
$editorUser = factory(\BookStack\User::class)->create();
|
$editorUser = factory(\BookStack\Auth\User::class)->create();
|
||||||
$editorRole = \BookStack\Role::getRole('editor');
|
$editorRole = \BookStack\Auth\Role::getRole('editor');
|
||||||
$editorUser->attachRole($editorRole);
|
$editorUser->attachRole($editorRole);
|
||||||
|
|
||||||
$largeBook = factory(\BookStack\Book::class)->create(['name' => 'Large book' . str_random(10), '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\Page::class, 200)->make(['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\Chapter::class, 50)->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->pages()->saveMany($pages);
|
||||||
$largeBook->chapters()->saveMany($chapters);
|
$largeBook->chapters()->saveMany($chapters);
|
||||||
app(\BookStack\Services\PermissionService::class)->buildJointPermissions();
|
app(\BookStack\Auth\Permissions\PermissionService::class)->buildJointPermissions();
|
||||||
app(\BookStack\Services\SearchService::class)->indexAllEntities();
|
app(\BookStack\Entities\SearchService::class)->indexAllEntities();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div page-picker>
|
<div page-picker>
|
||||||
<div class="input-base">
|
<div class="input-base">
|
||||||
<span @if($value) style="display: none" @endif page-picker-default class="text-muted italic">{{ $placeholder }}</span>
|
<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>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<input type="hidden" value="{{$value}}" name="{{$name}}" id="{{$name}}">
|
<input type="hidden" value="{{$value}}" name="{{$name}}" id="{{$name}}">
|
||||||
|
@ -18,19 +18,19 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3 class="text-muted">@icon('page') {{ trans('entities.pages_popular') }}</h3>
|
<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>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3 class="text-muted">@icon('book') {{ trans('entities.books_popular') }}</h3>
|
<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>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h3 class="text-muted">@icon('chapter') {{ trans('entities.chapters_popular') }}</h3>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -127,9 +127,9 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="setting-registration-role">{{ trans('settings.reg_default_role') }}</label>
|
<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>
|
<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 }}"
|
<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 }}
|
{{ $role->display_name }}
|
||||||
</option>
|
</option>
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
|
|
||||||
|
use BookStack\Entities\Book;
|
||||||
|
|
||||||
class ActivityTrackingTest extends BrowserKitTest
|
class ActivityTrackingTest extends BrowserKitTest
|
||||||
{
|
{
|
||||||
|
|
||||||
public function test_recently_viewed_books()
|
public function test_recently_viewed_books()
|
||||||
{
|
{
|
||||||
$books = \BookStack\Book::all()->take(10);
|
$books = Book::all()->take(10);
|
||||||
|
|
||||||
$this->asAdmin()->visit('/books')
|
$this->asAdmin()->visit('/books')
|
||||||
->dontSeeInElement('#recents', $books[0]->name)
|
->dontSeeInElement('#recents', $books[0]->name)
|
||||||
@ -20,7 +22,7 @@ class ActivityTrackingTest extends BrowserKitTest
|
|||||||
|
|
||||||
public function test_popular_books()
|
public function test_popular_books()
|
||||||
{
|
{
|
||||||
$books = \BookStack\Book::all()->take(10);
|
$books = Book::all()->take(10);
|
||||||
|
|
||||||
$this->asAdmin()->visit('/books')
|
$this->asAdmin()->visit('/books')
|
||||||
->dontSeeInElement('#popular', $books[0]->name)
|
->dontSeeInElement('#popular', $books[0]->name)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Attachment;
|
use BookStack\Uploads\Attachment;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
|
|
||||||
class AttachmentTest extends TestCase
|
class AttachmentTest extends TestCase
|
||||||
{
|
{
|
||||||
@ -44,8 +44,8 @@ class AttachmentTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
protected function deleteUploads()
|
protected function deleteUploads()
|
||||||
{
|
{
|
||||||
$fileService = $this->app->make(\BookStack\Services\AttachmentService::class);
|
$fileService = $this->app->make(\BookStack\Uploads\AttachmentService::class);
|
||||||
foreach (\BookStack\Attachment::all() as $file) {
|
foreach (\BookStack\Uploads\Attachment::all() as $file) {
|
||||||
$fileService->deleteFile($file);
|
$fileService->deleteFile($file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,7 +144,7 @@ class AttachmentTest extends TestCase
|
|||||||
'uploaded_to' => $page->id,
|
'uploaded_to' => $page->id,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$attachmentId = \BookStack\Attachment::first()->id;
|
$attachmentId = \BookStack\Uploads\Attachment::first()->id;
|
||||||
|
|
||||||
$update = $this->call('PUT', 'attachments/' . $attachmentId, [
|
$update = $this->call('PUT', 'attachments/' . $attachmentId, [
|
||||||
'uploaded_to' => $page->id,
|
'uploaded_to' => $page->id,
|
||||||
@ -175,7 +175,7 @@ class AttachmentTest extends TestCase
|
|||||||
$filePath = base_path('storage/' . $this->getUploadPath($fileName));
|
$filePath = base_path('storage/' . $this->getUploadPath($fileName));
|
||||||
$this->assertTrue(file_exists($filePath), 'File at path ' . $filePath . ' does not exist');
|
$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->delete($attachment->getUrl());
|
||||||
|
|
||||||
$this->assertDatabaseMissing('attachments', [
|
$this->assertDatabaseMissing('attachments', [
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Notifications\ConfirmEmail;
|
use BookStack\Notifications\ConfirmEmail;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
|
use BookStack\Settings\SettingService;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
|
|
||||||
class AuthTest extends BrowserKitTest
|
class AuthTest extends BrowserKitTest
|
||||||
@ -21,7 +22,7 @@ class AuthTest extends BrowserKitTest
|
|||||||
|
|
||||||
public function test_public_viewing()
|
public function test_public_viewing()
|
||||||
{
|
{
|
||||||
$settings = app('BookStack\Services\SettingService');
|
$settings = app(SettingService::class);
|
||||||
$settings->put('app-public', 'true');
|
$settings->put('app-public', 'true');
|
||||||
$this->visit('/')
|
$this->visit('/')
|
||||||
->seePageIs('/')
|
->seePageIs('/')
|
||||||
@ -248,7 +249,7 @@ class AuthTest extends BrowserKitTest
|
|||||||
|
|
||||||
public function test_user_cannot_be_deleted_if_last_admin()
|
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
|
// Ensure we currently only have 1 admin user
|
||||||
$this->assertEquals(1, $adminRole->users()->count());
|
$this->assertEquals(1, $adminRole->users()->count());
|
||||||
$user = $adminRole->users->first();
|
$user = $adminRole->users->first();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\Services\Ldap;
|
use BookStack\Auth\Access\Ldap;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
use Mockery\MockInterface;
|
use Mockery\MockInterface;
|
||||||
|
|
||||||
class LdapTest extends BrowserKitTest
|
class LdapTest extends BrowserKitTest
|
||||||
|
@ -6,7 +6,7 @@ class SocialAuthTest extends TestCase
|
|||||||
public function test_social_registration()
|
public function test_social_registration()
|
||||||
{
|
{
|
||||||
// http://docs.mockery.io/en/latest/reference/startup_methods.html
|
// 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']);
|
$this->setSettings(['registration-enabled' => 'true']);
|
||||||
config(['GOOGLE_APP_ID' => 'abc123', 'GOOGLE_APP_SECRET' => '123abc', 'APP_URL' => 'http://localhost']);
|
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'
|
'APP_URL' => 'http://localhost'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$user = factory(\BookStack\User::class)->make();
|
$user = factory(\BookStack\Auth\User::class)->make();
|
||||||
$mockSocialite = \Mockery::mock('Laravel\Socialite\Contracts\Factory');
|
$mockSocialite = \Mockery::mock('Laravel\Socialite\Contracts\Factory');
|
||||||
$this->app['Laravel\Socialite\Contracts\Factory'] = $mockSocialite;
|
$this->app['Laravel\Socialite\Contracts\Factory'] = $mockSocialite;
|
||||||
$mockSocialDriver = \Mockery::mock('Laravel\Socialite\Contracts\Provider');
|
$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
|
'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');
|
$mockSocialite = \Mockery::mock('Laravel\Socialite\Contracts\Factory');
|
||||||
$this->app['Laravel\Socialite\Contracts\Factory'] = $mockSocialite;
|
$this->app['Laravel\Socialite\Contracts\Factory'] = $mockSocialite;
|
||||||
$mockSocialDriver = \Mockery::mock('Laravel\Socialite\Contracts\Provider');
|
$mockSocialDriver = \Mockery::mock('Laravel\Socialite\Contracts\Provider');
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Entity;
|
use BookStack\Entities\Entity;
|
||||||
use BookStack\Role;
|
use BookStack\Auth\Role;
|
||||||
use BookStack\Services\PermissionService;
|
use BookStack\Auth\Permissions\PermissionService;
|
||||||
|
use BookStack\Settings\SettingService;
|
||||||
use Illuminate\Contracts\Console\Kernel;
|
use Illuminate\Contracts\Console\Kernel;
|
||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
use Laravel\BrowserKitTesting\TestCase;
|
use Laravel\BrowserKitTesting\TestCase;
|
||||||
@ -46,7 +47,7 @@ abstract class BrowserKitTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function getNormalUser()
|
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)
|
protected function setSettings($settingsArray)
|
||||||
{
|
{
|
||||||
$settings = app('BookStack\Services\SettingService');
|
$settings = app(SettingService::class);
|
||||||
foreach ($settingsArray as $key => $value) {
|
foreach ($settingsArray as $key => $value) {
|
||||||
$settings->put($key, $value);
|
$settings->put($key, $value);
|
||||||
}
|
}
|
||||||
@ -70,9 +71,9 @@ abstract class BrowserKitTest extends TestCase
|
|||||||
protected function createEntityChainBelongingToUser($creatorUser, $updaterUser = false)
|
protected function createEntityChainBelongingToUser($creatorUser, $updaterUser = false)
|
||||||
{
|
{
|
||||||
if ($updaterUser === false) $updaterUser = $creatorUser;
|
if ($updaterUser === false) $updaterUser = $creatorUser;
|
||||||
$book = factory(\BookStack\Book::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]);
|
$book = factory(\BookStack\Entities\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]);
|
$chapter = factory(\BookStack\Entities\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]);
|
$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 = $this->app[PermissionService::class];
|
||||||
$restrictionService->buildJointPermissionsForEntity($book);
|
$restrictionService->buildJointPermissionsForEntity($book);
|
||||||
return [
|
return [
|
||||||
@ -100,7 +101,7 @@ abstract class BrowserKitTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
protected function getNewBlankUser($attributes = [])
|
protected function getNewBlankUser($attributes = [])
|
||||||
{
|
{
|
||||||
$user = factory(\BookStack\User::class)->create($attributes);
|
$user = factory(\BookStack\Auth\User::class)->create($attributes);
|
||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\JointPermission;
|
use BookStack\Auth\Permissions\JointPermission;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\User;
|
use BookStack\Auth\User;
|
||||||
|
|
||||||
class CommandsTest extends TestCase
|
class CommandsTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Bookshelf;
|
use BookStack\Entities\Bookshelf;
|
||||||
|
|
||||||
class BookShelfTest extends TestCase
|
class BookShelfTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,7 @@ class CommentSettingTest extends BrowserKitTest {
|
|||||||
|
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
$this->page = \BookStack\Page::first();
|
$this->page = \BookStack\Entities\Page::first();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_comment_disable () {
|
public function test_comment_disable () {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Comment;
|
use BookStack\Actions\Comment;
|
||||||
|
|
||||||
class CommentTest extends TestCase
|
class CommentTest extends TestCase
|
||||||
{
|
{
|
||||||
@ -23,7 +23,7 @@ class CommentTest extends TestCase
|
|||||||
$this->assertDatabaseHas('comments', [
|
$this->assertDatabaseHas('comments', [
|
||||||
'local_id' => 1,
|
'local_id' => 1,
|
||||||
'entity_id' => $page->id,
|
'entity_id' => $page->id,
|
||||||
'entity_type' => 'BookStack\\Page',
|
'entity_type' => Page::newModelInstance()->getMorphClass(),
|
||||||
'text' => $comment->text,
|
'text' => $comment->text,
|
||||||
'parent_id' => 2
|
'parent_id' => 2
|
||||||
]);
|
]);
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
|
|
||||||
use BookStack\Bookshelf;
|
use BookStack\Entities\Bookshelf;
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
|
|
||||||
class EntitySearchTest extends TestCase
|
class EntitySearchTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
public function test_page_search()
|
public function test_page_search()
|
||||||
{
|
{
|
||||||
$book = \BookStack\Book::all()->first();
|
$book = \BookStack\Entities\Book::all()->first();
|
||||||
$page = $book->pages->first();
|
$page = $book->pages->first();
|
||||||
|
|
||||||
$search = $this->asEditor()->get('/search?term=' . urlencode($page->name));
|
$search = $this->asEditor()->get('/search?term=' . urlencode($page->name));
|
||||||
@ -54,7 +54,7 @@ class EntitySearchTest extends TestCase
|
|||||||
|
|
||||||
public function test_book_search()
|
public function test_book_search()
|
||||||
{
|
{
|
||||||
$book = \BookStack\Book::first();
|
$book = \BookStack\Entities\Book::first();
|
||||||
$page = $book->pages->last();
|
$page = $book->pages->last();
|
||||||
$chapter = $book->chapters->last();
|
$chapter = $book->chapters->last();
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ class EntitySearchTest extends TestCase
|
|||||||
|
|
||||||
public function test_chapter_search()
|
public function test_chapter_search()
|
||||||
{
|
{
|
||||||
$chapter = \BookStack\Chapter::has('pages')->first();
|
$chapter = \BookStack\Entities\Chapter::has('pages')->first();
|
||||||
$page = $chapter->pages[0];
|
$page = $chapter->pages[0];
|
||||||
|
|
||||||
$pageTestResp = $this->asEditor()->get('/search/chapter/' . $chapter->id . '?term=' . urlencode($page->name));
|
$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()
|
public function test_tag_search()
|
||||||
{
|
{
|
||||||
$newTags = [
|
$newTags = [
|
||||||
new \BookStack\Tag([
|
new \BookStack\Actions\Tag([
|
||||||
'name' => 'animal',
|
'name' => 'animal',
|
||||||
'value' => 'cat'
|
'value' => 'cat'
|
||||||
]),
|
]),
|
||||||
new \BookStack\Tag([
|
new \BookStack\Actions\Tag([
|
||||||
'name' => 'color',
|
'name' => 'color',
|
||||||
'value' => 'red'
|
'value' => 'red'
|
||||||
])
|
])
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
use BookStack\Repos\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
|
||||||
class EntityTest extends BrowserKitTest
|
class EntityTest extends BrowserKitTest
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
|
|
||||||
use BookStack\Chapter;
|
use BookStack\Entities\Chapter;
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
|
|
||||||
class ExportTest extends TestCase
|
class ExportTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ class MarkdownTest extends BrowserKitTest
|
|||||||
public function setUp()
|
public function setUp()
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
$this->page = \BookStack\Page::first();
|
$this->page = \BookStack\Entities\Page::first();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function setMarkdownEditor()
|
protected function setMarkdownEditor()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php namespace Tests;
|
<?php namespace Tests;
|
||||||
|
|
||||||
use BookStack\Page;
|
use BookStack\Entities\Page;
|
||||||
use BookStack\Repos\EntityRepo;
|
use BookStack\Entities\EntityRepo;
|
||||||
|
|
||||||
class PageContentTest extends TestCase
|
class PageContentTest extends TestCase
|
||||||
{
|
{
|
||||||
|
@ -9,8 +9,8 @@ class PageDraftTest extends BrowserKitTest
|
|||||||
public function setUp()
|
public function setUp()
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
$this->page = \BookStack\Page::first();
|
$this->page = \BookStack\Entities\Page::first();
|
||||||
$this->entityRepo = app('\BookStack\Repos\EntityRepo');
|
$this->entityRepo = app('\BookStack\Entities\EntityRepo');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_draft_content_shows_if_available()
|
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()
|
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>';
|
$addedContent = '<p>test message content</p>';
|
||||||
$this->asAdmin()->visit($this->page->getUrl() . '/edit')
|
$this->asAdmin()->visit($this->page->getUrl() . '/edit')
|
||||||
->dontSeeInField('html', $addedContent);
|
->dontSeeInField('html', $addedContent);
|
||||||
@ -67,7 +67,7 @@ class PageDraftTest extends BrowserKitTest
|
|||||||
|
|
||||||
public function test_draft_pages_show_on_homepage()
|
public function test_draft_pages_show_on_homepage()
|
||||||
{
|
{
|
||||||
$book = \BookStack\Book::first();
|
$book = \BookStack\Entities\Book::first();
|
||||||
$this->asAdmin()->visit('/')
|
$this->asAdmin()->visit('/')
|
||||||
->dontSeeInElement('#recent-drafts', 'New Page')
|
->dontSeeInElement('#recent-drafts', 'New Page')
|
||||||
->visit($book->getUrl() . '/create-page')
|
->visit($book->getUrl() . '/create-page')
|
||||||
@ -77,7 +77,7 @@ class PageDraftTest extends BrowserKitTest
|
|||||||
|
|
||||||
public function test_draft_pages_not_visible_by_others()
|
public function test_draft_pages_not_visible_by_others()
|
||||||
{
|
{
|
||||||
$book = \BookStack\Book::first();
|
$book = \BookStack\Entities\Book::first();
|
||||||
$chapter = $book->chapters->first();
|
$chapter = $book->chapters->first();
|
||||||
$newUser = $this->getEditor();
|
$newUser = $this->getEditor();
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user