<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\EmailConfirmationService;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\UserRepo;
+use BookStack\Access\EmailConfirmationService;
+use BookStack\Access\LoginService;
use BookStack\Exceptions\ConfirmationEmailException;
use BookStack\Exceptions\UserTokenExpiredException;
use BookStack\Exceptions\UserTokenNotFoundException;
use BookStack\Http\Controllers\Controller;
+use BookStack\Users\UserRepo;
use Exception;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\User;
+use BookStack\Access\LoginService;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Users\Models\User;
trait HandlesPartialLogins
{
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Access\LoginService;
+use BookStack\Access\SocialAuthService;
use BookStack\Exceptions\LoginAttemptEmailNeededException;
use BookStack\Exceptions\LoginAttemptException;
use BookStack\Facades\Activity;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\Mfa\BackupCodeService;
-use BookStack\Auth\Access\Mfa\MfaSession;
-use BookStack\Auth\Access\Mfa\MfaValue;
+use BookStack\Access\LoginService;
+use BookStack\Access\Mfa\BackupCodeService;
+use BookStack\Access\Mfa\MfaSession;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Activity\ActivityType;
use BookStack\Exceptions\NotFoundException;
use BookStack\Http\Controllers\Controller;
use Exception;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\Mfa\MfaValue;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Activity\ActivityType;
use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers\Auth;
-
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\Mfa\MfaSession;
-use BookStack\Auth\Access\Mfa\MfaValue;
-use BookStack\Auth\Access\Mfa\TotpService;
-use BookStack\Auth\Access\Mfa\TotpValidationRule;
+namespace BookStack\Access\Controllers;
+
+use BookStack\Access\LoginService;
+use BookStack\Access\Mfa\MfaSession;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Access\Mfa\TotpService;
+use BookStack\Access\Mfa\TotpValidationRule;
+use BookStack\Activity\ActivityType;
use BookStack\Exceptions\NotFoundException;
use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\Oidc\OidcException;
-use BookStack\Auth\Access\Oidc\OidcService;
+use BookStack\Access\Oidc\OidcException;
+use BookStack\Access\Oidc\OidcService;
use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\RegistrationService;
-use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Access\LoginService;
+use BookStack\Access\RegistrationService;
+use BookStack\Access\SocialAuthService;
use BookStack\Exceptions\StoppedAuthenticationException;
use BookStack\Exceptions\UserRegistrationException;
use BookStack\Http\Controllers\Controller;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\User;
+use BookStack\Access\LoginService;
+use BookStack\Activity\ActivityType;
use BookStack\Http\Controllers\Controller;
+use BookStack\Users\Models\User;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\Saml2Service;
+use BookStack\Access\Saml2Service;
use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\RegistrationService;
-use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Access\LoginService;
+use BookStack\Access\RegistrationService;
+use BookStack\Access\SocialAuthService;
use BookStack\Exceptions\SocialDriverNotConfigured;
use BookStack\Exceptions\SocialSignInAccountNotUsed;
use BookStack\Exceptions\SocialSignInException;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
use Illuminate\Cache\RateLimiter;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers\Auth;
+namespace BookStack\Access\Controllers;
-use BookStack\Auth\Access\UserInviteService;
-use BookStack\Auth\UserRepo;
+use BookStack\Access\UserInviteService;
use BookStack\Exceptions\UserTokenExpiredException;
use BookStack\Exceptions\UserTokenNotFoundException;
use BookStack\Http\Controllers\Controller;
+use BookStack\Users\UserRepo;
use Exception;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\User;
use BookStack\Exceptions\ConfirmationEmailException;
use BookStack\Notifications\ConfirmEmail;
+use BookStack\Users\Models\User;
class EmailConfirmationService extends UserTokenService
{
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\UserProvider;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Support\Collection;
class GroupSyncService
<?php
-namespace BookStack\Auth\Access\Guards;
+namespace BookStack\Access\Guards;
/**
* Saml2 Session Guard.
<?php
-namespace BookStack\Auth\Access\Guards;
+namespace BookStack\Access\Guards;
-use BookStack\Auth\Access\RegistrationService;
+use BookStack\Access\RegistrationService;
use Illuminate\Auth\GuardHelpers;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\StatefulGuard;
<?php
-namespace BookStack\Auth\Access\Guards;
+namespace BookStack\Access\Guards;
-use BookStack\Auth\Access\LdapService;
-use BookStack\Auth\Access\RegistrationService;
-use BookStack\Auth\User;
+use BookStack\Access\LdapService;
+use BookStack\Access\RegistrationService;
use BookStack\Exceptions\JsonDebugException;
use BookStack\Exceptions\LdapException;
use BookStack\Exceptions\LoginAttemptEmailNeededException;
use BookStack\Exceptions\LoginAttemptException;
use BookStack\Exceptions\UserRegistrationException;
+use BookStack\Users\Models\User;
use Illuminate\Contracts\Auth\UserProvider;
use Illuminate\Contracts\Session\Session;
use Illuminate\Support\Str;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
/**
* Class Ldap
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\User;
use BookStack\Exceptions\JsonDebugException;
use BookStack\Exceptions\LdapException;
use BookStack\Uploads\UserAvatars;
+use BookStack\Users\Models\User;
use ErrorException;
use Illuminate\Support\Facades\Log;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\Mfa\MfaSession;
-use BookStack\Auth\User;
+use BookStack\Access\Mfa\MfaSession;
+use BookStack\Activity\ActivityType;
use BookStack\Exceptions\LoginAttemptException;
use BookStack\Exceptions\StoppedAuthenticationException;
use BookStack\Facades\Activity;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
+use BookStack\Users\Models\User;
use Exception;
class LoginService
<?php
-namespace BookStack\Auth\Access\Mfa;
+namespace BookStack\Access\Mfa;
use Illuminate\Support\Str;
<?php
-namespace BookStack\Auth\Access\Mfa;
+namespace BookStack\Access\Mfa;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
class MfaSession
{
<?php
-namespace BookStack\Auth\Access\Mfa;
+namespace BookStack\Access\Mfa;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
<?php
-namespace BookStack\Auth\Access\Mfa;
+namespace BookStack\Access\Mfa;
use BaconQrCode\Renderer\Color\Rgb;
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
use BaconQrCode\Renderer\RendererStyle\Fill;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use PragmaRX\Google2FA\Google2FA;
use PragmaRX\Google2FA\Support\Constants;
<?php
-namespace BookStack\Auth\Access\Mfa;
+namespace BookStack\Access\Mfa;
use Illuminate\Contracts\Validation\Rule;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use InvalidArgumentException;
use League\OAuth2\Client\Token\AccessToken;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use Exception;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
class OidcIdToken
{
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
class OidcInvalidKeyException extends \Exception
{
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use Exception;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use Exception;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use phpseclib3\Crypt\Common\PublicKey;
use phpseclib3\Crypt\PublicKeyLoader;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use League\OAuth2\Client\Grant\AbstractGrant;
use League\OAuth2\Client\Provider\AbstractProvider;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
use GuzzleHttp\Psr7\Request;
use Illuminate\Contracts\Cache\Repository;
<?php
-namespace BookStack\Auth\Access\Oidc;
+namespace BookStack\Access\Oidc;
-use BookStack\Auth\Access\GroupSyncService;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\RegistrationService;
-use BookStack\Auth\User;
+use BookStack\Access\GroupSyncService;
+use BookStack\Access\LoginService;
+use BookStack\Access\RegistrationService;
use BookStack\Exceptions\JsonDebugException;
use BookStack\Exceptions\StoppedAuthenticationException;
use BookStack\Exceptions\UserRegistrationException;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
+use BookStack\Users\Models\User;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Cache;
use League\OAuth2\Client\OptionProvider\HttpBasicAuthOptionProvider;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\SocialAccount;
-use BookStack\Auth\User;
-use BookStack\Auth\UserRepo;
+use BookStack\Activity\ActivityType;
use BookStack\Exceptions\UserRegistrationException;
use BookStack\Facades\Activity;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
+use BookStack\Users\Models\User;
+use BookStack\Users\UserRepo;
use Exception;
use Illuminate\Support\Str;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\User;
use BookStack\Exceptions\JsonDebugException;
use BookStack\Exceptions\SamlException;
use BookStack\Exceptions\StoppedAuthenticationException;
use BookStack\Exceptions\UserRegistrationException;
+use BookStack\Users\Models\User;
use Exception;
use OneLogin\Saml2\Auth;
use OneLogin\Saml2\Constants;
<?php
-namespace BookStack\Auth;
+namespace BookStack\Access;
-use BookStack\Interfaces\Loggable;
-use BookStack\Model;
+use BookStack\Activity\Models\Loggable;
+use BookStack\App\Model;
+use BookStack\Users\Models\User;
/**
* Class SocialAccount.
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\SocialAccount;
-use BookStack\Auth\User;
+use BookStack\Auth\Access\handler;
use BookStack\Exceptions\SocialDriverNotConfigured;
use BookStack\Exceptions\SocialSignInAccountNotUsed;
use BookStack\Exceptions\UserRegistrationException;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Str;
use Laravel\Socialite\Contracts\Factory as Socialite;
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\User;
use BookStack\Notifications\UserInvite;
+use BookStack\Users\Models\User;
class UserInviteService extends UserTokenService
{
<?php
-namespace BookStack\Auth\Access;
+namespace BookStack\Access;
-use BookStack\Auth\User;
use BookStack\Exceptions\UserTokenExpiredException;
use BookStack\Exceptions\UserTokenNotFoundException;
+use BookStack\Users\Models\User;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity;
-use BookStack\Auth\Permissions\PermissionApplicator;
-use BookStack\Auth\User;
+use BookStack\Activity\Models\Activity;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
+use BookStack\Permissions\PermissionApplicator;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\Relation;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity;
class ActivityType
{
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity;
+use BookStack\Activity\Models\Comment;
use BookStack\Entities\Models\Entity;
use BookStack\Facades\Activity as ActivityService;
use League\CommonMark\CommonMarkConverter;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Activity\Controllers;
-use BookStack\Actions\Activity;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Activity;
+use BookStack\Http\Controllers\Controller;
use BookStack\Util\SimpleListOptions;
use Illuminate\Http\Request;
-use Illuminate\Support\Facades\DB;
class AuditLogController extends Controller
{
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Activity\Controllers;
-use BookStack\Actions\CommentRepo;
+use BookStack\Activity\CommentRepo;
use BookStack\Entities\Models\Page;
+use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Activity\Controllers;
+use BookStack\Activity\Models\Favouritable;
+use BookStack\App\Model;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Queries\TopFavourites;
-use BookStack\Interfaces\Favouritable;
-use BookStack\Model;
+use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
class FavouriteController extends Controller
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Activity\Controllers;
-use BookStack\Actions\TagRepo;
+use BookStack\Activity\TagRepo;
+use BookStack\Http\Controllers\Controller;
use BookStack\Util\SimpleListOptions;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Activity\Controllers;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\Queries\WebhooksAllPaginatedAndSorted;
-use BookStack\Actions\Webhook;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Webhook;
+use BookStack\Activity\Queries\WebhooksAllPaginatedAndSorted;
+use BookStack\Http\Controllers\Controller;
use BookStack\Util\SimpleListOptions;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity;
-use BookStack\Auth\User;
+use BookStack\Activity\Models\Loggable;
+use BookStack\Activity\Models\Webhook;
+use BookStack\Activity\Tools\WebhookFormatter;
use BookStack\Facades\Theme;
-use BookStack\Interfaces\Loggable;
use BookStack\Theming\ThemeEvents;
+use BookStack\Users\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Auth\User;
+use BookStack\App\Model;
use BookStack\Entities\Models\Entity;
-use BookStack\Model;
+use BookStack\Permissions\Models\JointPermission;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
-use BookStack\Model;
-use BookStack\Traits\HasCreatorAndUpdater;
+use BookStack\App\Model;
+use BookStack\Users\Models\HasCreatorAndUpdater;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\MorphTo;
<?php
-namespace BookStack\Interfaces;
+namespace BookStack\Activity\Models;
use Illuminate\Database\Eloquent\Relations\MorphMany;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Model;
+use BookStack\App\Model;
+use BookStack\Permissions\Models\JointPermission;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
<?php
-namespace BookStack\Interfaces;
+namespace BookStack\Activity\Models;
interface Loggable
{
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Model;
+use BookStack\App\Model;
+use BookStack\Permissions\Models\JointPermission;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Interfaces\Viewable;
-use BookStack\Model;
+use BookStack\App\Model;
+use BookStack\Permissions\Models\JointPermission;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
<?php
-namespace BookStack\Interfaces;
+namespace BookStack\Activity\Models;
use Illuminate\Database\Eloquent\Relations\MorphMany;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
-use BookStack\Interfaces\Loggable;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
<?php
-namespace BookStack\Actions\Queries;
+namespace BookStack\Activity\Queries;
-use BookStack\Actions\Webhook;
+use BookStack\Activity\Models\Webhook;
use BookStack\Util\SimpleListOptions;
use Illuminate\Pagination\LengthAwarePaginator;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity;
-use BookStack\Auth\Permissions\PermissionApplicator;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\Models\Entity;
+use BookStack\Permissions\PermissionApplicator;
use BookStack\Util\SimpleListOptions;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Tools;
+use BookStack\Activity\Models\Activity;
+use BookStack\Activity\Models\Loggable;
+use BookStack\Activity\Models\Webhook;
use BookStack\Entities\Models\Entity;
use BookStack\Facades\Theme;
-use BookStack\Interfaces\Loggable;
use BookStack\Theming\ThemeEvents;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Log;
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Tools;
class IpFormatter
{
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Tools;
+
+use BookStack\Activity\Models\Tag;
class TagClassGenerator
{
<?php
-namespace BookStack\Actions;
+namespace BookStack\Activity\Tools;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Loggable;
+use BookStack\Activity\Models\Webhook;
+use BookStack\App\Model;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
-use BookStack\Interfaces\Loggable;
-use BookStack\Model;
+use BookStack\Users\Models\User;
use Illuminate\Support\Carbon;
class WebhookFormatter
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Api;
-use BookStack\Api\ApiDocsGenerator;
+use BookStack\Http\Controllers\ApiController;
class ApiDocsController extends ApiController
{
namespace BookStack\Api;
-use BookStack\Http\Controllers\Api\ApiController;
+use BookStack\Http\Controllers\ApiController;
use Exception;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Support\Collection;
namespace BookStack\Api;
-use BookStack\Auth\User;
-use BookStack\Interfaces\Loggable;
+use BookStack\Activity\Models\Loggable;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
namespace BookStack\Api;
-use BookStack\Auth\Access\LoginService;
+use BookStack\Access\LoginService;
use BookStack\Exceptions\ApiAuthException;
use Illuminate\Auth\GuardHelpers;
use Illuminate\Contracts\Auth\Authenticatable;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Api;
-use BookStack\Actions\ActivityType;
-use BookStack\Api\ApiToken;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Http\Controllers\Controller;
+use BookStack\Users\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
<?php
-namespace BookStack;
+namespace BookStack\App;
class Application extends \Illuminate\Foundation\Application
{
<?php
-namespace BookStack;
+namespace BookStack\App;
use Illuminate\Database\Eloquent\Model as EloquentModel;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
-use BookStack\Actions\ActivityLogger;
-use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Access\SocialAuthService;
+use BookStack\Activity\Tools\ActivityLogger;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
+use BookStack\Access\ExternalBaseUserProvider;
+use BookStack\Access\Guards\AsyncExternalBaseSessionGuard;
+use BookStack\Access\Guards\LdapSessionGuard;
+use BookStack\Access\LdapService;
+use BookStack\Access\LoginService;
+use BookStack\Access\RegistrationService;
use BookStack\Api\ApiTokenGuard;
-use BookStack\Auth\Access\ExternalBaseUserProvider;
-use BookStack\Auth\Access\Guards\AsyncExternalBaseSessionGuard;
-use BookStack\Auth\Access\Guards\LdapSessionGuard;
-use BookStack\Auth\Access\LdapService;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\RegistrationService;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\ServiceProvider;
use Illuminate\Validation\Rules\Password;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use SocialiteProviders\Manager\SocialiteWasCalled;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
use BookStack\Theming\ThemeEvents;
use BookStack\Theming\ThemeService;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
use BookStack\Translation\FileLoader;
use BookStack\Translation\MessageSelector;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
use BookStack\Uploads\ImageService;
use Illuminate\Support\Facades\Validator;
<?php
-namespace BookStack\Providers;
+namespace BookStack\App\Providers;
use BookStack\Entities\BreadcrumbsViewComposer;
use Illuminate\Pagination\Paginator;
<?php
-namespace BookStack\Interfaces;
+namespace BookStack\App;
/**
* Assigned to models that can have slugs.
<?php
-use BookStack\Auth\Permissions\PermissionApplicator;
-use BookStack\Auth\User;
-use BookStack\Model;
+use BookStack\App\Model;
+use BookStack\Permissions\PermissionApplicator;
use BookStack\Settings\SettingService;
+use BookStack\Users\Models\User;
/**
* Get the path to a versioned file.
SocialiteProviders\Manager\ServiceProvider::class,
// BookStack custom service providers
- BookStack\Providers\ThemeServiceProvider::class,
- BookStack\Providers\AppServiceProvider::class,
- BookStack\Providers\AuthServiceProvider::class,
- BookStack\Providers\EventServiceProvider::class,
- BookStack\Providers\RouteServiceProvider::class,
- BookStack\Providers\TranslationServiceProvider::class,
- BookStack\Providers\ValidationRuleServiceProvider::class,
- BookStack\Providers\ViewTweaksServiceProvider::class,
+ \BookStack\App\Providers\ThemeServiceProvider::class,
+ \BookStack\App\Providers\AppServiceProvider::class,
+ \BookStack\App\Providers\AuthServiceProvider::class,
+ \BookStack\App\Providers\EventServiceProvider::class,
+ \BookStack\App\Providers\RouteServiceProvider::class,
+ \BookStack\App\Providers\TranslationServiceProvider::class,
+ \BookStack\App\Providers\ValidationRuleServiceProvider::class,
+ \BookStack\App\Providers\ViewTweaksServiceProvider::class,
],
// Class Aliases
'providers' => [
'users' => [
'driver' => 'eloquent',
- 'model' => \BookStack\Auth\User::class,
+ 'model' => \BookStack\Users\Models\User::class,
],
'external' => [
'driver' => 'external-users',
- 'model' => \BookStack\Auth\User::class,
+ 'model' => \BookStack\Users\Models\User::class,
],
// 'users' => [
namespace BookStack\Console\Commands;
-use BookStack\Actions\Activity;
+use BookStack\Activity\Models\Activity;
use Illuminate\Console\Command;
class ClearActivity extends Command
namespace BookStack\Console\Commands;
-use BookStack\Actions\View;
+use BookStack\Activity\Models\View;
use Illuminate\Console\Command;
class ClearViews extends Command
namespace BookStack\Console\Commands;
-use BookStack\Auth\Role;
-use BookStack\Auth\UserRepo;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Users\Models\Role;
+use BookStack\Users\UserRepo;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
namespace BookStack\Console\Commands;
-use BookStack\Auth\User;
-use BookStack\Auth\UserRepo;
+use BookStack\Users\Models\User;
+use BookStack\Users\UserRepo;
use Illuminate\Console\Command;
class DeleteUsers extends Command
namespace BookStack\Console\Commands;
-use BookStack\Actions\Comment;
-use BookStack\Actions\CommentRepo;
+use BookStack\Activity\CommentRepo;
+use BookStack\Activity\Models\Comment;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
namespace BookStack\Console\Commands;
-use BookStack\Auth\Permissions\JointPermissionBuilder;
+use BookStack\Permissions\JointPermissionBuilder;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
namespace BookStack\Console\Commands;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Illuminate\Console\Command;
class ResetMfa extends Command
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Api\ApiEntityListFormatter;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Repos\BookRepo;
use BookStack\Entities\Tools\BookContents;
+use BookStack\Http\Controllers\ApiController;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\ActivityQueries;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\View;
+use BookStack\Activity\ActivityQueries;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\View;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Repos\BookRepo;
use BookStack\Entities\Tools\BookContents;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\NotFoundException;
use BookStack\Facades\Activity;
+use BookStack\Http\Controllers\Controller;
use BookStack\References\ReferenceFetcher;
use BookStack\Util\SimpleListOptions;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Tools\ExportFormatter;
+use BookStack\Http\Controllers\ApiController;
use Throwable;
class BookExportApiController extends ApiController
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Repos\BookRepo;
use BookStack\Entities\Tools\ExportFormatter;
+use BookStack\Http\Controllers\Controller;
use Throwable;
class BookExportController extends Controller
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Repos\BookRepo;
use BookStack\Entities\Tools\BookContents;
use BookStack\Entities\Tools\BookSortMap;
use BookStack\Facades\Activity;
+use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
class BookSortController extends Controller
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Repos\BookshelfRepo;
+use BookStack\Http\Controllers\ApiController;
use Exception;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\ActivityQueries;
-use BookStack\Actions\View;
+use BookStack\Activity\ActivityQueries;
+use BookStack\Activity\Models\View;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Repos\BookshelfRepo;
use BookStack\Entities\Tools\ShelfContext;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Http\Controllers\Controller;
use BookStack\References\ReferenceFetcher;
use BookStack\Util\SimpleListOptions;
use Exception;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Repos\ChapterRepo;
+use BookStack\Http\Controllers\ApiController;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\View;
+use BookStack\Activity\Models\View;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Repos\ChapterRepo;
use BookStack\Entities\Tools\BookContents;
use BookStack\Exceptions\MoveOperationException;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\PermissionsException;
+use BookStack\Http\Controllers\Controller;
use BookStack\References\ReferenceFetcher;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Tools\ExportFormatter;
+use BookStack\Http\Controllers\ApiController;
use Throwable;
class ChapterExportApiController extends ApiController
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Repos\ChapterRepo;
use BookStack\Entities\Tools\ExportFormatter;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Http\Controllers\Controller;
use Throwable;
class ChapterExportController extends Controller
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Exceptions\PermissionsException;
+use BookStack\Http\Controllers\ApiController;
use Exception;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\View;
+use BookStack\Activity\Models\View;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\BookContents;
use BookStack\Entities\Tools\PageEditorData;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\PermissionsException;
+use BookStack\Http\Controllers\Controller;
use BookStack\References\ReferenceFetcher;
use Exception;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Tools\ExportFormatter;
+use BookStack\Http\Controllers\ApiController;
use Throwable;
class PageExportApiController extends ApiController
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\ExportFormatter;
use BookStack\Entities\Tools\PageContent;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Http\Controllers\Controller;
use Throwable;
class PageExportController extends Controller
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\PageRevision;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\PageContent;
use BookStack\Exceptions\NotFoundException;
use BookStack\Facades\Activity;
+use BookStack\Http\Controllers\Controller;
use BookStack\Util\SimpleListOptions;
use Illuminate\Http\Request;
use Ssddanbrown\HtmlDiff\Diff;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
class PageTemplateController extends Controller
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Entities\Controllers;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\BookChild;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Deletion;
use BookStack\Entities\Repos\DeletionRepo;
+use BookStack\Http\Controllers\ApiController;
use Closure;
use Illuminate\Database\Eloquent\Builder;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Entities\Controllers;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Deletion;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Repos\DeletionRepo;
use BookStack\Entities\Tools\TrashCan;
+use BookStack\Http\Controllers\Controller;
class RecycleBinController extends Controller
{
<?php
-namespace BookStack\Interfaces;
+namespace BookStack\Entities\Models;
use Illuminate\Database\Eloquent\Relations\MorphMany;
namespace BookStack\Entities\Models;
-use BookStack\Auth\User;
-use BookStack\Interfaces\Deletable;
-use BookStack\Interfaces\Loggable;
+use BookStack\Activity\Models\Loggable;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphTo;
namespace BookStack\Entities\Models;
-use BookStack\Actions\Activity;
-use BookStack\Actions\Comment;
-use BookStack\Actions\Favourite;
-use BookStack\Actions\Tag;
-use BookStack\Actions\View;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Auth\Permissions\JointPermissionBuilder;
-use BookStack\Auth\Permissions\PermissionApplicator;
+use BookStack\Activity\Models\Activity;
+use BookStack\Activity\Models\Comment;
+use BookStack\Activity\Models\Favouritable;
+use BookStack\Activity\Models\Favourite;
+use BookStack\Activity\Models\Loggable;
+use BookStack\Activity\Models\Tag;
+use BookStack\Activity\Models\View;
+use BookStack\Activity\Models\Viewable;
+use BookStack\App\Model;
+use BookStack\App\Sluggable;
use BookStack\Entities\Tools\SlugGenerator;
-use BookStack\Interfaces\Deletable;
-use BookStack\Interfaces\Favouritable;
-use BookStack\Interfaces\Loggable;
-use BookStack\Interfaces\Sluggable;
-use BookStack\Interfaces\Viewable;
-use BookStack\Model;
+use BookStack\Permissions\JointPermissionBuilder;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Permissions\Models\JointPermission;
+use BookStack\Permissions\PermissionApplicator;
use BookStack\References\Reference;
use BookStack\Search\SearchIndex;
use BookStack\Search\SearchTerm;
-use BookStack\Traits\HasCreatorAndUpdater;
-use BookStack\Traits\HasOwner;
+use BookStack\Users\Models\HasCreatorAndUpdater;
+use BookStack\Users\Models\HasOwner;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
namespace BookStack\Entities\Models;
-use BookStack\Auth\Permissions\PermissionApplicator;
use BookStack\Entities\Tools\PageContent;
+use BookStack\Permissions\PermissionApplicator;
use BookStack\Uploads\Attachment;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
namespace BookStack\Entities\Models;
-use BookStack\Auth\User;
-use BookStack\Interfaces\Loggable;
-use BookStack\Model;
+use BookStack\Activity\Models\Loggable;
+use BookStack\App\Model;
+use BookStack\Users\Models\User;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
namespace BookStack\Entities\Queries;
-use BookStack\Auth\Permissions\PermissionApplicator;
use BookStack\Entities\EntityProvider;
+use BookStack\Permissions\PermissionApplicator;
abstract class EntityQuery
{
namespace BookStack\Entities\Queries;
-use BookStack\Actions\View;
+use BookStack\Activity\Models\View;
use Illuminate\Support\Facades\DB;
class Popular extends EntityQuery
namespace BookStack\Entities\Queries;
-use BookStack\Actions\View;
+use BookStack\Activity\Models\View;
use Illuminate\Support\Collection;
class RecentlyViewed extends EntityQuery
namespace BookStack\Entities\Queries;
-use BookStack\Actions\Favourite;
+use BookStack\Activity\Models\Favourite;
use Illuminate\Database\Query\JoinClause;
class TopFavourites extends EntityQuery
namespace BookStack\Entities\Repos;
-use BookStack\Actions\TagRepo;
+use BookStack\Activity\TagRepo;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\HasCoverImage;
use BookStack\Exceptions\ImageUploadException;
namespace BookStack\Entities\Repos;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\TagRepo;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\TagRepo;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Tools\TrashCan;
use BookStack\Exceptions\ImageUploadException;
namespace BookStack\Entities\Repos;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Tools\TrashCan;
namespace BookStack\Entities\Repos;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Entity;
namespace BookStack\Entities\Repos;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Deletion;
use BookStack\Entities\Tools\TrashCan;
use BookStack\Facades\Activity;
namespace BookStack\Entities\Repos;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Entity;
namespace BookStack\Entities\Tools;
-use BookStack\Actions\Tag;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
namespace BookStack\Entities\Tools;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
namespace BookStack\Entities\Tools;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Entity;
use BookStack\Facades\Activity;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Http\Request;
class PermissionsUpdater
namespace BookStack\Entities\Tools;
+use BookStack\App\Model;
+use BookStack\App\Sluggable;
use BookStack\Entities\Models\BookChild;
-use BookStack\Interfaces\Sluggable;
-use BookStack\Model;
use Illuminate\Support\Str;
class SlugGenerator
namespace BookStack\Exceptions;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\User;
+use BookStack\Access\LoginService;
+use BookStack\Users\Models\User;
use Illuminate\Contracts\Support\Responsable;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Facade;
/**
- * @mixin \BookStack\Actions\ActivityLogger
+ * @mixin \BookStack\Activity\Tools\ActivityLogger
*/
class Activity extends Facade
{
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Http\Controllers;
use BookStack\Api\ListingResponseBuilder;
-use BookStack\Http\Controllers\Controller;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\JsonResponse;
namespace BookStack\Http\Controllers;
+use BookStack\Activity\Models\Loggable;
+use BookStack\App\Model;
use BookStack\Exceptions\NotifyException;
use BookStack\Facades\Activity;
use BookStack\Http\Responses\DownloadResponseFactory;
-use BookStack\Interfaces\Loggable;
-use BookStack\Model;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\JsonResponse;
namespace BookStack\Http\Controllers;
-use BookStack\Actions\ActivityQueries;
+use BookStack\Activity\ActivityQueries;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Queries\RecentlyViewed;
namespace BookStack\Http\Middleware;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\Mfa\MfaSession;
+use BookStack\Access\LoginService;
+use BookStack\Access\Mfa\MfaSession;
use Closure;
class AuthenticatedOrPendingMfa
namespace BookStack\Http\Middleware;
-use BookStack\Auth\Access\EmailConfirmationService;
-use BookStack\Auth\User;
+use BookStack\Access\EmailConfirmationService;
+use BookStack\Users\Models\User;
use Closure;
/**
namespace BookStack\Http\Middleware;
-use BookStack\Util\LanguageManager;
+use BookStack\Translation\LanguageManager;
use Carbon\Carbon;
use Closure;
namespace BookStack\Http\Middleware;
-use BookStack\Providers\RouteServiceProvider;
+use BookStack\App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+++ /dev/null
-<?php
-
-namespace BookStack\Http\Requests;
-
-use Illuminate\Foundation\Http\FormRequest;
-
-abstract class Request extends FormRequest
-{
- //
-}
namespace BookStack\Notifications;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Illuminate\Notifications\Messages\MailMessage;
class UserInvite extends MailNotification
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Permissions;
use BookStack\Entities\EntityProvider;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Tools\PermissionsUpdater;
+use BookStack\Http\Controllers\ApiController;
use Illuminate\Http\Request;
class ContentPermissionApiController extends ApiController
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
-use BookStack\Auth\Role;
use BookStack\Entities\Models\Entity;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Users\Models\Role;
use Illuminate\Database\Eloquent\Builder;
class EntityPermissionEvaluator
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
-use BookStack\Auth\Role;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\BookChild;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
+use BookStack\Permissions\Models\JointPermission;
+use BookStack\Users\Models\Role;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
use Illuminate\Support\Facades\DB;
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
+
+use BookStack\Permissions\Models\EntityPermission;
class MassEntityPermissionEvaluator extends EntityPermissionEvaluator
{
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions\Models;
-use BookStack\Auth\Role;
-use BookStack\Model;
+use BookStack\App\Model;
+use BookStack\Users\Models\Role;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions\Models;
-use BookStack\Auth\Role;
+use BookStack\App\Model;
use BookStack\Entities\Models\Entity;
-use BookStack\Model;
+use BookStack\Users\Models\Role;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphOne;
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions\Models;
-use BookStack\Auth\Role;
-use BookStack\Model;
+use BookStack\App\Model;
+use BookStack\Users\Models\Role;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
/**
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\App\Model;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
-use BookStack\Model;
-use BookStack\Traits\HasCreatorAndUpdater;
-use BookStack\Traits\HasOwner;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Users\Models\HasCreatorAndUpdater;
+use BookStack\Users\Models\HasOwner;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Query\Builder as QueryBuilder;
use InvalidArgumentException;
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
-use BookStack\Auth\Role;
use BookStack\Entities\Models\Entity;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Users\Models\Role;
class PermissionFormData
{
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
class PermissionStatus
{
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Permissions;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Permissions\PermissionFormData;
-use BookStack\Auth\Role;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Tools\PermissionsUpdater;
+use BookStack\Http\Controllers\Controller;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Users\Models\Role;
use Illuminate\Http\Request;
class PermissionsController extends Controller
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Role;
+use BookStack\Activity\ActivityType;
use BookStack\Exceptions\PermissionsException;
use BookStack\Facades\Activity;
+use BookStack\Permissions\Models\RolePermission;
+use BookStack\Users\Models\Role;
use Exception;
use Illuminate\Database\Eloquent\Collection;
<?php
-namespace BookStack\Auth\Permissions;
+namespace BookStack\Permissions;
use BookStack\Entities\Models\Entity;
namespace BookStack\References;
-use BookStack\Model;
+use BookStack\App\Model;
use BookStack\References\ModelResolvers\BookLinkModelResolver;
use BookStack\References\ModelResolvers\BookshelfLinkModelResolver;
use BookStack\References\ModelResolvers\ChapterLinkModelResolver;
namespace BookStack\References\ModelResolvers;
+use BookStack\App\Model;
use BookStack\Entities\Models\Book;
-use BookStack\Model;
class BookLinkModelResolver implements CrossLinkModelResolver
{
namespace BookStack\References\ModelResolvers;
+use BookStack\App\Model;
use BookStack\Entities\Models\Bookshelf;
-use BookStack\Model;
class BookshelfLinkModelResolver implements CrossLinkModelResolver
{
namespace BookStack\References\ModelResolvers;
+use BookStack\App\Model;
use BookStack\Entities\Models\Chapter;
-use BookStack\Model;
class ChapterLinkModelResolver implements CrossLinkModelResolver
{
namespace BookStack\References\ModelResolvers;
-use BookStack\Model;
+use BookStack\App\Model;
interface CrossLinkModelResolver
{
namespace BookStack\References\ModelResolvers;
+use BookStack\App\Model;
use BookStack\Entities\Models\Page;
-use BookStack\Model;
class PageLinkModelResolver implements CrossLinkModelResolver
{
namespace BookStack\References\ModelResolvers;
+use BookStack\App\Model;
use BookStack\Entities\Models\Page;
-use BookStack\Model;
class PagePermalinkModelResolver implements CrossLinkModelResolver
{
namespace BookStack\References;
-use BookStack\Auth\Permissions\JointPermission;
+use BookStack\Permissions\Models\JointPermission;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\References;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
-use BookStack\References\ReferenceFetcher;
+use BookStack\Http\Controllers\Controller;
class ReferenceController extends Controller
{
namespace BookStack\References;
-use BookStack\Auth\Permissions\PermissionApplicator;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
+use BookStack\Permissions\PermissionApplicator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Relations\Relation;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Search;
use BookStack\Api\ApiEntityListFormatter;
use BookStack\Entities\Models\Entity;
-use BookStack\Search\SearchOptions;
-use BookStack\Search\SearchResultsFormatter;
-use BookStack\Search\SearchRunner;
+use BookStack\Http\Controllers\ApiController;
use Illuminate\Http\Request;
class SearchApiController extends ApiController
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Search;
use BookStack\Entities\Queries\Popular;
use BookStack\Entities\Tools\SiblingFetcher;
-use BookStack\Search\SearchOptions;
-use BookStack\Search\SearchResultsFormatter;
-use BookStack\Search\SearchRunner;
+use BookStack\Http\Controllers\Controller;
use Illuminate\Http\Request;
class SearchController extends Controller
namespace BookStack\Search;
-use BookStack\Actions\Tag;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\EntityProvider;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
namespace BookStack\Search;
-use BookStack\Actions\Tag;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\Models\Entity;
use Illuminate\Support\HtmlString;
namespace BookStack\Search;
-use BookStack\Auth\Permissions\PermissionApplicator;
-use BookStack\Auth\User;
use BookStack\Entities\EntityProvider;
use BookStack\Entities\Models\BookChild;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
+use BookStack\Permissions\PermissionApplicator;
+use BookStack\Users\Models\User;
use Illuminate\Database\Connection;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
namespace BookStack\Search;
-use BookStack\Model;
+use BookStack\App\Model;
class SearchTerm extends Model
{
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Settings;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Tools\TrashCan;
+use BookStack\Http\Controllers\Controller;
use BookStack\Notifications\TestEmail;
use BookStack\References\ReferenceStore;
use BookStack\Uploads\ImageService;
namespace BookStack\Settings;
-use BookStack\Model;
+use BookStack\App\Model;
class Setting extends Model
{
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Settings;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\User;
-use BookStack\Settings\AppSettingsStore;
-use BookStack\Uploads\ImageRepo;
+use BookStack\Activity\ActivityType;
+use BookStack\Http\Controllers\Controller;
+use BookStack\Users\Models\User;
use Illuminate\Http\Request;
class SettingController extends Controller
namespace BookStack\Settings;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
/**
* Class SettingService
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Settings;
+use BookStack\Http\Controllers\Controller;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
* the type before making use of this parameter.
*
* @param string $type
- * @param string|\BookStack\Interfaces\Loggable $detail
+ * @param string|\BookStack\Activity\Models\Loggable $detail
*/
const ACTIVITY_LOGGED = 'activity_logged';
* Application boot-up.
* After main services are registered.
*
- * @param \BookStack\Application $app
+ * @param \BookStack\App\Application $app
*/
const APP_BOOT = 'app_boot';
* after registration. This is not emitted upon API usage.
*
* @param string $authSystem
- * @param \BookStack\Auth\User $user
+ * @param \BookStack\Users\Models\User $user
*/
const AUTH_LOGIN = 'auth_login';
* by LDAP, SAML and social systems. It only includes self-registrations.
*
* @param string $authSystem
- * @param \BookStack\Auth\User $user
+ * @param \BookStack\Users\Models\User $user
*/
const AUTH_REGISTER = 'auth_register';
* of the system default.
*
* @param string $event
- * @param \BookStack\Actions\Webhook $webhook
- * @param string|\BookStack\Interfaces\Loggable $detail
- * @param \BookStack\Auth\User $initiator
+ * @param \BookStack\Activity\Models\Webhook $webhook
+ * @param string|\BookStack\Activity\Models\Loggable $detail
+ * @param \BookStack\Users\Models\User $initiator
* @param int $initiatedTime
*/
const WEBHOOK_CALL_BEFORE = 'webhook_call_before';
namespace BookStack\Theming;
-use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Access\SocialAuthService;
use Illuminate\Console\Application;
use Illuminate\Console\Application as Artisan;
use Symfony\Component\Console\Command\Command;
<?php
-namespace BookStack\Util;
+namespace BookStack\Translation;
use Illuminate\Http\Request;
namespace BookStack\Uploads;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Auth\Permissions\PermissionApplicator;
-use BookStack\Auth\User;
+use BookStack\App\Model;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
-use BookStack\Model;
-use BookStack\Traits\HasCreatorAndUpdater;
+use BookStack\Permissions\Models\JointPermission;
+use BookStack\Permissions\PermissionApplicator;
+use BookStack\Users\Models\HasCreatorAndUpdater;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Uploads\Controllers;
use BookStack\Entities\Models\Page;
use BookStack\Exceptions\FileUploadException;
+use BookStack\Http\Controllers\ApiController;
use BookStack\Uploads\Attachment;
use BookStack\Uploads\AttachmentService;
use Exception;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Uploads\Controllers;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Exceptions\FileUploadException;
use BookStack\Exceptions\NotFoundException;
+use BookStack\Http\Controllers\Controller;
use BookStack\Uploads\Attachment;
use BookStack\Uploads\AttachmentService;
use Exception;
<?php
-namespace BookStack\Http\Controllers\Images;
+namespace BookStack\Uploads\Controllers;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Http\Controllers\Controller;
<?php
-namespace BookStack\Http\Controllers\Images;
+namespace BookStack\Uploads\Controllers;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Http\Controllers\Controller;
<?php
-namespace BookStack\Http\Controllers\Images;
+namespace BookStack\Uploads\Controllers;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\NotFoundException;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Uploads\Controllers;
use BookStack\Entities\Models\Page;
+use BookStack\Http\Controllers\ApiController;
use BookStack\Uploads\Image;
use BookStack\Uploads\ImageRepo;
use Illuminate\Http\Request;
namespace BookStack\Uploads;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Auth\Permissions\PermissionApplicator;
+use BookStack\App\Model;
use BookStack\Entities\Models\Page;
-use BookStack\Model;
-use BookStack\Traits\HasCreatorAndUpdater;
+use BookStack\Permissions\Models\JointPermission;
+use BookStack\Permissions\PermissionApplicator;
+use BookStack\Users\Models\HasCreatorAndUpdater;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
namespace BookStack\Uploads;
-use BookStack\Auth\Permissions\PermissionApplicator;
use BookStack\Entities\Models\Page;
use BookStack\Exceptions\ImageUploadException;
+use BookStack\Permissions\PermissionApplicator;
use Exception;
use Illuminate\Database\Eloquent\Builder;
use Symfony\Component\HttpFoundation\File\UploadedFile;
namespace BookStack\Uploads;
-use BookStack\Auth\User;
use BookStack\Exceptions\HttpFetchException;
+use BookStack\Users\Models\User;
use Exception;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Users\Controllers;
-use BookStack\Auth\Permissions\PermissionsRepo;
-use BookStack\Auth\Role;
+use BookStack\Http\Controllers\ApiController;
+use BookStack\Permissions\PermissionsRepo;
+use BookStack\Users\Models\Role;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Users\Controllers;
-use BookStack\Auth\Permissions\PermissionsRepo;
-use BookStack\Auth\Queries\RolesAllPaginatedAndSorted;
-use BookStack\Auth\Role;
use BookStack\Exceptions\PermissionsException;
+use BookStack\Http\Controllers\Controller;
+use BookStack\Permissions\PermissionsRepo;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Queries\RolesAllPaginatedAndSorted;
use BookStack\Util\SimpleListOptions;
use Exception;
use Illuminate\Http\Request;
-use Illuminate\Validation\ValidationException;
class RoleController extends Controller
{
<?php
-namespace BookStack\Http\Controllers\Api;
+namespace BookStack\Users\Controllers;
-use BookStack\Auth\User;
-use BookStack\Auth\UserRepo;
use BookStack\Exceptions\UserUpdateException;
+use BookStack\Http\Controllers\ApiController;
+use BookStack\Users\Models\User;
+use BookStack\Users\UserRepo;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Users\Controllers;
-use BookStack\Auth\Access\SocialAuthService;
-use BookStack\Auth\Queries\UsersAllPaginatedAndSorted;
-use BookStack\Auth\Role;
-use BookStack\Auth\UserRepo;
+use BookStack\Access\SocialAuthService;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\UserUpdateException;
+use BookStack\Http\Controllers\Controller;
use BookStack\Uploads\ImageRepo;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Queries\UsersAllPaginatedAndSorted;
+use BookStack\Users\UserRepo;
use BookStack\Util\SimpleListOptions;
use Exception;
use Illuminate\Http\Request;
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Users\Controllers;
-use BookStack\Auth\UserRepo;
+use BookStack\Http\Controllers\Controller;
use BookStack\Settings\UserShortcutMap;
+use BookStack\Users\UserRepo;
use Illuminate\Http\Request;
class UserPreferencesController extends Controller
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Users\Controllers;
-use BookStack\Actions\ActivityQueries;
-use BookStack\Auth\Queries\UserContentCounts;
-use BookStack\Auth\Queries\UserRecentlyCreatedContent;
-use BookStack\Auth\UserRepo;
+use BookStack\Activity\ActivityQueries;
+use BookStack\Http\Controllers\Controller;
+use BookStack\Users\Queries\UserContentCounts;
+use BookStack\Users\Queries\UserRecentlyCreatedContent;
+use BookStack\Users\UserRepo;
class UserProfileController extends Controller
{
<?php
-namespace BookStack\Http\Controllers;
+namespace BookStack\Users\Controllers;
-use BookStack\Auth\User;
+use BookStack\Http\Controllers\Controller;
+use BookStack\Users\Models\User;
use Illuminate\Http\Request;
class UserSearchController extends Controller
<?php
-namespace BookStack\Traits;
+namespace BookStack\Users\Models;
-use BookStack\Auth\User;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
<?php
-namespace BookStack\Traits;
+namespace BookStack\Users\Models;
-use BookStack\Auth\User;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
<?php
-namespace BookStack\Auth;
+namespace BookStack\Users\Models;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Permissions\JointPermission;
-use BookStack\Auth\Permissions\RolePermission;
-use BookStack\Interfaces\Loggable;
-use BookStack\Model;
+use BookStack\Activity\Models\Loggable;
+use BookStack\App\Model;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Permissions\Models\JointPermission;
+use BookStack\Permissions\Models\RolePermission;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
<?php
-namespace BookStack\Auth;
+namespace BookStack\Users\Models;
-use BookStack\Actions\Favourite;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Access\SocialAccount;
+use BookStack\Activity\Models\Favourite;
+use BookStack\Activity\Models\Loggable;
use BookStack\Api\ApiToken;
-use BookStack\Auth\Access\Mfa\MfaValue;
+use BookStack\App\Model;
+use BookStack\App\Sluggable;
use BookStack\Entities\Tools\SlugGenerator;
-use BookStack\Interfaces\Loggable;
-use BookStack\Interfaces\Sluggable;
-use BookStack\Model;
use BookStack\Notifications\ResetPassword;
use BookStack\Uploads\Image;
use Carbon\Carbon;
<?php
-namespace BookStack\Auth\Queries;
+namespace BookStack\Users\Queries;
-use BookStack\Auth\Role;
+use BookStack\Users\Models\Role;
use BookStack\Util\SimpleListOptions;
use Illuminate\Pagination\LengthAwarePaginator;
<?php
-namespace BookStack\Auth\Queries;
+namespace BookStack\Users\Queries;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
+use BookStack\Users\Models\User;
/**
* Get asset created counts for the given user.
<?php
-namespace BookStack\Auth\Queries;
+namespace BookStack\Users\Queries;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
<?php
-namespace BookStack\Auth\Queries;
+namespace BookStack\Users\Queries;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use BookStack\Util\SimpleListOptions;
use Illuminate\Pagination\LengthAwarePaginator;
<?php
-namespace BookStack\Auth;
+namespace BookStack\Users;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\UserInviteService;
+use BookStack\Access\UserInviteService;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\EntityProvider;
use BookStack\Exceptions\NotifyException;
use BookStack\Exceptions\UserUpdateException;
use BookStack\Facades\Activity;
use BookStack\Uploads\UserAvatars;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Exception;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
|
*/
-$app = new BookStack\Application(
+$app = new \BookStack\App\Application(
dirname(__DIR__)
);
"Database\\Seeders\\": "database/seeders/"
},
"files": [
- "app/helpers.php"
+ "app/App/helpers.php"
]
},
"autoload-dev": {
*
* @var string
*/
- protected $model = \BookStack\Actions\Comment::class;
+ protected $model = \BookStack\Activity\Models\Comment::class;
/**
* Define the model's default state.
*
* @var string
*/
- protected $model = \BookStack\Actions\Tag::class;
+ protected $model = \BookStack\Activity\Models\Tag::class;
/**
* Define the model's default state.
namespace Database\Factories\Actions;
-use BookStack\Actions\Webhook;
+use BookStack\Activity\Models\Webhook;
use Illuminate\Database\Eloquent\Factories\Factory;
class WebhookFactory extends Factory
namespace Database\Factories\Actions;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\Webhook;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Webhook;
use Illuminate\Database\Eloquent\Factories\Factory;
class WebhookTrackedEventFactory extends Factory
*
* @var string
*/
- protected $model = \BookStack\Auth\Role::class;
+ protected $model = \BookStack\Users\Models\Role::class;
/**
* Define the model's default state.
namespace Database\Factories\Auth;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
namespace Database\Factories\Uploads;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Page;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
<?php
-use BookStack\Auth\Permissions\JointPermissionBuilder;
+use BookStack\Permissions\JointPermissionBuilder;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
namespace Database\Seeders;
use BookStack\Api\ApiToken;
-use BookStack\Auth\Permissions\JointPermissionBuilder;
-use BookStack\Auth\Permissions\RolePermission;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
+use BookStack\Permissions\JointPermissionBuilder;
+use BookStack\Permissions\Models\RolePermission;
use BookStack\Search\SearchIndex;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
namespace Database\Seeders;
-use BookStack\Auth\Permissions\JointPermissionBuilder;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
+use BookStack\Permissions\JointPermissionBuilder;
use BookStack\Search\SearchIndex;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Str;
-@push('body-class', e((new \BookStack\Actions\TagClassGenerator($entity->tags->all()))->generateAsString() . ' '))
\ No newline at end of file
+@push('body-class', e((new \BookStack\Activity\Tools\TagClassGenerator($entity->tags->all()))->generateAsString() . ' '))
\ No newline at end of file
<?php
- /** @var \BookStack\Auth\Permissions\PermissionFormData $data */
+/** @var \BookStack\Permissions\PermissionFormData $data */
?>
<form component="entity-permissions"
option:entity-permissions:entity-type="{{ $model->getType() }}"
<div class="flex-container-row justify-flex-end mb-xl">
<div class="flex-container-row items-center gap-m">
- <label for="role_select" class="m-none p-none"><span class="bold">{{ trans('entities.permissions_role_override') }}</span></label>
+ <label for="role_select" class="m-none p-none"><span
+ class="bold">{{ trans('entities.permissions_role_override') }}</span></label>
<select name="role_select" id="role_select" refs="entity-permissions@role-select">
<option value="">{{ trans('common.select') }}</option>
@foreach($data->rolesNotAssigned() as $role)
@extends('layouts.simple')
@section('body')
-<div class="container">
-
- @include('settings.parts.navbar', ['selected' => 'audit'])
-
- <div class="card content-wrap auto-height">
- <h1 class="list-heading">{{ trans('settings.audit') }}</h1>
- <p class="text-muted">{{ trans('settings.audit_desc') }}</p>
-
- <form action="{{ url('/settings/audit') }}" method="get" class="flex-container-row wrap justify-flex-start gap-x-m gap-y-xs">
-
- @foreach(request()->only(['order', 'sort']) as $key => $val)
- <input type="hidden" name="{{ $key }}" value="{{ $val }}">
- @endforeach
-
- <div component="dropdown" class="list-sort-type dropdown-container">
- <label for="">{{ trans('settings.audit_event_filter') }}</label>
- <button refs="dropdown@toggle"
- type="button"
- aria-haspopup="true"
- aria-expanded="false"
- aria-label="{{ trans('common.sort_options') }}"
- class="input-base text-left">{{ $filters['event'] ?: trans('settings.audit_event_filter_no_filter') }}</button>
- <ul refs="dropdown@menu" class="dropdown-menu">
- <li @if($filters['event'] === '') class="active" @endif><a href="{{ sortUrl('/settings/audit', array_filter(request()->except('page')), ['event' => '']) }}" class="text-item">{{ trans('settings.audit_event_filter_no_filter') }}</a></li>
- @foreach($activityTypes as $type)
- <li @if($type === $filters['event']) class="active" @endif><a href="{{ sortUrl('/settings/audit', array_filter(request()->except('page')), ['event' => $type]) }}" class="text-item">{{ $type }}</a></li>
- @endforeach
- </ul>
- </div>
-
- @if(!empty($filters['event']))
- <input type="hidden" name="event" value="{{ $filters['event'] }}">
- @endif
-
- @foreach(['date_from', 'date_to'] as $filterKey)
- <div class=>
- <label for="audit_filter_{{ $filterKey }}">{{ trans('settings.audit_' . $filterKey) }}</label>
- <input id="audit_filter_{{ $filterKey }}"
- component="submit-on-change"
- type="date"
- name="{{ $filterKey }}"
- value="{{ $filters[$filterKey] ?? '' }}">
+ <div class="container">
+
+ @include('settings.parts.navbar', ['selected' => 'audit'])
+
+ <div class="card content-wrap auto-height">
+ <h1 class="list-heading">{{ trans('settings.audit') }}</h1>
+ <p class="text-muted">{{ trans('settings.audit_desc') }}</p>
+
+ <form action="{{ url('/settings/audit') }}" method="get"
+ class="flex-container-row wrap justify-flex-start gap-x-m gap-y-xs">
+
+ @foreach(request()->only(['order', 'sort']) as $key => $val)
+ <input type="hidden" name="{{ $key }}" value="{{ $val }}">
+ @endforeach
+
+ <div component="dropdown" class="list-sort-type dropdown-container">
+ <label for="">{{ trans('settings.audit_event_filter') }}</label>
+ <button refs="dropdown@toggle"
+ type="button"
+ aria-haspopup="true"
+ aria-expanded="false"
+ aria-label="{{ trans('common.sort_options') }}"
+ class="input-base text-left">{{ $filters['event'] ?: trans('settings.audit_event_filter_no_filter') }}</button>
+ <ul refs="dropdown@menu" class="dropdown-menu">
+ <li @if($filters['event'] === '') class="active" @endif><a
+ href="{{ sortUrl('/settings/audit', array_filter(request()->except('page')), ['event' => '']) }}"
+ class="text-item">{{ trans('settings.audit_event_filter_no_filter') }}</a></li>
+ @foreach($activityTypes as $type)
+ <li @if($type === $filters['event']) class="active" @endif><a
+ href="{{ sortUrl('/settings/audit', array_filter(request()->except('page')), ['event' => $type]) }}"
+ class="text-item">{{ $type }}</a></li>
+ @endforeach
+ </ul>
</div>
- @endforeach
- <div class="form-group"
- component="submit-on-change"
- option:submit-on-change:filter='[name="user"]'>
- <label for="owner">{{ trans('settings.audit_table_user') }}</label>
- @include('form.user-select', ['user' => $filters['user'] ? \BookStack\Auth\User::query()->find($filters['user']) : null, 'name' => 'user'])
- </div>
+ @if(!empty($filters['event']))
+ <input type="hidden" name="event" value="{{ $filters['event'] }}">
+ @endif
+
+ @foreach(['date_from', 'date_to'] as $filterKey)
+ <div class=>
+ <label for="audit_filter_{{ $filterKey }}">{{ trans('settings.audit_' . $filterKey) }}</label>
+ <input id="audit_filter_{{ $filterKey }}"
+ component="submit-on-change"
+ type="date"
+ name="{{ $filterKey }}"
+ value="{{ $filters[$filterKey] ?? '' }}">
+ </div>
+ @endforeach
+ <div class="form-group"
+ component="submit-on-change"
+ option:submit-on-change:filter='[name="user"]'>
+ <label for="owner">{{ trans('settings.audit_table_user') }}</label>
+ @include('form.user-select', ['user' => $filters['user'] ? \BookStack\Users\Models\User::query()->find($filters['user']) : null, 'name' => 'user'])
+ </div>
- <div class="form-group">
- <label for="ip">{{ trans('settings.audit_table_ip') }}</label>
- @include('form.text', ['name' => 'ip', 'model' => (object) $filters])
- <input type="submit" style="display: none">
- </div>
- </form>
- <hr class="mt-m mb-s">
+ <div class="form-group">
+ <label for="ip">{{ trans('settings.audit_table_ip') }}</label>
+ @include('form.text', ['name' => 'ip', 'model' => (object) $filters])
+ <input type="submit" style="display: none">
+ </div>
+ </form>
- <div class="flex-container-row justify-space-between items-center wrap">
- <div class="flex-2 min-width-xl">{{ $activities->links() }}</div>
- <div class="flex-none min-width-m py-m">
- @include('common.sort', array_merge($listOptions->getSortControlData(), ['useQuery' => true]))
- </div>
- </div>
+ <hr class="mt-m mb-s">
- <div class="item-list">
- <div class="item-list-row flex-container-row items-center bold hide-under-m">
- <div class="flex-2 px-m py-xs flex-container-row items-center">{{ trans('settings.audit_table_user') }}</div>
- <div class="flex-2 px-m py-xs">{{ trans('settings.audit_table_event') }}</div>
- <div class="flex-3 px-m py-xs">{{ trans('settings.audit_table_related') }}</div>
- <div class="flex-container-row flex-3">
- <div class="flex px-m py-xs">{{ trans('settings.audit_table_ip') }}</div>
- <div class="flex-2 px-m py-xs text-right">{{ trans('settings.audit_table_date') }}</div>
+ <div class="flex-container-row justify-space-between items-center wrap">
+ <div class="flex-2 min-width-xl">{{ $activities->links() }}</div>
+ <div class="flex-none min-width-m py-m">
+ @include('common.sort', array_merge($listOptions->getSortControlData(), ['useQuery' => true]))
</div>
</div>
- @foreach($activities as $activity)
- <div class="item-list-row flex-container-row items-center wrap py-xxs">
- <div class="flex-2 px-m py-xxs flex-container-row items-center min-width-m">
- @include('settings.parts.table-user', ['user' => $activity->user, 'user_id' => $activity->user_id])
- </div>
- <div class="flex-2 px-m py-xxs min-width-m"><strong class="mr-xs hide-over-m">{{ trans('settings.audit_table_event') }}:</strong> {{ $activity->type }}</div>
- <div class="flex-3 px-m py-xxs min-width-l">
- @if($activity->entity)
- <a href="{{ $activity->entity->getUrl() }}" class="flex-container-row items-center">
- <span role="presentation" class="icon flex-none text-{{$activity->entity->getType()}}">@icon($activity->entity->getType())</span>
- <div class="flex text-{{ $activity->entity->getType() }}">
- {{ $activity->entity->name }}
- </div>
- </a>
- @elseif($activity->detail && $activity->isForEntity())
- <div>
- {{ trans('settings.audit_deleted_item') }} <br>
- {{ trans('settings.audit_deleted_item_name', ['name' => $activity->detail]) }}
- </div>
- @elseif($activity->detail)
- <div>{{ $activity->detail }}</div>
- @endif
- </div>
+
+ <div class="item-list">
+ <div class="item-list-row flex-container-row items-center bold hide-under-m">
+ <div class="flex-2 px-m py-xs flex-container-row items-center">{{ trans('settings.audit_table_user') }}</div>
+ <div class="flex-2 px-m py-xs">{{ trans('settings.audit_table_event') }}</div>
+ <div class="flex-3 px-m py-xs">{{ trans('settings.audit_table_related') }}</div>
<div class="flex-container-row flex-3">
- <div class="flex px-m py-xxs min-width-xs"><strong class="mr-xs hide-over-m">{{ trans('settings.audit_table_ip') }}:<br></strong> {{ $activity->ip }}</div>
- <div class="flex-2 px-m py-xxs text-m-right min-width-xs"><strong class="mr-xs hide-over-m">{{ trans('settings.audit_table_date') }}:<br></strong> {{ $activity->created_at }}</div>
+ <div class="flex px-m py-xs">{{ trans('settings.audit_table_ip') }}</div>
+ <div class="flex-2 px-m py-xs text-right">{{ trans('settings.audit_table_date') }}</div>
</div>
</div>
- @endforeach
- </div>
+ @foreach($activities as $activity)
+ <div class="item-list-row flex-container-row items-center wrap py-xxs">
+ <div class="flex-2 px-m py-xxs flex-container-row items-center min-width-m">
+ @include('settings.parts.table-user', ['user' => $activity->user, 'user_id' => $activity->user_id])
+ </div>
+ <div class="flex-2 px-m py-xxs min-width-m"><strong
+ class="mr-xs hide-over-m">{{ trans('settings.audit_table_event') }}
+ :</strong> {{ $activity->type }}</div>
+ <div class="flex-3 px-m py-xxs min-width-l">
+ @if($activity->entity)
+ <a href="{{ $activity->entity->getUrl() }}" class="flex-container-row items-center">
+ <span role="presentation"
+ class="icon flex-none text-{{$activity->entity->getType()}}">@icon($activity->entity->getType())</span>
+ <div class="flex text-{{ $activity->entity->getType() }}">
+ {{ $activity->entity->name }}
+ </div>
+ </a>
+ @elseif($activity->detail && $activity->isForEntity())
+ <div>
+ {{ trans('settings.audit_deleted_item') }} <br>
+ {{ trans('settings.audit_deleted_item_name', ['name' => $activity->detail]) }}
+ </div>
+ @elseif($activity->detail)
+ <div>{{ $activity->detail }}</div>
+ @endif
+ </div>
+ <div class="flex-container-row flex-3">
+ <div class="flex px-m py-xxs min-width-xs"><strong
+ class="mr-xs hide-over-m">{{ trans('settings.audit_table_ip') }}
+ :<br></strong> {{ $activity->ip }}</div>
+ <div class="flex-2 px-m py-xxs text-m-right min-width-xs"><strong
+ class="mr-xs hide-over-m">{{ trans('settings.audit_table_date') }}
+ :<br></strong> {{ $activity->created_at }}</div>
+ </div>
+ </div>
+ @endforeach
+ </div>
- <div class="py-m">
- {{ $activities->links() }}
+ <div class="py-m">
+ {{ $activities->links() }}
+ </div>
</div>
- </div>
-</div>
+ </div>
@stop
@endif
<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>
- <option value="0" @if(intval(setting('registration-role', '0')) === 0) selected @endif>-- {{ trans('common.none') }} --</option>
- @foreach(\BookStack\Auth\Role::all() as $role)
+ <select id="setting-registration-role" name="setting-registration-role"
+ @if($errors->has('setting-registration-role')) class="neg" @endif>
+ <option value="0" @if(intval(setting('registration-role', '0')) === 0) selected @endif>
+ -- {{ trans('common.none') }} --
+ </option>
+ @foreach(\BookStack\Users\Models\Role::all() as $role)
<option value="{{$role->id}}"
data-system-role-name="{{ $role->system_name ?? '' }}"
@if(intval(setting('registration-role', '0')) === $role->id) selected @endif
<div class="grid half gap-xl">
<div>
- <label for="setting-registration-restrict" class="setting-list-label">{{ trans('settings.reg_confirm_restrict_domain') }}</label>
+ <label for="setting-registration-restrict"
+ class="setting-list-label">{{ trans('settings.reg_confirm_restrict_domain') }}</label>
<p class="small">{!! trans('settings.reg_confirm_restrict_domain_desc') !!}</p>
</div>
<div class="pt-xs">
- <input type="text" id="setting-registration-restrict" name="setting-registration-restrict" placeholder="{{ trans('settings.reg_confirm_restrict_domain_placeholder') }}" value="{{ setting('registration-restrict', '') }}">
+ <input type="text" id="setting-registration-restrict" name="setting-registration-restrict"
+ placeholder="{{ trans('settings.reg_confirm_restrict_domain_placeholder') }}"
+ value="{{ setting('registration-restrict', '') }}">
</div>
</div>
<hr class="my-s">
<div class="dual-column-content toggle-switch-list">
- @foreach(\BookStack\Actions\ActivityType::all() as $activityType)
+ @foreach(\BookStack\Activity\ActivityType::all() as $activityType)
<div>
@include('form.custom-checkbox', [
'name' => 'events[]',
@if($nameFilter)
<div class="my-m">
<strong class="mr-xs">{{ trans('common.filter_active') }}</strong>
- @include('entities.tag', ['tag' => new \BookStack\Actions\Tag(['name' => $nameFilter])])
+ @include('entities.tag', ['tag' => new \BookStack\Activity\Models\Tag(['name' => $nameFilter])])
<form method="get" action="{{ url("/tags") }}" class="inline block">
@include('form.request-query-inputs', ['params' => ['search']])
<button class="text-button text-warn">@icon('close'){{ trans('common.filter_clear') }}</button>
* Controllers are all within app/Http/Controllers/Api.
*/
-use BookStack\Http\Controllers\Api\ApiDocsController;
-use BookStack\Http\Controllers\Api\AttachmentApiController;
-use BookStack\Http\Controllers\Api\BookApiController;
-use BookStack\Http\Controllers\Api\BookExportApiController;
-use BookStack\Http\Controllers\Api\BookshelfApiController;
-use BookStack\Http\Controllers\Api\ChapterApiController;
-use BookStack\Http\Controllers\Api\ChapterExportApiController;
-use BookStack\Http\Controllers\Api\ContentPermissionApiController;
-use BookStack\Http\Controllers\Api\ImageGalleryApiController;
-use BookStack\Http\Controllers\Api\PageApiController;
-use BookStack\Http\Controllers\Api\PageExportApiController;
-use BookStack\Http\Controllers\Api\RecycleBinApiController;
-use BookStack\Http\Controllers\Api\RoleApiController;
-use BookStack\Http\Controllers\Api\SearchApiController;
-use BookStack\Http\Controllers\Api\UserApiController;
+use BookStack\Api\ApiDocsController;
+use BookStack\Entities\Controllers\BookApiController;
+use BookStack\Entities\Controllers\BookExportApiController;
+use BookStack\Entities\Controllers\BookshelfApiController;
+use BookStack\Entities\Controllers\ChapterApiController;
+use BookStack\Entities\Controllers\ChapterExportApiController;
+use BookStack\Entities\Controllers\PageApiController;
+use BookStack\Entities\Controllers\PageExportApiController;
+use BookStack\Entities\Controllers\RecycleBinApiController;
+use BookStack\Permissions\ContentPermissionApiController;
+use BookStack\Search\SearchApiController;
+use BookStack\Uploads\Controllers\AttachmentApiController;
+use BookStack\Uploads\Controllers\ImageGalleryApiController;
+use BookStack\Users\Controllers\RoleApiController;
+use BookStack\Users\Controllers\UserApiController;
use Illuminate\Support\Facades\Route;
Route::get('docs.json', [ApiDocsController::class, 'json']);
<?php
-use BookStack\Http\Controllers\Api;
-use BookStack\Http\Controllers\AttachmentController;
-use BookStack\Http\Controllers\AuditLogController;
+use BookStack\Activity\Controllers\AuditLogController;
+use BookStack\Activity\Controllers\CommentController;
+use BookStack\Activity\Controllers\FavouriteController;
+use BookStack\Activity\Controllers\TagController;
+use BookStack\Activity\Controllers\WebhookController;
+use BookStack\Api\UserApiTokenController;
+use BookStack\Entities\Controllers\BookController;
+use BookStack\Entities\Controllers\BookExportController;
+use BookStack\Entities\Controllers\BookshelfController;
+use BookStack\Entities\Controllers\BookSortController;
+use BookStack\Entities\Controllers\ChapterController;
+use BookStack\Entities\Controllers\ChapterExportController;
+use BookStack\Entities\Controllers\PageController;
+use BookStack\Entities\Controllers\PageExportController;
+use BookStack\Entities\Controllers\PageRevisionController;
+use BookStack\Entities\Controllers\PageTemplateController;
+use BookStack\Entities\Controllers\RecycleBinController;
use BookStack\Http\Controllers\Auth;
-use BookStack\Http\Controllers\BookController;
-use BookStack\Http\Controllers\BookExportController;
-use BookStack\Http\Controllers\BookshelfController;
-use BookStack\Http\Controllers\BookSortController;
-use BookStack\Http\Controllers\ChapterController;
-use BookStack\Http\Controllers\ChapterExportController;
-use BookStack\Http\Controllers\CommentController;
-use BookStack\Http\Controllers\FavouriteController;
use BookStack\Http\Controllers\HomeController;
use BookStack\Http\Controllers\Images;
-use BookStack\Http\Controllers\MaintenanceController;
-use BookStack\Http\Controllers\PageController;
-use BookStack\Http\Controllers\PageExportController;
-use BookStack\Http\Controllers\PageRevisionController;
-use BookStack\Http\Controllers\PageTemplateController;
-use BookStack\Http\Controllers\PermissionsController;
-use BookStack\Http\Controllers\RecycleBinController;
-use BookStack\Http\Controllers\ReferenceController;
-use BookStack\Http\Controllers\RoleController;
-use BookStack\Http\Controllers\SearchController;
-use BookStack\Http\Controllers\SettingController;
-use BookStack\Http\Controllers\StatusController;
-use BookStack\Http\Controllers\TagController;
-use BookStack\Http\Controllers\UserApiTokenController;
-use BookStack\Http\Controllers\UserController;
-use BookStack\Http\Controllers\UserPreferencesController;
-use BookStack\Http\Controllers\UserProfileController;
-use BookStack\Http\Controllers\UserSearchController;
-use BookStack\Http\Controllers\WebhookController;
use BookStack\Http\Middleware\VerifyCsrfToken;
+use BookStack\Permissions\PermissionsController;
+use BookStack\References\ReferenceController;
+use BookStack\Search\SearchController;
+use BookStack\Settings\MaintenanceController;
+use BookStack\Settings\SettingController;
+use BookStack\Settings\StatusController;
+use BookStack\Uploads\Controllers\AttachmentController;
+use BookStack\Users\Controllers\RoleController;
+use BookStack\Users\Controllers\UserController;
+use BookStack\Users\Controllers\UserPreferencesController;
+use BookStack\Users\Controllers\UserProfileController;
+use BookStack\Users\Controllers\UserSearchController;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\Support\Facades\Route;
use Illuminate\View\Middleware\ShareErrorsFromSession;
Route::middleware('auth')->group(function () {
// Secure images routing
- Route::get('/uploads/images/{path}', [Images\ImageController::class, 'showImage'])
+ Route::get('/uploads/images/{path}', [\BookStack\Uploads\Controllers\ImageController::class, 'showImage'])
->where('path', '.*$');
// API docs routes
Route::redirect('/api', '/api/docs');
- Route::get('/api/docs', [Api\ApiDocsController::class, 'display']);
+ Route::get('/api/docs', [\BookStack\Api\ApiDocsController::class, 'display']);
Route::get('/pages/recently-updated', [PageController::class, 'showRecentlyUpdated']);
Route::get('/user/{slug}', [UserProfileController::class, 'show']);
// Image routes
- Route::get('/images/gallery', [Images\GalleryImageController::class, 'list']);
- Route::post('/images/gallery', [Images\GalleryImageController::class, 'create']);
- Route::get('/images/drawio', [Images\DrawioImageController::class, 'list']);
- Route::get('/images/drawio/base64/{id}', [Images\DrawioImageController::class, 'getAsBase64']);
- Route::post('/images/drawio', [Images\DrawioImageController::class, 'create']);
- Route::get('/images/edit/{id}', [Images\ImageController::class, 'edit']);
- Route::put('/images/{id}', [Images\ImageController::class, 'update']);
- Route::delete('/images/{id}', [Images\ImageController::class, 'destroy']);
+ Route::get('/images/gallery', [\BookStack\Uploads\Controllers\GalleryImageController::class, 'list']);
+ Route::post('/images/gallery', [\BookStack\Uploads\Controllers\GalleryImageController::class, 'create']);
+ Route::get('/images/drawio', [\BookStack\Uploads\Controllers\DrawioImageController::class, 'list']);
+ Route::get('/images/drawio/base64/{id}', [\BookStack\Uploads\Controllers\DrawioImageController::class, 'getAsBase64']);
+ Route::post('/images/drawio', [\BookStack\Uploads\Controllers\DrawioImageController::class, 'create']);
+ Route::get('/images/edit/{id}', [\BookStack\Uploads\Controllers\ImageController::class, 'edit']);
+ Route::put('/images/{id}', [\BookStack\Uploads\Controllers\ImageController::class, 'update']);
+ Route::delete('/images/{id}', [\BookStack\Uploads\Controllers\ImageController::class, 'destroy']);
// Attachments routes
Route::get('/attachments/{id}', [AttachmentController::class, 'get']);
// MFA routes
Route::middleware('mfa-setup')->group(function () {
- Route::get('/mfa/setup', [Auth\MfaController::class, 'setup']);
- Route::get('/mfa/totp/generate', [Auth\MfaTotpController::class, 'generate']);
- Route::post('/mfa/totp/confirm', [Auth\MfaTotpController::class, 'confirm']);
- Route::get('/mfa/backup_codes/generate', [Auth\MfaBackupCodesController::class, 'generate']);
- Route::post('/mfa/backup_codes/confirm', [Auth\MfaBackupCodesController::class, 'confirm']);
+ Route::get('/mfa/setup', [\BookStack\Access\Controllers\MfaController::class, 'setup']);
+ Route::get('/mfa/totp/generate', [\BookStack\Access\Controllers\MfaTotpController::class, 'generate']);
+ Route::post('/mfa/totp/confirm', [\BookStack\Access\Controllers\MfaTotpController::class, 'confirm']);
+ Route::get('/mfa/backup_codes/generate', [\BookStack\Access\Controllers\MfaBackupCodesController::class, 'generate']);
+ Route::post('/mfa/backup_codes/confirm', [\BookStack\Access\Controllers\MfaBackupCodesController::class, 'confirm']);
});
Route::middleware('guest')->group(function () {
- Route::get('/mfa/verify', [Auth\MfaController::class, 'verify']);
- Route::post('/mfa/totp/verify', [Auth\MfaTotpController::class, 'verify']);
- Route::post('/mfa/backup_codes/verify', [Auth\MfaBackupCodesController::class, 'verify']);
+ Route::get('/mfa/verify', [\BookStack\Access\Controllers\MfaController::class, 'verify']);
+ Route::post('/mfa/totp/verify', [\BookStack\Access\Controllers\MfaTotpController::class, 'verify']);
+ Route::post('/mfa/backup_codes/verify', [\BookStack\Access\Controllers\MfaBackupCodesController::class, 'verify']);
});
-Route::delete('/mfa/{method}/remove', [Auth\MfaController::class, 'remove'])->middleware('auth');
+Route::delete('/mfa/{method}/remove', [\BookStack\Access\Controllers\MfaController::class, 'remove'])->middleware('auth');
// Social auth routes
-Route::get('/login/service/{socialDriver}', [Auth\SocialController::class, 'login']);
-Route::get('/login/service/{socialDriver}/callback', [Auth\SocialController::class, 'callback']);
-Route::post('/login/service/{socialDriver}/detach', [Auth\SocialController::class, 'detach'])->middleware('auth');
-Route::get('/register/service/{socialDriver}', [Auth\SocialController::class, 'register']);
+Route::get('/login/service/{socialDriver}', [\BookStack\Access\Controllers\SocialController::class, 'login']);
+Route::get('/login/service/{socialDriver}/callback', [\BookStack\Access\Controllers\SocialController::class, 'callback']);
+Route::post('/login/service/{socialDriver}/detach', [\BookStack\Access\Controllers\SocialController::class, 'detach'])->middleware('auth');
+Route::get('/register/service/{socialDriver}', [\BookStack\Access\Controllers\SocialController::class, 'register']);
// Login/Logout routes
-Route::get('/login', [Auth\LoginController::class, 'getLogin']);
-Route::post('/login', [Auth\LoginController::class, 'login']);
-Route::post('/logout', [Auth\LoginController::class, 'logout']);
-Route::get('/register', [Auth\RegisterController::class, 'getRegister']);
-Route::get('/register/confirm', [Auth\ConfirmEmailController::class, 'show']);
-Route::get('/register/confirm/awaiting', [Auth\ConfirmEmailController::class, 'showAwaiting']);
-Route::post('/register/confirm/resend', [Auth\ConfirmEmailController::class, 'resend']);
-Route::get('/register/confirm/{token}', [Auth\ConfirmEmailController::class, 'showAcceptForm']);
-Route::post('/register/confirm/accept', [Auth\ConfirmEmailController::class, 'confirm']);
-Route::post('/register', [Auth\RegisterController::class, 'postRegister']);
+Route::get('/login', [\BookStack\Access\Controllers\LoginController::class, 'getLogin']);
+Route::post('/login', [\BookStack\Access\Controllers\LoginController::class, 'login']);
+Route::post('/logout', [\BookStack\Access\Controllers\LoginController::class, 'logout']);
+Route::get('/register', [\BookStack\Access\Controllers\RegisterController::class, 'getRegister']);
+Route::get('/register/confirm', [\BookStack\Access\Controllers\ConfirmEmailController::class, 'show']);
+Route::get('/register/confirm/awaiting', [\BookStack\Access\Controllers\ConfirmEmailController::class, 'showAwaiting']);
+Route::post('/register/confirm/resend', [\BookStack\Access\Controllers\ConfirmEmailController::class, 'resend']);
+Route::get('/register/confirm/{token}', [\BookStack\Access\Controllers\ConfirmEmailController::class, 'showAcceptForm']);
+Route::post('/register/confirm/accept', [\BookStack\Access\Controllers\ConfirmEmailController::class, 'confirm']);
+Route::post('/register', [\BookStack\Access\Controllers\RegisterController::class, 'postRegister']);
// SAML routes
-Route::post('/saml2/login', [Auth\Saml2Controller::class, 'login']);
-Route::post('/saml2/logout', [Auth\Saml2Controller::class, 'logout']);
-Route::get('/saml2/metadata', [Auth\Saml2Controller::class, 'metadata']);
-Route::get('/saml2/sls', [Auth\Saml2Controller::class, 'sls']);
-Route::post('/saml2/acs', [Auth\Saml2Controller::class, 'startAcs'])->withoutMiddleware([
+Route::post('/saml2/login', [\BookStack\Access\Controllers\Saml2Controller::class, 'login']);
+Route::post('/saml2/logout', [\BookStack\Access\Controllers\Saml2Controller::class, 'logout']);
+Route::get('/saml2/metadata', [\BookStack\Access\Controllers\Saml2Controller::class, 'metadata']);
+Route::get('/saml2/sls', [\BookStack\Access\Controllers\Saml2Controller::class, 'sls']);
+Route::post('/saml2/acs', [\BookStack\Access\Controllers\Saml2Controller::class, 'startAcs'])->withoutMiddleware([
StartSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
]);
-Route::get('/saml2/acs', [Auth\Saml2Controller::class, 'processAcs']);
+Route::get('/saml2/acs', [\BookStack\Access\Controllers\Saml2Controller::class, 'processAcs']);
// OIDC routes
-Route::post('/oidc/login', [Auth\OidcController::class, 'login']);
-Route::get('/oidc/callback', [Auth\OidcController::class, 'callback']);
+Route::post('/oidc/login', [\BookStack\Access\Controllers\OidcController::class, 'login']);
+Route::get('/oidc/callback', [\BookStack\Access\Controllers\OidcController::class, 'callback']);
// User invitation routes
-Route::get('/register/invite/{token}', [Auth\UserInviteController::class, 'showSetPassword']);
-Route::post('/register/invite/{token}', [Auth\UserInviteController::class, 'setPassword']);
+Route::get('/register/invite/{token}', [\BookStack\Access\Controllers\UserInviteController::class, 'showSetPassword']);
+Route::post('/register/invite/{token}', [\BookStack\Access\Controllers\UserInviteController::class, 'setPassword']);
// Password reset link request routes
-Route::get('/password/email', [Auth\ForgotPasswordController::class, 'showLinkRequestForm']);
-Route::post('/password/email', [Auth\ForgotPasswordController::class, 'sendResetLinkEmail']);
+Route::get('/password/email', [\BookStack\Access\Controllers\ForgotPasswordController::class, 'showLinkRequestForm']);
+Route::post('/password/email', [\BookStack\Access\Controllers\ForgotPasswordController::class, 'sendResetLinkEmail']);
// Password reset routes
-Route::get('/password/reset/{token}', [Auth\ResetPasswordController::class, 'showResetForm']);
-Route::post('/password/reset', [Auth\ResetPasswordController::class, 'reset']);
+Route::get('/password/reset/{token}', [\BookStack\Access\Controllers\ResetPasswordController::class, 'showResetForm']);
+Route::post('/password/reset', [\BookStack\Access\Controllers\ResetPasswordController::class, 'reset']);
// Metadata routes
Route::view('/help/wysiwyg', 'help.wysiwyg');
namespace Tests\Actions;
-use BookStack\Actions\Activity;
-use BookStack\Actions\ActivityLogger;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\UserRepo;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Activity;
+use BookStack\Activity\Tools\ActivityLogger;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\TrashCan;
+use BookStack\Users\UserRepo;
use Carbon\Carbon;
use Tests\TestCase;
namespace Tests\Actions;
-use BookStack\Actions\ActivityLogger;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\DispatchWebhookJob;
-use BookStack\Actions\Webhook;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\DispatchWebhookJob;
+use BookStack\Activity\Models\Webhook;
+use BookStack\Activity\Tools\ActivityLogger;
+use BookStack\Users\Models\User;
use Illuminate\Http\Client\Request;
use Illuminate\Support\Facades\Bus;
use Illuminate\Support\Facades\Http;
namespace Tests\Actions;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\Webhook;
-use BookStack\Actions\WebhookFormatter;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Webhook;
+use BookStack\Activity\Tools\WebhookFormatter;
use Illuminate\Support\Arr;
use Tests\TestCase;
namespace Tests\Actions;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\Webhook;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Webhook;
use Tests\TestCase;
class WebhookManagementTest extends TestCase
namespace Tests\Api;
-use BookStack\Auth\Permissions\RolePermission;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Permissions\Models\RolePermission;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Carbon\Carbon;
use Tests\TestCase;
namespace Tests\Api;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class RolesApiTest extends TestCase
namespace Tests\Api;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
trait TestsApi
{
namespace Tests\Api;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Entity;
use BookStack\Notifications\UserInvite;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Auth\Access\Mfa\MfaSession;
+use BookStack\Access\Mfa\MfaSession;
use Illuminate\Testing\TestResponse;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Auth\Access\GroupSyncService;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Access\GroupSyncService;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class GroupSyncServiceTest extends TestCase
namespace Tests\Auth;
-use BookStack\Auth\Access\Ldap;
-use BookStack\Auth\Access\LdapService;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Access\Ldap;
+use BookStack\Access\LdapService;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Testing\TestResponse;
use Mockery\MockInterface;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\Mfa\MfaValue;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Activity\ActivityType;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use PragmaRX\Google2FA\Google2FA;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Auth\Access\LoginService;
-use BookStack\Auth\Access\Mfa\MfaValue;
-use BookStack\Auth\Access\Mfa\TotpService;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Access\LoginService;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Access\Mfa\TotpService;
use BookStack\Exceptions\StoppedAuthenticationException;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Hash;
use PragmaRX\Google2FA\Google2FA;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\Response;
use Illuminate\Testing\TestResponse;
namespace Tests\Auth;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
use BookStack\Notifications\ConfirmEmail;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Notification;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Auth\User;
use BookStack\Notifications\ResetPassword;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Notification;
use Tests\TestCase;
namespace Tests\Auth;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class Saml2Test extends TestCase
namespace Tests\Auth;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\SocialAccount;
-use BookStack\Auth\User;
+use BookStack\Access\SocialAccount;
+use BookStack\Activity\ActivityType;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\DB;
use Laravel\Socialite\Contracts\Factory;
use Laravel\Socialite\Contracts\Provider;
namespace Tests\Auth;
-use BookStack\Auth\Access\UserInviteService;
-use BookStack\Auth\User;
+use BookStack\Access\UserInviteService;
use BookStack\Notifications\UserInvite;
+use BookStack\Users\Models\User;
use Carbon\Carbon;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Facades\DB;
namespace Tests\Commands;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Facades\Activity;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
namespace Tests\Commands;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Auth;
use Tests\TestCase;
namespace Tests\Commands;
-use BookStack\Actions\Comment;
+use BookStack\Activity\Models\Comment;
use Tests\TestCase;
class RegenerateCommentContentCommandTest extends TestCase
namespace Tests\Commands;
use BookStack\Auth\Permissions\CollapsedPermission;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Permissions\JointPermission;
+use BookStack\Permissions\Models\JointPermission;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Tests\TestCase;
namespace Tests\Commands;
-use BookStack\Auth\Access\Mfa\MfaValue;
-use BookStack\Auth\User;
+use BookStack\Access\Mfa\MfaValue;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class ResetMfaCommandTest extends TestCase
namespace Tests;
-use BookStack\Auth\Access\SocialAuthService;
+use BookStack\Access\SocialAuthService;
use Illuminate\Testing\TestResponse;
class DebugViewTest extends TestCase
namespace Tests\Entity;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Uploads\Image;
+use BookStack\Users\Models\User;
use Illuminate\Support\Str;
use Tests\TestCase;
namespace Tests\Entity;
-use BookStack\Actions\Comment;
+use BookStack\Activity\Models\Comment;
use BookStack\Entities\Models\Page;
use Tests\TestCase;
namespace Tests\Entity;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\Tag;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
namespace Tests\Entity;
-use BookStack\Auth\UserRepo;
use BookStack\Entities\Models\Entity;
+use BookStack\Users\UserRepo;
use Tests\TestCase;
class EntityAccessTest extends TestCase
namespace Tests\Entity;
-use BookStack\Actions\Tag;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use Tests\TestCase;
namespace Tests\Entity;
-use BookStack\Auth\Role;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Page;
namespace Tests\Entity;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Page;
use Tests\TestCase;
namespace Tests\Entity;
-use BookStack\Actions\Tag;
+use BookStack\Activity\Models\Tag;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
use Tests\TestCase;
namespace Tests;
-use BookStack\Actions\Favourite;
-use BookStack\Auth\User;
+use BookStack\Activity\Models\Favourite;
+use BookStack\Users\Models\User;
class FavouriteTest extends TestCase
{
namespace Tests\Helpers;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Repos\BookshelfRepo;
use BookStack\Entities\Repos\ChapterRepo;
use BookStack\Entities\Repos\PageRepo;
+use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Builder;
/**
namespace Tests\Helpers;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Permissions\RolePermission;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Entity;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Permissions\Models\RolePermission;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
class PermissionsProvider
{
namespace Tests\Helpers;
-use BookStack\Auth\Permissions\PermissionsRepo;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Permissions\PermissionsRepo;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
class UserRoleProvider
{
namespace Tests;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
class HomepageTest extends TestCase
{
namespace Tests\Permissions;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class EntityOwnerChangeTest extends TestCase
namespace Tests\Permissions;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Exception;
use Illuminate\Support\Str;
use Tests\TestCase;
namespace Tests\Permissions;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\Comment;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\Models\Comment;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Chapter;
use BookStack\Entities\Models\Entity;
use BookStack\Entities\Models\Page;
use BookStack\Uploads\Image;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Testing\TestResponse;
use Tests\TestCase;
namespace Tests\Permissions\Scenarios;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Entity;
+use BookStack\Users\Models\User;
use Tests\TestCase;
// Cases defined in dev/docs/permission-scenario-testing.md
namespace Tests;
-use BookStack\Auth\Permissions\RolePermission;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Chapter;
+use BookStack\Permissions\Models\RolePermission;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;
namespace Tests\References;
+use BookStack\App\Model;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\TrashCan;
-use BookStack\Model;
use BookStack\References\Reference;
use Tests\TestCase;
namespace Tests\Settings;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\References\ReferenceStore;
use Tests\TestCase;
namespace Tests;
-use BookStack\Actions\ActivityType;
-use BookStack\Actions\DispatchWebhookJob;
-use BookStack\Actions\Webhook;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Activity\DispatchWebhookJob;
+use BookStack\Activity\Models\Webhook;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Tools\PageContent;
use BookStack\Facades\Theme;
use BookStack\Theming\ThemeEvents;
+use BookStack\Users\Models\User;
use Illuminate\Console\Command;
use Illuminate\Http\Client\Request as HttpClientRequest;
use Illuminate\Http\Request;
namespace Tests\Unit;
-use BookStack\Actions\IpFormatter;
+use BookStack\Activity\Tools\IpFormatter;
use Tests\TestCase;
class IpFormatterTest extends TestCase
namespace Tests\Unit;
-use BookStack\Auth\Access\Oidc\OidcIdToken;
-use BookStack\Auth\Access\Oidc\OidcInvalidTokenException;
+use BookStack\Access\Oidc\OidcIdToken;
+use BookStack\Access\Oidc\OidcInvalidTokenException;
use Tests\Helpers\OidcJwtHelper;
use Tests\TestCase;
namespace Tests\Uploads;
-use BookStack\Auth\User;
use BookStack\Exceptions\HttpFetchException;
use BookStack\Uploads\HttpFetcher;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class AvatarTest extends TestCase
namespace Tests\User;
-use BookStack\Actions\ActivityType;
+use BookStack\Activity\ActivityType;
use BookStack\Api\ApiToken;
use Carbon\Carbon;
use Tests\TestCase;
namespace Tests\User;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Access\UserInviteService;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Access\UserInviteService;
+use BookStack\Activity\ActivityType;
use BookStack\Uploads\Image;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Mockery\MockInterface;
namespace Tests\User;
use Activity;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class UserProfileTest extends TestCase
namespace Tests\User;
-use BookStack\Auth\User;
+use BookStack\Users\Models\User;
use Tests\TestCase;
class UserSearchTest extends TestCase