Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating to 22.11 from 22.09.1 - SQL error? #3919

Closed
2 tasks done
patsyk1 opened this issue Dec 15, 2022 · 12 comments
Closed
2 tasks done

Updating to 22.11 from 22.09.1 - SQL error? #3919

patsyk1 opened this issue Dec 15, 2022 · 12 comments

Comments

@patsyk1
Copy link

patsyk1 commented Dec 15, 2022

Attempted Debugging

  • I have read the debugging page

Searched GitHub Issues

  • I have searched GitHub for the issue.

Describe the Scenario

Updating from 22.09.1 to 22.11 always results in an SQLSTATE[42S22] error on the debug page.

I've tried restoring a SQL database from a backup before the update, but this doesn't help.

I saw there was a similarly completed issue with the update for someone else that was permission-based. Still, the fix of restoring all Bookstack permissions didn't help me (as I assume this is linked to SQL more so than permissions to the directories Bookstack is being served from).

Exact BookStack Version

22.09.1

Log Content

Error
Illuminate\View\ViewException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'view' in 'where clause' (SQL: select count(*) as aggregate from entity_permissions where view = 1 and role_id in (4) and entity_type = bookshelf) (View: /var/www/bookstack/resources/views/common/header.blade.php) (View: /var/www/bookstack/resources/views/common/header.blade.php) (View: /var/www/bookstack/resources/views/common/header.blade.php) (View: /var/www/bookstack/resources/views/common/header.blade.php)

Stack Trace
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(60): Illuminate\View\Engines\CompilerEngine->handleViewException()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(61): Illuminate\View\Engines\PhpEngine->evaluatePath()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/View.php(139): Illuminate\View\Engines\CompilerEngine->get()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/View.php(122): Illuminate\View\View->getContents()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Response.php(69): Illuminate\View\View->render()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Response.php(35): Illuminate\Http\Response->setContent()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(820): Illuminate\Http\Response->__construct()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(789): Illuminate\Routing\Router::toResponse()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\Routing\Router->prepareResponse()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing{closure}()
/var/www/bookstack/app/Http/Middleware/Authenticate.php(23): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\Authenticate->handle()
/var/www/bookstack/app/Http/Middleware/Localization.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\Localization->handle()
/var/www/bookstack/app/Http/Middleware/RunThemeActions.php(26): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\RunThemeActions->handle()
/var/www/bookstack/app/Http/Middleware/CheckEmailConfirmed.php(47): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\CheckEmailConfirmed->handle()
/var/www/bookstack/app/Http/Middleware/PreventAuthenticatedResponseCaching.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\PreventAuthenticatedResponseCaching->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
/var/www/bookstack/app/Http/Middleware/ApplyCspRules.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\ApplyCspRules->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(723): Illuminate\Pipeline\Pipeline->then()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(698): Illuminate\Routing\Router->runRouteWithinStack()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\Routing\Router->runRoute()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Routing/Router.php(651): Illuminate\Routing\Router->dispatchToRoute()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\Routing\Router->dispatch()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/app/Http/Middleware/TrustProxies.php(41): Illuminate\Http\Middleware\TrustProxies->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): BookStack\Http\Middleware\TrustProxies->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\Pipeline\Pipeline->then()
/var/www/bookstack/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
/var/www/bookstack/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle()
{main}

PHP Version

7.4.3

Hosting Environment

Ubuntu 20.04 LTS

@ssddanbrown
Copy link
Member

Hi @patsyk1,
It sounds like the database is out of sync with the application files.
Could you run each upgrade command, one at a time, and share the command line output observed at each stage?

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

Hi @ssddanbrown,

Sure thing, I had to initially run the below as I was getting "error: Your local changes to the following files would be overwritten by merge:" when completing the initial git.

sudo git stash push --include-untracked
sudo git stash drop

Output observed at each stage after is:
sudo git pull origin release
From https://github.com/BookStackApp/BookStack

  • branch release -> FETCH_HEAD
    Updating ebd6e4d..bf6a6af
    Fast-forward
    .github/translators.txt | 18 +
    .github/workflows/analyse-php.yml | 4 +-
    .github/workflows/test-migrations.yml | 6 +-
    .github/workflows/test-php.yml | 6 +-
    LICENSE | 3 +-
    app/Actions/Queries/WebhooksAllPaginatedAndSorted.php | 30 +
    app/Actions/TagRepo.php | 21 +-
    app/Api/ApiEntityListFormatter.php | 107 ++++
    app/Api/ListingResponseBuilder.php | 23 +-
    app/Auth/Access/LoginService.php | 2 +
    app/Auth/Access/Oidc/OidcJwtSigningKey.php | 9 +-
    app/Auth/Access/Oidc/OidcProviderSettings.php | 42 +-
    app/Auth/Access/Oidc/OidcService.php | 1 -
    app/Auth/Access/Saml2Service.php | 19 +-
    app/Auth/Permissions/EntityPermission.php | 31 +-
    app/Auth/Permissions/JointPermissionBuilder.php | 53 +-
    app/Auth/Permissions/PermissionApplicator.php | 48 +-
    app/Auth/Permissions/PermissionFormData.php | 68 +++
    app/Auth/Permissions/PermissionsRepo.php | 1 +
    app/Auth/Permissions/SimpleEntityData.php | 1 -
    app/Auth/Queries/RolesAllPaginatedAndSorted.php | 35 ++
    .../{AllUsersPaginatedAndSorted.php => UsersAllPaginatedAndSorted.php} | 19 +-
    app/Auth/Role.php | 28 +-
    app/Auth/UserRepo.php | 8 +-
    app/Config/app.php | 21 +-
    app/Config/setting-defaults.php | 2 +
    app/Console/Commands/CopyShelfPermissions.php | 17 +-
    app/Entities/Models/Book.php | 12 +-
    app/Entities/Models/Bookshelf.php | 11 +-
    app/Entities/Models/Chapter.php | 11 +-
    app/Entities/Models/Entity.php | 8 +-
    app/Entities/Models/Page.php | 13 +-
    app/Entities/Models/PageRevision.php | 2 +-
    app/Entities/Repos/BaseRepo.php | 4 +-
    app/Entities/Repos/BookshelfRepo.php | 25 -
    app/Entities/Tools/BookContents.php | 15 +-
    app/Entities/Tools/Cloner.php | 23 +-
    app/Entities/Tools/HierarchyTransformer.php | 2 +-
    app/Entities/Tools/PermissionsUpdater.php | 54 +-
    app/Http/Controllers/Api/BookApiController.php | 20 +-
    app/Http/Controllers/Api/BookshelfApiController.php | 3 -
    app/Http/Controllers/Api/SearchApiController.php | 30 +-
    app/Http/Controllers/AuditLogController.php | 46 +-
    app/Http/Controllers/Auth/ConfirmEmailController.php | 22 +-
    app/Http/Controllers/Auth/ForgotPasswordController.php | 23 +-
    app/Http/Controllers/Auth/LoginController.php | 167 ++----
    app/Http/Controllers/Auth/RegisterController.php | 59 +-
    app/Http/Controllers/Auth/ResetPasswordController.php | 92 +--
    app/Http/Controllers/Auth/Saml2Controller.php | 2 +-
    app/Http/Controllers/Auth/SocialController.php | 8 +-
    app/Http/Controllers/Auth/ThrottlesLogins.php | 92 +++
    app/Http/Controllers/Auth/UserInviteController.php | 7 +-
    app/Http/Controllers/BookController.php | 46 +-
    app/Http/Controllers/BookshelfController.php | 74 +--
    app/Http/Controllers/ChapterController.php | 33 --
    app/Http/Controllers/FavouriteController.php | 2 +-
    app/Http/Controllers/HomeController.php | 22 +-
    app/Http/Controllers/PageController.php | 34 --
    app/Http/Controllers/PageRevisionController.php | 26 +-
    app/Http/Controllers/PermissionsController.php | 174 ++++++
    app/Http/Controllers/ReferenceController.php | 10 +-
    app/Http/Controllers/RoleController.php | 31 +-
    app/Http/Controllers/SearchController.php | 24 +-
    app/Http/Controllers/TagController.php | 31 +-
    app/Http/Controllers/UserController.php | 164 +----
    app/Http/Controllers/UserPreferencesController.php | 142 +++++
    app/Http/Controllers/WebhookController.php | 23 +-
    app/Providers/AppServiceProvider.php | 55 +-
    app/Providers/AuthServiceProvider.php | 4 +-
    app/Providers/BroadcastServiceProvider.php | 25 -
    app/Providers/CustomFacadeProvider.php | 36 --
    app/Providers/EventServiceProvider.php | 2 +-
    app/Providers/PaginationServiceProvider.php | 35 --
    app/Providers/RouteServiceProvider.php | 8 -
    app/Providers/ThemeServiceProvider.php | 6 +-
    ...ustomValidationServiceProvider.php => ValidationRuleServiceProvider.php} | 2 +-
    app/Providers/ViewTweaksServiceProvider.php | 31 +
    app/Search/SearchRunner.php | 6 +-
    app/Settings/SettingService.php | 12 +
    app/Settings/UserShortcutMap.php | 82 +++
    app/Uploads/ImageService.php | 9 +-
    app/Util/LanguageManager.php | 1 +
    app/Util/SimpleListOptions.php | 104 ++++
    composer.json | 4 +-
    composer.lock | 946 ++++++++++++++++-------------
    database/migrations/2022_10_07_091406_flatten_entity_permissions_table.php | 105 ++++
    database/migrations/2022_10_08_104202_drop_entity_restricted_field.php | 93 +++
    dev/api/responses/books-read.json | 42 +-
    dev/docs/components.md | 99 ----
    dev/docs/development.md | 98 +++
    dev/docs/javascript-code.md | 156 +++++
    dev/docs/release-process.md | 24 +
    package-lock.json | 1122 +++++++++++++++++++++--------------
    package.json | 4 +-
    public/dist/app.js | 60 +-
    public/dist/code.js | 42 +-
    public/dist/export-styles.css | 2 +-
    public/dist/print-styles.css | 2 +-
    public/dist/styles.css | 2 +-
    readme.md | 127 +---
    resources/icons/groups.svg | 1 +
    resources/icons/image.svg | 5 +-
    resources/icons/role.svg | 4 +
    resources/icons/shortcuts.svg | 1 +
    resources/js/app.js | 7 +-
    resources/js/code.mjs | 9 +-
    resources/js/components/add-remove-rows.js | 10 +-
    resources/js/components/ajax-delete-row.js | 11 +-
    resources/js/components/ajax-form.js | 11 +-
    resources/js/components/attachments-list.js | 9 +-
    resources/js/components/attachments.js | 19 +-
    resources/js/components/auto-submit.js | 11 +
    resources/js/components/auto-suggest.js | 23 +-
    resources/js/components/back-to-top.js | 23 +-
    resources/js/components/book-sort.js | 26 +-
    resources/js/components/chapter-contents.js | 9 +-
    resources/js/components/code-editor.js | 25 +-
    resources/js/components/code-highlighter.js | 16 +-
    resources/js/components/code-textarea.js | 9 +-
    resources/js/components/collapsible.js | 28 +-
    resources/js/components/component.js | 58 ++
    resources/js/components/confirm-dialog.js | 10 +-
    resources/js/components/custom-checkbox.js | 21 +-
    resources/js/components/details-highlighter.js | 19 +-
    resources/js/components/dropdown-search.js | 7 +-
    resources/js/components/dropdown.js | 86 +--
    resources/js/components/dropzone.js | 11 +-
    resources/js/components/editor-toolbox.js | 65 +-
    resources/js/components/entity-permissions-editor.js | 20 -
    resources/js/components/entity-permissions.js | 75 +++
    resources/js/components/entity-search.js | 11 +-
    resources/js/components/entity-selector-popup.js | 32 +-
    resources/js/components/entity-selector.js | 10 +-
    resources/js/components/event-emit-select.js | 9 +-
    resources/js/components/expand-toggle.js | 22 +-
    resources/js/components/global-search.js | 82 +++
    resources/js/components/header-mobile-toggle.js | 7 +-
    resources/js/components/image-manager.js | 29 +-
    resources/js/components/image-picker.js | 34 +-
    resources/js/components/index.js | 333 ++---------
    resources/js/components/list-sort-control.js | 27 +-
    resources/js/components/markdown-editor.js | 647 +++-----------------
    resources/js/components/new-user-password.js | 22 +-
    resources/js/components/notification.js | 40 +-
    resources/js/components/optional-input.js | 7 +-
    resources/js/components/page-comments.js | 19 +-
    resources/js/components/page-display.js | 144 +----
    resources/js/components/page-editor.js | 16 +-
    resources/js/components/page-picker.js | 31 +-
    resources/js/components/permissions-table.js | 30 +-
    resources/js/components/pointer.js | 128 ++++
    resources/js/components/popup.js | 8 +-
    resources/js/components/setting-app-color-picker.js | 26 +-
    resources/js/components/setting-color-picker.js | 30 +-
    .../js/components/{homepage-control.js => setting-homepage-control.js} | 17 +-
    resources/js/components/shelf-sort.js | 10 +-
    resources/js/components/shortcut-input.js | 54 ++
    resources/js/components/shortcuts.js | 162 +++++
    resources/js/components/sidebar.js | 16 -
    resources/js/components/sortable-list.js | 9 +-
    resources/js/components/submit-on-change.js | 9 +-
    resources/js/components/tabs.js | 12 +-
    resources/js/components/tag-manager.js | 15 +-
    resources/js/components/template-manager.js | 90 ++-
    resources/js/components/toggle-switch.js | 14 +-
    resources/js/components/tri-layout.js | 7 +-
    resources/js/components/user-select.js | 19 +-
    resources/js/components/webhook-events.js | 10 +-
    resources/js/components/wysiwyg-editor.js | 7 +-
    resources/js/markdown/actions.js | 448 ++++++++++++++
    resources/js/markdown/codemirror.js | 70 +++
    resources/js/markdown/common-events.js | 33 ++
    resources/js/markdown/display.js | 109 ++++
    resources/js/markdown/editor.js | 54 ++
    resources/js/markdown/markdown.js | 30 +
    resources/js/markdown/settings.js | 62 ++
    resources/js/markdown/shortcuts.js | 48 ++
    resources/js/services/components.js | 165 ++++++
    resources/js/services/dom.js | 13 +
    resources/js/services/keyboard-navigation.js | 89 +++
    resources/js/services/text.js | 19 +
    resources/js/services/util.js | 6 +-
    resources/js/wysiwyg/config.js | 12 +-
    resources/js/wysiwyg/icons.js | 21 +
    resources/js/wysiwyg/plugin-codeeditor.js | 27 +-
    resources/js/wysiwyg/plugin-drawio.js | 6 +-
    resources/js/wysiwyg/plugins-customhr.js | 2 +-
    resources/js/wysiwyg/plugins-imagemanager.js | 5 +-
    resources/js/wysiwyg/shortcuts.js | 4 +-
    resources/js/wysiwyg/toolbars.js | 2 +-
    resources/lang/ar/auth.php | 2 +
    resources/lang/ar/common.php | 3 +
    resources/lang/ar/editor.php | 5 +-
    resources/lang/ar/entities.php | 14 +-
    resources/lang/ar/preferences.php | 18 +
    resources/lang/ar/settings.php | 9 +
    resources/lang/bg/auth.php | 2 +
    resources/lang/bg/common.php | 3 +
    resources/lang/bg/editor.php | 5 +-
    resources/lang/bg/entities.php | 14 +-
    resources/lang/bg/preferences.php | 18 +
    resources/lang/bg/settings.php | 9 +
    resources/lang/bs/auth.php | 2 +
    resources/lang/bs/common.php | 3 +
    resources/lang/bs/editor.php | 5 +-
    resources/lang/bs/entities.php | 14 +-
    resources/lang/bs/preferences.php | 18 +
    resources/lang/bs/settings.php | 9 +
    resources/lang/ca/auth.php | 2 +
    resources/lang/ca/common.php | 3 +
    resources/lang/ca/editor.php | 5 +-
    resources/lang/ca/entities.php | 14 +-
    resources/lang/ca/preferences.php | 18 +
    resources/lang/ca/settings.php | 9 +
    resources/lang/cs/activities.php | 22 +-
    resources/lang/cs/auth.php | 18 +-
    resources/lang/cs/common.php | 9 +-
    resources/lang/cs/editor.php | 305 +++++-----
    resources/lang/cs/entities.php | 100 ++--
    resources/lang/cs/errors.php | 10 +-
    resources/lang/cs/passwords.php | 4 +-
    resources/lang/cs/preferences.php | 18 +
    resources/lang/cs/settings.php | 51 +-
    resources/lang/cs/validation.php | 2 +-
    resources/lang/cy/auth.php | 2 +
    resources/lang/cy/common.php | 3 +
    resources/lang/cy/editor.php | 5 +-
    resources/lang/cy/entities.php | 14 +-
    resources/lang/cy/preferences.php | 18 +
    resources/lang/cy/settings.php | 9 +
    resources/lang/da/auth.php | 2 +
    resources/lang/da/common.php | 3 +
    resources/lang/da/editor.php | 5 +-
    resources/lang/da/entities.php | 14 +-
    resources/lang/da/preferences.php | 18 +
    resources/lang/da/settings.php | 9 +
    resources/lang/de/activities.php | 2 +-
    resources/lang/de/auth.php | 10 +-
    resources/lang/de/common.php | 3 +
    resources/lang/de/components.php | 2 +-
    resources/lang/de/editor.php | 5 +-
    resources/lang/de/entities.php | 14 +-
    resources/lang/de/errors.php | 12 +-
    resources/lang/de/preferences.php | 18 +
    resources/lang/de/settings.php | 21 +-
    resources/lang/de/validation.php | 4 +-
    resources/lang/de_informal/activities.php | 10 +-
    resources/lang/de_informal/auth.php | 18 +-
    resources/lang/de_informal/common.php | 5 +-
    resources/lang/de_informal/editor.php | 21 +-
    resources/lang/de_informal/entities.php | 14 +-
    resources/lang/de_informal/preferences.php | 18 +
    resources/lang/de_informal/settings.php | 15 +-
    resources/lang/el/activities.php | 73 +++
    resources/lang/el/auth.php | 117 ++++
    resources/lang/el/common.php | 107 ++++
    resources/lang/el/components.php | 34 ++
    resources/lang/el/editor.php | 174 ++++++
    resources/lang/el/entities.php | 388 ++++++++++++
    resources/lang/el/errors.php | 109 ++++
    resources/lang/el/pagination.php | 12 +
    resources/lang/el/passwords.php | 15 +
    resources/lang/el/preferences.php | 18 +
    resources/lang/el/settings.php | 324 ++++++++++
    resources/lang/el/validation.php | 117 ++++
    resources/lang/en/auth.php | 2 +
    resources/lang/en/common.php | 3 +
    resources/lang/en/editor.php | 5 +-
    resources/lang/en/entities.php | 14 +-
    resources/lang/en/preferences.php | 18 +
    resources/lang/en/settings.php | 9 +
    resources/lang/es/auth.php | 10 +-
    resources/lang/es/common.php | 3 +
    resources/lang/es/editor.php | 5 +-
    resources/lang/es/entities.php | 14 +-
    resources/lang/es/preferences.php | 18 +
    resources/lang/es/settings.php | 9 +
    resources/lang/es_AR/auth.php | 2 +
    resources/lang/es_AR/common.php | 3 +
    resources/lang/es_AR/editor.php | 5 +-
    resources/lang/es_AR/entities.php | 14 +-
    resources/lang/es_AR/preferences.php | 18 +
    resources/lang/es_AR/settings.php | 9 +
    resources/lang/et/auth.php | 2 +
    resources/lang/et/common.php | 3 +
    resources/lang/et/editor.php | 5 +-
    resources/lang/et/entities.php | 14 +-
    resources/lang/et/preferences.php | 18 +
    resources/lang/et/settings.php | 9 +
    resources/lang/eu/auth.php | 2 +
    resources/lang/eu/common.php | 3 +
    resources/lang/eu/editor.php | 5 +-
    resources/lang/eu/entities.php | 20 +-
    resources/lang/eu/preferences.php | 18 +
    resources/lang/eu/settings.php | 9 +
    resources/lang/fa/activities.php | 4 +-
    resources/lang/fa/auth.php | 2 +
    resources/lang/fa/common.php | 3 +
    resources/lang/fa/editor.php | 5 +-
    resources/lang/fa/entities.php | 16 +-
    resources/lang/fa/preferences.php | 18 +
    resources/lang/fa/settings.php | 9 +
    resources/lang/fr/auth.php | 2 +
    resources/lang/fr/common.php | 3 +
    resources/lang/fr/editor.php | 5 +-
    resources/lang/fr/entities.php | 14 +-
    resources/lang/fr/preferences.php | 18 +
    resources/lang/fr/settings.php | 9 +
    resources/lang/he/auth.php | 2 +
    resources/lang/he/common.php | 3 +
    resources/lang/he/editor.php | 5 +-
    resources/lang/he/entities.php | 14 +-
    resources/lang/he/preferences.php | 18 +
    resources/lang/he/settings.php | 9 +
    resources/lang/hr/auth.php | 2 +
    resources/lang/hr/common.php | 3 +
    resources/lang/hr/editor.php | 5 +-
    resources/lang/hr/entities.php | 14 +-
    resources/lang/hr/preferences.php | 18 +
    resources/lang/hr/settings.php | 9 +
    resources/lang/hu/auth.php | 2 +
    resources/lang/hu/common.php | 3 +
    resources/lang/hu/editor.php | 5 +-
    resources/lang/hu/entities.php | 14 +-
    resources/lang/hu/preferences.php | 18 +
    resources/lang/hu/settings.php | 9 +
    resources/lang/id/auth.php | 2 +
    resources/lang/id/common.php | 3 +
    resources/lang/id/editor.php | 17 +-
    resources/lang/id/entities.php | 14 +-
    resources/lang/id/preferences.php | 18 +
    resources/lang/id/settings.php | 9 +
    resources/lang/it/auth.php | 2 +
    resources/lang/it/common.php | 3 +
    resources/lang/it/editor.php | 5 +-
    resources/lang/it/entities.php | 14 +-
    resources/lang/it/preferences.php | 18 +
    resources/lang/it/settings.php | 9 +
    resources/lang/ja/auth.php | 2 +
    resources/lang/ja/common.php | 3 +
    resources/lang/ja/editor.php | 5 +-
    resources/lang/ja/entities.php | 14 +-
    resources/lang/ja/preferences.php | 18 +
    resources/lang/ja/settings.php | 9 +
    resources/lang/ka/activities.php | 73 +++
    resources/lang/ka/auth.php | 117 ++++
    resources/lang/ka/common.php | 107 ++++
    resources/lang/ka/components.php | 34 ++
    resources/lang/ka/editor.php | 174 ++++++
    resources/lang/ka/entities.php | 388 ++++++++++++
    resources/lang/ka/errors.php | 109 ++++
    resources/lang/ka/pagination.php | 12 +
    resources/lang/ka/passwords.php | 15 +
    resources/lang/ka/preferences.php | 18 +
    resources/lang/ka/settings.php | 324 ++++++++++
    resources/lang/ka/validation.php | 117 ++++
    resources/lang/ko/activities.php | 14 +-
    resources/lang/ko/auth.php | 2 +
    resources/lang/ko/common.php | 3 +
    resources/lang/ko/editor.php | 115 ++--
    resources/lang/ko/entities.php | 14 +-
    resources/lang/ko/preferences.php | 18 +
    resources/lang/ko/settings.php | 9 +
    resources/lang/lt/auth.php | 2 +
    resources/lang/lt/common.php | 3 +
    resources/lang/lt/editor.php | 5 +-
    resources/lang/lt/entities.php | 14 +-
    resources/lang/lt/preferences.php | 18 +
    resources/lang/lt/settings.php | 9 +
    resources/lang/lv/auth.php | 2 +
    resources/lang/lv/common.php | 3 +
    resources/lang/lv/editor.php | 5 +-
    resources/lang/lv/entities.php | 14 +-
    resources/lang/lv/preferences.php | 18 +
    resources/lang/lv/settings.php | 9 +
    resources/lang/nb/auth.php | 2 +
    resources/lang/nb/common.php | 3 +
    resources/lang/nb/editor.php | 5 +-
    resources/lang/nb/entities.php | 14 +-
    resources/lang/nb/preferences.php | 18 +
    resources/lang/nb/settings.php | 9 +
    resources/lang/nl/auth.php | 2 +
    resources/lang/nl/common.php | 3 +
    resources/lang/nl/editor.php | 5 +-
    resources/lang/nl/entities.php | 40 +-
    resources/lang/nl/preferences.php | 18 +
    resources/lang/nl/settings.php | 11 +-
    resources/lang/pl/activities.php | 14 +-
    resources/lang/pl/auth.php | 2 +
    resources/lang/pl/common.php | 3 +
    resources/lang/pl/editor.php | 5 +-
    resources/lang/pl/entities.php | 48 +-
    resources/lang/pl/errors.php | 2 +-
    resources/lang/pl/preferences.php | 18 +
    resources/lang/pl/settings.php | 21 +-
    resources/lang/pt/auth.php | 2 +
    resources/lang/pt/common.php | 3 +
    resources/lang/pt/editor.php | 5 +-
    resources/lang/pt/entities.php | 14 +-
    resources/lang/pt/preferences.php | 18 +
    resources/lang/pt/settings.php | 9 +
    resources/lang/pt_BR/activities.php | 16 +-
    resources/lang/pt_BR/auth.php | 8 +-
    resources/lang/pt_BR/common.php | 3 +
    resources/lang/pt_BR/editor.php | 7 +-
    resources/lang/pt_BR/entities.php | 74 ++-
    resources/lang/pt_BR/errors.php | 2 +-
    resources/lang/pt_BR/preferences.php | 18 +
    resources/lang/pt_BR/settings.php | 21 +-
    resources/lang/ro/auth.php | 2 +
    resources/lang/ro/common.php | 3 +
    resources/lang/ro/editor.php | 5 +-
    resources/lang/ro/entities.php | 14 +-
    resources/lang/ro/preferences.php | 18 +
    resources/lang/ro/settings.php | 19 +-
    resources/lang/ru/auth.php | 2 +
    resources/lang/ru/common.php | 3 +
    resources/lang/ru/editor.php | 5 +-
    resources/lang/ru/entities.php | 14 +-
    resources/lang/ru/preferences.php | 18 +
    resources/lang/ru/settings.php | 9 +
    resources/lang/sk/auth.php | 2 +
    resources/lang/sk/common.php | 3 +
    resources/lang/sk/editor.php | 5 +-
    resources/lang/sk/entities.php | 14 +-
    resources/lang/sk/preferences.php | 18 +
    resources/lang/sk/settings.php | 9 +
    resources/lang/sl/auth.php | 2 +
    resources/lang/sl/common.php | 3 +
    resources/lang/sl/editor.php | 5 +-
    resources/lang/sl/entities.php | 14 +-
    resources/lang/sl/preferences.php | 18 +
    resources/lang/sl/settings.php | 9 +
    resources/lang/sv/activities.php | 62 +-
    resources/lang/sv/auth.php | 82 +--
    resources/lang/sv/common.php | 21 +-
    resources/lang/sv/editor.php | 295 ++++-----
    resources/lang/sv/entities.php | 140 +++--
    resources/lang/sv/errors.php | 12 +-
    resources/lang/sv/preferences.php | 18 +
    resources/lang/sv/settings.php | 133 +++--
    resources/lang/sv/validation.php | 6 +-
    resources/lang/tr/activities.php | 4 +-
    resources/lang/tr/auth.php | 2 +
    resources/lang/tr/common.php | 3 +
    resources/lang/tr/editor.php | 5 +-
    resources/lang/tr/entities.php | 14 +-
    resources/lang/tr/preferences.php | 18 +
    resources/lang/tr/settings.php | 9 +
    resources/lang/uk/auth.php | 2 +
    resources/lang/uk/common.php | 3 +
    resources/lang/uk/editor.php | 5 +-
    resources/lang/uk/entities.php | 14 +-
    resources/lang/uk/preferences.php | 18 +
    resources/lang/uk/settings.php | 9 +
    resources/lang/uz/auth.php | 2 +
    resources/lang/uz/common.php | 3 +
    resources/lang/uz/editor.php | 5 +-
    resources/lang/uz/entities.php | 14 +-
    resources/lang/uz/preferences.php | 18 +
    resources/lang/uz/settings.php | 9 +
    resources/lang/vi/auth.php | 2 +
    resources/lang/vi/common.php | 3 +
    resources/lang/vi/editor.php | 5 +-
    resources/lang/vi/entities.php | 14 +-
    resources/lang/vi/preferences.php | 18 +
    resources/lang/vi/settings.php | 9 +
    resources/lang/zh_CN/auth.php | 2 +
    resources/lang/zh_CN/common.php | 3 +
    resources/lang/zh_CN/editor.php | 5 +-
    resources/lang/zh_CN/entities.php | 14 +-
    resources/lang/zh_CN/preferences.php | 18 +
    resources/lang/zh_CN/settings.php | 9 +
    resources/lang/zh_TW/activities.php | 20 +-
    resources/lang/zh_TW/auth.php | 46 +-
    resources/lang/zh_TW/common.php | 7 +-
    resources/lang/zh_TW/editor.php | 97 +--
    resources/lang/zh_TW/entities.php | 22 +-
    resources/lang/zh_TW/errors.php | 10 +-
    resources/lang/zh_TW/preferences.php | 18 +
    resources/lang/zh_TW/settings.php | 23 +-
    resources/lang/zh_TW/validation.php | 6 +-
    resources/sass/_animations.scss | 16 +-
    resources/sass/_blocks.scss | 41 +-
    resources/sass/_buttons.scss | 18 +-
    resources/sass/_components.scss | 132 ++++-
    resources/sass/_forms.scss | 98 +--
    resources/sass/_header.scss | 74 ++-
    resources/sass/_layout.scss | 58 +-
    resources/sass/_lists.scss | 3 +-
    resources/sass/_opacity.scss | 28 +
    resources/sass/_pages.scss | 15 +-
    resources/sass/_spacing.scss | 14 +-
    resources/sass/_tables.scss | 2 +-
    resources/sass/_text.scss | 2 +-
    resources/sass/_variables.scss | 4 +
    resources/sass/styles.scss | 101 ++--
    resources/views/api-docs/index.blade.php | 2 +-
    resources/views/api-docs/parts/endpoint.blade.php | 4 +-
    resources/views/api-docs/parts/getting-started.blade.php | 13 +-
    resources/views/attachments/manager.blade.php | 7 +-
    resources/views/auth/login.blade.php | 2 +
    resources/views/auth/parts/login-message.blade.php | 2 +
    resources/views/auth/parts/register-message.blade.php | 2 +
    resources/views/auth/register-confirm-accept.blade.php | 27 +
    resources/views/auth/register.blade.php | 2 +
    resources/views/books/index.blade.php | 4 +-
    resources/views/books/parts/form.blade.php | 12 +-
    resources/views/books/parts/list.blade.php | 12 +-
    resources/views/books/parts/sort-box.blade.php | 10 +-
    resources/views/books/permissions.blade.php | 5 +-
    resources/views/books/show.blade.php | 16 +-
    resources/views/books/sort.blade.php | 6 +-
    resources/views/chapters/parts/form.blade.php | 6 +-
    resources/views/chapters/permissions.blade.php | 5 +-
    resources/views/chapters/show.blade.php | 18 +-
    resources/views/common/dark-mode-toggle.blade.php | 2 +-
    resources/views/common/header.blade.php | 44 +-
    resources/views/common/notifications.blade.php | 26 +-
    resources/views/{entities => common}/sort.blade.php | 31 +-
    resources/views/common/status-indicator.blade.php | 3 +
    resources/views/entities/export-menu.blade.php | 9 +-
    resources/views/entities/favourite-action.blade.php | 2 +-
    resources/views/entities/search-form.blade.php | 2 +-
    resources/views/entities/sibling-navigation.blade.php | 4 +-
    resources/views/entities/view-toggle.blade.php | 8 +-
    resources/views/form/custom-checkbox.blade.php | 4 +-
    resources/views/form/entity-permissions-row.blade.php | 88 +++
    resources/views/form/entity-permissions.blade.php | 93 +--
    resources/views/form/image-picker.blade.php | 21 +-
    resources/views/form/restriction-checkbox.blade.php | 13 -
    resources/views/form/toggle-switch.blade.php | 2 +-
    resources/views/home/parts/expand-toggle.blade.php | 10 +-
    resources/views/home/shelves.blade.php | 2 +-
    resources/views/home/specific-page.blade.php | 4 +-
    resources/views/layouts/base.blade.php | 9 +-
    resources/views/pages/parts/code-editor.blade.php | 8 +-
    resources/views/pages/parts/editor-toolbox.blade.php | 14 +-
    resources/views/pages/parts/markdown-editor.blade.php | 46 +-
    resources/views/pages/parts/pointer.blade.php | 5 +-
    resources/views/pages/parts/revision-table-row.blade.php | 69 ---
    resources/views/pages/parts/revisions-index-row.blade.php | 80 +++
    resources/views/pages/parts/template-manager.blade.php | 16 +-
    resources/views/pages/permissions.blade.php | 5 +-
    resources/views/pages/revisions.blade.php | 38 +-
    resources/views/pages/show.blade.php | 24 +-
    resources/views/search/all.blade.php | 4 +-
    .../parts/{entity-ajax-list.blade.php => entity-selector-list.blade.php} | 0
    resources/views/search/parts/entity-suggestion-list.blade.php | 21 +
    resources/views/search/parts/term-list.blade.php | 35 +-
    resources/views/settings/audit.blade.php | 94 +--
    resources/views/settings/customization.blade.php | 21 +-
    resources/views/settings/parts/page-picker.blade.php | 14 +-
    resources/views/settings/parts/setting-entity-color-picker.blade.php | 12 +-
    resources/views/settings/parts/table-user.blade.php | 6 +-
    resources/views/settings/recycle-bin/index.blade.php | 92 +--
    resources/views/settings/recycle-bin/parts/recycle-bin-list-item.blade.php | 48 ++
    resources/views/settings/roles/index.blade.php | 43 +-
    resources/views/settings/roles/parts/asset-permissions-row.blade.php | 32 +
    resources/views/settings/roles/parts/form.blade.php | 192 +-----
    .../views/settings/roles/parts/related-asset-permissions-row.blade.php | 26 +
    resources/views/settings/roles/parts/roles-list-item.blade.php | 14 +
    resources/views/settings/webhooks/index.blade.php | 52 +-
    resources/views/settings/webhooks/parts/webhooks-list-item.blade.php | 18 +
    resources/views/shelves/index.blade.php | 6 +-
    resources/views/shelves/parts/form.blade.php | 12 +-
    resources/views/shelves/parts/list.blade.php | 6 +-
    resources/views/shelves/permissions.blade.php | 15 +-
    resources/views/shelves/show.blade.php | 19 +-
    resources/views/tags/index.blade.php | 41 +-
    resources/views/tags/parts/table-row.blade.php | 37 --
    resources/views/tags/parts/tags-list-item.blade.php | 31 +
    resources/views/users/api-tokens/parts/list.blade.php | 36 +-
    resources/views/users/index.blade.php | 59 +-
    resources/views/users/parts/form.blade.php | 5 +-
    resources/views/users/parts/users-list-item.blade.php | 27 +
    resources/views/users/preferences/parts/shortcut-control.blade.php | 12 +
    resources/views/users/preferences/shortcuts.blade.php | 75 +++
    routes/web.php | 48 +-
    tests/Actions/AuditLogTest.php | 33 +-
    tests/Actions/WebhookCallTest.php | 4 +-
    tests/Actions/WebhookFormatTesting.php | 12 +-
    tests/Api/AttachmentsApiTest.php | 50 +-
    tests/Api/BooksApiTest.php | 49 +-
    tests/Api/ChaptersApiTest.php | 19 +-
    tests/Api/PagesApiTest.php | 39 +-
    tests/Api/RecycleBinApiTest.php | 11 +-
    tests/Api/SearchApiTest.php | 6 +-
    tests/Api/UsersApiTest.php | 2 +-
    tests/Auth/AuthTest.php | 277 +--------
    tests/Auth/OidcTest.php | 31 +
    tests/Auth/RegistrationTest.php | 187 ++++++
    tests/Auth/ResetPasswordTest.php | 101 ++++
    tests/Auth/Saml2Test.php | 14 +
    tests/Auth/UserInviteTest.php | 2 +-
    tests/Commands/ClearActivityCommandTest.php | 4 +-
    tests/Commands/CopyShelfPermissionsCommandTest.php | 36 +-
    tests/Commands/RegenerateReferencesCommandTest.php | 4 +-
    tests/Commands/UpdateUrlCommandTest.php | 3 +-
    tests/Entity/BookShelfTest.php | 41 +-
    tests/Entity/BookTest.php | 67 ++-
    tests/Entity/ChapterTest.php | 22 +-
    tests/Entity/CommentSettingTest.php | 15 +-
    tests/Entity/CommentTest.php | 10 +-
    tests/Entity/ConvertTest.php | 14 +-
    tests/Entity/EntityAccessTest.php | 9 +-
    tests/Entity/EntitySearchTest.php | 131 ++--
    tests/Entity/ExportTest.php | 61 +-
    tests/Entity/PageContentTest.php | 75 ++-
    tests/Entity/PageDraftTest.php | 35 +-
    tests/Entity/PageEditorTest.php | 27 +-
    tests/Entity/PageRevisionTest.php | 162 ++---
    tests/Entity/PageTemplateTest.php | 6 +-
    tests/Entity/PageTest.php | 44 +-
    tests/Entity/SortTest.php | 102 ++--
    tests/Entity/TagTest.php | 32 +-
    tests/ErrorTest.php | 3 +-
    tests/FavouriteTest.php | 26 +-
    tests/Helpers/EntityProvider.php | 240 ++++++++
    tests/Helpers/TestServiceProvider.php | 26 +
    tests/HomepageTest.php | 22 +-
    tests/OpenGraphTest.php | 12 +-
    tests/Permissions/EntityOwnerChangeTest.php | 12 +-
    tests/Permissions/EntityPermissionsTest.php | 117 ++--
    tests/Permissions/ExportPermissionsTest.php | 10 +-
    tests/Permissions/RolesTest.php | 89 +--
    tests/PublicActionTest.php | 18 +-
    tests/References/CrossLinkParserTest.php | 7 +-
    tests/References/ReferencesTest.php | 62 +-
    tests/Settings/RecycleBinTest.php | 42 +-
    tests/TestCase.php | 147 ++---
    tests/ThemeTest.php | 38 +-
    tests/Uploads/AttachmentTest.php | 30 +-
    tests/Uploads/ImageTest.php | 59 +-
    tests/Uploads/UsesImages.php | 2 +-
    tests/UrlTest.php | 3 -
    tests/User/UserManagementTest.php | 20 +-
    tests/User/UserPreferencesTest.php | 81 ++-
    tests/User/UserProfileTest.php | 8 +-
    version | 2 +-
    640 files changed, 14779 insertions(+), 7154 deletions(-)
    create mode 100644 app/Actions/Queries/WebhooksAllPaginatedAndSorted.php
    create mode 100644 app/Api/ApiEntityListFormatter.php
    create mode 100644 app/Auth/Permissions/PermissionFormData.php
    create mode 100644 app/Auth/Queries/RolesAllPaginatedAndSorted.php
    rename app/Auth/Queries/{AllUsersPaginatedAndSorted.php => UsersAllPaginatedAndSorted.php} (63%)
    create mode 100644 app/Http/Controllers/Auth/ThrottlesLogins.php
    create mode 100644 app/Http/Controllers/PermissionsController.php
    create mode 100644 app/Http/Controllers/UserPreferencesController.php
    delete mode 100644 app/Providers/BroadcastServiceProvider.php
    delete mode 100644 app/Providers/CustomFacadeProvider.php
    delete mode 100644 app/Providers/PaginationServiceProvider.php
    rename app/Providers/{CustomValidationServiceProvider.php => ValidationRuleServiceProvider.php} (93%)
    create mode 100644 app/Providers/ViewTweaksServiceProvider.php
    create mode 100644 app/Settings/UserShortcutMap.php
    create mode 100644 app/Util/SimpleListOptions.php
    create mode 100644 database/migrations/2022_10_07_091406_flatten_entity_permissions_table.php
    create mode 100644 database/migrations/2022_10_08_104202_drop_entity_restricted_field.php
    delete mode 100644 dev/docs/components.md
    create mode 100644 dev/docs/development.md
    create mode 100644 dev/docs/javascript-code.md
    create mode 100644 dev/docs/release-process.md
    create mode 100644 resources/icons/groups.svg
    create mode 100644 resources/icons/role.svg
    create mode 100644 resources/icons/shortcuts.svg
    create mode 100644 resources/js/components/auto-submit.js
    create mode 100644 resources/js/components/component.js
    delete mode 100644 resources/js/components/entity-permissions-editor.js
    create mode 100644 resources/js/components/entity-permissions.js
    create mode 100644 resources/js/components/global-search.js
    create mode 100644 resources/js/components/pointer.js
    rename resources/js/components/{homepage-control.js => setting-homepage-control.js} (55%)
    create mode 100644 resources/js/components/shortcut-input.js
    create mode 100644 resources/js/components/shortcuts.js
    delete mode 100644 resources/js/components/sidebar.js
    create mode 100644 resources/js/markdown/actions.js
    create mode 100644 resources/js/markdown/codemirror.js
    create mode 100644 resources/js/markdown/common-events.js
    create mode 100644 resources/js/markdown/display.js
    create mode 100644 resources/js/markdown/editor.js
    create mode 100644 resources/js/markdown/markdown.js
    create mode 100644 resources/js/markdown/settings.js
    create mode 100644 resources/js/markdown/shortcuts.js
    create mode 100644 resources/js/services/components.js
    create mode 100644 resources/js/services/keyboard-navigation.js
    create mode 100644 resources/js/services/text.js
    create mode 100644 resources/js/wysiwyg/icons.js
    create mode 100644 resources/lang/ar/preferences.php
    create mode 100644 resources/lang/bg/preferences.php
    create mode 100644 resources/lang/bs/preferences.php
    create mode 100644 resources/lang/ca/preferences.php
    create mode 100644 resources/lang/cs/preferences.php
    create mode 100644 resources/lang/cy/preferences.php
    create mode 100644 resources/lang/da/preferences.php
    create mode 100644 resources/lang/de/preferences.php
    create mode 100644 resources/lang/de_informal/preferences.php
    create mode 100644 resources/lang/el/activities.php
    create mode 100644 resources/lang/el/auth.php
    create mode 100644 resources/lang/el/common.php
    create mode 100644 resources/lang/el/components.php
    create mode 100644 resources/lang/el/editor.php
    create mode 100644 resources/lang/el/entities.php
    create mode 100644 resources/lang/el/errors.php
    create mode 100644 resources/lang/el/pagination.php
    create mode 100644 resources/lang/el/passwords.php
    create mode 100644 resources/lang/el/preferences.php
    create mode 100644 resources/lang/el/settings.php
    create mode 100644 resources/lang/el/validation.php
    create mode 100644 resources/lang/en/preferences.php
    create mode 100644 resources/lang/es/preferences.php
    create mode 100644 resources/lang/es_AR/preferences.php
    create mode 100644 resources/lang/et/preferences.php
    create mode 100644 resources/lang/eu/preferences.php
    create mode 100644 resources/lang/fa/preferences.php
    create mode 100644 resources/lang/fr/preferences.php
    create mode 100644 resources/lang/he/preferences.php
    create mode 100644 resources/lang/hr/preferences.php
    create mode 100644 resources/lang/hu/preferences.php
    create mode 100644 resources/lang/id/preferences.php
    create mode 100644 resources/lang/it/preferences.php
    create mode 100644 resources/lang/ja/preferences.php
    create mode 100644 resources/lang/ka/activities.php
    create mode 100644 resources/lang/ka/auth.php
    create mode 100644 resources/lang/ka/common.php
    create mode 100644 resources/lang/ka/components.php
    create mode 100644 resources/lang/ka/editor.php
    create mode 100644 resources/lang/ka/entities.php
    create mode 100644 resources/lang/ka/errors.php
    create mode 100644 resources/lang/ka/pagination.php
    create mode 100644 resources/lang/ka/passwords.php
    create mode 100644 resources/lang/ka/preferences.php
    create mode 100644 resources/lang/ka/settings.php
    create mode 100644 resources/lang/ka/validation.php
    create mode 100644 resources/lang/ko/preferences.php
    create mode 100644 resources/lang/lt/preferences.php
    create mode 100644 resources/lang/lv/preferences.php
    create mode 100644 resources/lang/nb/preferences.php
    create mode 100644 resources/lang/nl/preferences.php
    create mode 100644 resources/lang/pl/preferences.php
    create mode 100644 resources/lang/pt/preferences.php
    create mode 100644 resources/lang/pt_BR/preferences.php
    create mode 100644 resources/lang/ro/preferences.php
    create mode 100644 resources/lang/ru/preferences.php
    create mode 100644 resources/lang/sk/preferences.php
    create mode 100644 resources/lang/sl/preferences.php
    create mode 100644 resources/lang/sv/preferences.php
    create mode 100644 resources/lang/tr/preferences.php
    create mode 100644 resources/lang/uk/preferences.php
    create mode 100644 resources/lang/uz/preferences.php
    create mode 100644 resources/lang/vi/preferences.php
    create mode 100644 resources/lang/zh_CN/preferences.php
    create mode 100644 resources/lang/zh_TW/preferences.php
    create mode 100644 resources/sass/_opacity.scss
    create mode 100644 resources/views/auth/parts/login-message.blade.php
    create mode 100644 resources/views/auth/parts/register-message.blade.php
    create mode 100644 resources/views/auth/register-confirm-accept.blade.php
    rename resources/views/{entities => common}/sort.blade.php (52%)
    create mode 100644 resources/views/common/status-indicator.blade.php
    create mode 100644 resources/views/form/entity-permissions-row.blade.php
    delete mode 100644 resources/views/form/restriction-checkbox.blade.php
    delete mode 100644 resources/views/pages/parts/revision-table-row.blade.php
    create mode 100644 resources/views/pages/parts/revisions-index-row.blade.php
    rename resources/views/search/parts/{entity-ajax-list.blade.php => entity-selector-list.blade.php} (100%)
    create mode 100644 resources/views/search/parts/entity-suggestion-list.blade.php
    create mode 100644 resources/views/settings/recycle-bin/parts/recycle-bin-list-item.blade.php
    create mode 100644 resources/views/settings/roles/parts/asset-permissions-row.blade.php
    create mode 100644 resources/views/settings/roles/parts/related-asset-permissions-row.blade.php
    create mode 100644 resources/views/settings/roles/parts/roles-list-item.blade.php
    create mode 100644 resources/views/settings/webhooks/parts/webhooks-list-item.blade.php
    delete mode 100644 resources/views/tags/parts/table-row.blade.php
    create mode 100644 resources/views/tags/parts/tags-list-item.blade.php
    create mode 100644 resources/views/users/parts/users-list-item.blade.php
    create mode 100644 resources/views/users/preferences/parts/shortcut-control.blade.php
    create mode 100644 resources/views/users/preferences/shortcuts.blade.php
    create mode 100644 tests/Auth/RegistrationTest.php
    create mode 100644 tests/Auth/ResetPasswordTest.php
    create mode 100644 tests/Helpers/EntityProvider.php
    create mode 100644 tests/Helpers/TestServiceProvider.php

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

@ssddanbrown
composer install --no-dev

@php -r "!file_exists('bootstrap/cache/services.php') || @Unlink('bootstrap/cache/services.php');"
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 0 installs, 39 updates, 1 removal

  • Downloading symfony/polyfill-iconv (v1.27.0)
  • Downloading symfony/polyfill-iconv (v1.27.0)
  • Downloading symfony/polyfill-iconv (v1.27.0)
  • Downloading symfony/polyfill-iconv (v1.27.0)
    Failed to download symfony/polyfill-iconv from dist: The "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695" file could not be written to /var/www/bookstack/vendor/composer/tmp-b79732bd58347c2b5a38f88c7406d586: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-iconv (v1.27.0) into cache
  • Downloading symfony/polyfill-php80 (v1.27.0)
  • Downloading symfony/polyfill-php80 (v1.27.0)
  • Downloading symfony/polyfill-php80 (v1.27.0)
  • Downloading symfony/polyfill-php80 (v1.27.0)
    Failed to download symfony/polyfill-php80 from dist: The "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" file could not be written to /var/www/bookstack/vendor/composer/tmp-297c8a4ca7e1999d2cc5e65a97990260: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-php80 (v1.27.0) into cache
  • Downloading symfony/polyfill-mbstring (v1.27.0)
  • Downloading symfony/polyfill-mbstring (v1.27.0)
  • Downloading symfony/polyfill-mbstring (v1.27.0)
  • Downloading symfony/polyfill-mbstring (v1.27.0)
    Failed to download symfony/polyfill-mbstring from dist: The "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534" file could not be written to /var/www/bookstack/vendor/composer/tmp-9307a74084204f6e44d970bab99a61bd: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-mbstring (v1.27.0) into cache
  • Downloading symfony/polyfill-ctype (v1.27.0)
  • Downloading symfony/polyfill-ctype (v1.27.0)
  • Downloading symfony/polyfill-ctype (v1.27.0)
  • Downloading symfony/polyfill-ctype (v1.27.0)
    Failed to download symfony/polyfill-ctype from dist: The "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a" file could not be written to /var/www/bookstack/vendor/composer/tmp-19fb76dce87e0c018a009ca2e50b8536: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-ctype (v1.27.0) into cache
  • Downloading vlucas/phpdotenv (v5.5.0)
  • Downloading vlucas/phpdotenv (v5.5.0)
  • Downloading vlucas/phpdotenv (v5.5.0)
  • Downloading vlucas/phpdotenv (v5.5.0)
    Failed to download vlucas/phpdotenv from dist: The "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" file could not be written to /var/www/bookstack/vendor/composer/tmp-01a3a92add3cfa7b29e67b3bab8ed1d9: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing vlucas/phpdotenv (v5.5.0) into cache
  • Downloading tijsverkoyen/css-to-inline-styles (2.2.5)
  • Downloading tijsverkoyen/css-to-inline-styles (2.2.5)
  • Downloading tijsverkoyen/css-to-inline-styles (2.2.5)
  • Downloading tijsverkoyen/css-to-inline-styles (2.2.5)
    Failed to download tijsverkoyen/css-to-inline-styles from dist: The "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19" file could not be written to /var/www/bookstack/vendor/composer/tmp-94526baf440403a809b4b48d4ecce599: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing tijsverkoyen/css-to-inline-styles (2.2.5) into cache
  • Downloading symfony/var-dumper (v5.4.14)
  • Downloading symfony/var-dumper (v5.4.14)
  • Downloading symfony/var-dumper (v5.4.14)
  • Downloading symfony/var-dumper (v5.4.14)
    Failed to download symfony/var-dumper from dist: The "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430" file could not be written to /var/www/bookstack/vendor/composer/tmp-242165efbd40e7ce5ca062ba74909d8f: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/var-dumper (v5.4.14) into cache
  • Downloading symfony/routing (v5.4.15)
  • Downloading symfony/routing (v5.4.15)
  • Downloading symfony/routing (v5.4.15)
  • Downloading symfony/routing (v5.4.15)
    Failed to download symfony/routing from dist: The "https://api.github.com/repos/symfony/routing/zipball/5c9b129efe9abce9470e384bf65d8a7e262eee69" file could not be written to /var/www/bookstack/vendor/composer/tmp-89ee8fba03a103ddf84e44ec395b00ed: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/routing (v5.4.15) into cache
  • Downloading symfony/polyfill-php72 (v1.27.0)
  • Downloading symfony/polyfill-php72 (v1.27.0)
  • Downloading symfony/polyfill-php72 (v1.27.0)
  • Downloading symfony/polyfill-php72 (v1.27.0)
    Failed to download symfony/polyfill-php72 from dist: The "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97" file could not be written to /var/www/bookstack/vendor/composer/tmp-496cdc5798585e02c4a114254d7a8e03: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-php72 (v1.27.0) into cache
  • Downloading symfony/polyfill-intl-normalizer (v1.27.0)
  • Downloading symfony/polyfill-intl-normalizer (v1.27.0)
  • Downloading symfony/polyfill-intl-normalizer (v1.27.0)
  • Downloading symfony/polyfill-intl-normalizer (v1.27.0)
    Failed to download symfony/polyfill-intl-normalizer from dist: The "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6" file could not be written to /var/www/bookstack/vendor/composer/tmp-8c59bcd8349c209c4a3b50b915e9c390: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-intl-normalizer (v1.27.0) into cache
  • Downloading symfony/polyfill-intl-idn (v1.27.0)
  • Downloading symfony/polyfill-intl-idn (v1.27.0)
  • Downloading symfony/polyfill-intl-idn (v1.27.0)
  • Downloading symfony/polyfill-intl-idn (v1.27.0)
    Failed to download symfony/polyfill-intl-idn from dist: The "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da" file could not be written to /var/www/bookstack/vendor/composer/tmp-6d5164af7a6d2c4f5e1d9b740dd55296: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-intl-idn (v1.27.0) into cache
  • Downloading symfony/mime (v5.4.14)
  • Downloading symfony/mime (v5.4.14)
  • Downloading symfony/mime (v5.4.14)
  • Downloading symfony/mime (v5.4.14)
    Failed to download symfony/mime from dist: The "https://api.github.com/repos/symfony/mime/zipball/1c118b253bb3495d81e95a6e3ec6c2766a98a0c4" file could not be written to /var/www/bookstack/vendor/composer/tmp-8dfa4fcea505f63dd32265756aa80ff4: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/mime (v5.4.14) into cache
  • Downloading symfony/polyfill-php73 (v1.27.0)
  • Downloading symfony/polyfill-php73 (v1.27.0)
  • Downloading symfony/polyfill-php73 (v1.27.0)
  • Downloading symfony/polyfill-php73 (v1.27.0)
    Failed to download symfony/polyfill-php73 from dist: The "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9" file could not be written to /var/www/bookstack/vendor/composer/tmp-43446fd5bb5312630cecdf63bfc6f6f5: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-php73 (v1.27.0) into cache
  • Downloading symfony/http-foundation (v5.4.15)
  • Downloading symfony/http-foundation (v5.4.15)
  • Downloading symfony/http-foundation (v5.4.15)
  • Downloading symfony/http-foundation (v5.4.15)
    Failed to download symfony/http-foundation from dist: The "https://api.github.com/repos/symfony/http-foundation/zipball/75bd663ff2db90141bfb733682459d5bbe9e29c3" file could not be written to /var/www/bookstack/vendor/composer/tmp-d386ba14224ce57839097668f2157c2c: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/http-foundation (v5.4.15) into cache
  • Downloading symfony/error-handler (v5.4.15)
  • Downloading symfony/error-handler (v5.4.15)
  • Downloading symfony/error-handler (v5.4.15)
  • Downloading symfony/error-handler (v5.4.15)
    Failed to download symfony/error-handler from dist: The "https://api.github.com/repos/symfony/error-handler/zipball/539cf1428b8442303c6e876ad7bf5a7babd91091" file could not be written to /var/www/bookstack/vendor/composer/tmp-f087dbfbc0aaaa9cfef459a5335f432a: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/error-handler (v5.4.15) into cache
  • Downloading symfony/http-kernel (v5.4.15)
  • Downloading symfony/http-kernel (v5.4.15)
  • Downloading symfony/http-kernel (v5.4.15)
  • Downloading symfony/http-kernel (v5.4.15)
    Failed to download symfony/http-kernel from dist: The "https://api.github.com/repos/symfony/http-kernel/zipball/fc63c8c3e1036d424820cc993a4ea163778dc5c7" file could not be written to /var/www/bookstack/vendor/composer/tmp-985e3af0a1db05264f356779dc8f9696: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/http-kernel (v5.4.15) into cache
  • Downloading symfony/polyfill-intl-grapheme (v1.27.0)
  • Downloading symfony/polyfill-intl-grapheme (v1.27.0)
  • Downloading symfony/polyfill-intl-grapheme (v1.27.0)
  • Downloading symfony/polyfill-intl-grapheme (v1.27.0)
    Failed to download symfony/polyfill-intl-grapheme from dist: The "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354" file could not be written to /var/www/bookstack/vendor/composer/tmp-ad048d17899231fb52691e0726c1dda7: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-intl-grapheme (v1.27.0) into cache
  • Downloading symfony/string (v5.4.15)
  • Downloading symfony/string (v5.4.15)
  • Downloading symfony/string (v5.4.15)
  • Downloading symfony/string (v5.4.15)
    Failed to download symfony/string from dist: The "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" file could not be written to /var/www/bookstack/vendor/composer/tmp-498534722e2e6cd7fa9acf6dddb00a4d: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/string (v5.4.15) into cache
  • Downloading symfony/console (v5.4.15)
  • Downloading symfony/console (v5.4.15)
  • Downloading symfony/console (v5.4.15)
  • Downloading symfony/console (v5.4.15)
    Failed to download symfony/console from dist: The "https://api.github.com/repos/symfony/console/zipball/ea59bb0edfaf9f28d18d8791410ee0355f317669" file could not be written to /var/www/bookstack/vendor/composer/tmp-b4aade45c7e21f60877f818f075c74d4: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/console (v5.4.15) into cache
  • Downloading symfony/polyfill-php81 (v1.27.0)
  • Downloading symfony/polyfill-php81 (v1.27.0)
  • Downloading symfony/polyfill-php81 (v1.27.0)
  • Downloading symfony/polyfill-php81 (v1.27.0)
    Failed to download symfony/polyfill-php81 from dist: The "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a" file could not be written to /var/www/bookstack/vendor/composer/tmp-48927e38881f42c0feab17af6efd7b3f: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/polyfill-php81 (v1.27.0) into cache
  • Downloading symfony/translation (v5.4.14)
  • Downloading symfony/translation (v5.4.14)
  • Downloading symfony/translation (v5.4.14)
  • Downloading symfony/translation (v5.4.14)
    Failed to download symfony/translation from dist: The "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab" file could not be written to /var/www/bookstack/vendor/composer/tmp-bdb4df825f646598f83b78c02846c7e7: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing symfony/translation (v5.4.14) into cache
  • Downloading nesbot/carbon (2.63.0)
  • Downloading nesbot/carbon (2.63.0)
  • Downloading nesbot/carbon (2.63.0)
  • Downloading nesbot/carbon (2.63.0)
    Failed to download nesbot/carbon from dist: The "https://api.github.com/repos/briannesbitt/Carbon/zipball/ad35dd71a6a212b98e4b87e97389b6fa85f0e347" file could not be written to /var/www/bookstack/vendor/composer/tmp-05011d4ccc83b63a96a9e476497fee7e: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing nesbot/carbon (2.63.0) into cache
  • Downloading league/flysystem (1.1.10)
  • Downloading league/flysystem (1.1.10)
  • Downloading league/flysystem (1.1.10)
  • Downloading league/flysystem (1.1.10)
    Failed to download league/flysystem from dist: The "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1" file could not be written to /var/www/bookstack/vendor/composer/tmp-75deb14da04e6bb8dbb17ce54a258011: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing league/flysystem (1.1.10) into cache
  • Downloading laravel/serializable-closure (v1.2.2)
  • Downloading laravel/serializable-closure (v1.2.2)
  • Downloading laravel/serializable-closure (v1.2.2)
  • Downloading laravel/serializable-closure (v1.2.2)
    Failed to download laravel/serializable-closure from dist: The "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae" file could not be written to /var/www/bookstack/vendor/composer/tmp-e65a6578eadfa4b7efac9da6ef1849f7: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing laravel/serializable-closure (v1.2.2) into cache
  • Downloading dragonmantank/cron-expression (v3.3.2)
  • Downloading dragonmantank/cron-expression (v3.3.2)
  • Downloading dragonmantank/cron-expression (v3.3.2)
  • Downloading dragonmantank/cron-expression (v3.3.2)
    Failed to download dragonmantank/cron-expression from dist: The "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8" file could not be written to /var/www/bookstack/vendor/composer/tmp-af2124337daa475347d08adc0aba2ac1: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing dragonmantank/cron-expression (v3.3.2) into cache
  • Downloading doctrine/inflector (2.0.6)
  • Downloading doctrine/inflector (2.0.6)
  • Downloading doctrine/inflector (2.0.6)
  • Downloading doctrine/inflector (2.0.6)
    Failed to download doctrine/inflector from dist: The "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" file could not be written to /var/www/bookstack/vendor/composer/tmp-510b191f1b7d0106a2bed80438d64483: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing doctrine/inflector (2.0.6) into cache
  • Downloading laravel/framework (v8.83.26)
  • Downloading laravel/framework (v8.83.26)
  • Downloading laravel/framework (v8.83.26)
  • Downloading laravel/framework (v8.83.26)
    Failed to download laravel/framework from dist: The "https://api.github.com/repos/laravel/framework/zipball/7411d9fa71c1b0fd73a33e225f14512b74e6c81e" file could not be written to /var/www/bookstack/vendor/composer/tmp-6aeb1cddb27009bb13dbc438494fb319: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing laravel/framework (v8.83.26) into cache
  • Downloading phenx/php-svg-lib (0.5.0)
  • Downloading phenx/php-svg-lib (0.5.0)
  • Downloading phenx/php-svg-lib (0.5.0)
  • Downloading phenx/php-svg-lib (0.5.0)
    Failed to download phenx/php-svg-lib from dist: The "https://api.github.com/repos/dompdf/php-svg-lib/zipball/76876c6cf3080bcb6f249d7d59705108166a6685" file could not be written to /var/www/bookstack/vendor/composer/tmp-e4327d5d829c255526e922527acd24ef: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing phenx/php-svg-lib (0.5.0) into cache
  • Downloading dompdf/dompdf (v2.0.1)
  • Downloading dompdf/dompdf (v2.0.1)
  • Downloading dompdf/dompdf (v2.0.1)
  • Downloading dompdf/dompdf (v2.0.1)
    Failed to download dompdf/dompdf from dist: The "https://api.github.com/repos/dompdf/dompdf/zipball/c5310df0e22c758c85ea5288175fc6cd777bc085" file could not be written to /var/www/bookstack/vendor/composer/tmp-a56a3567a92715add5e794d6a36eb49e: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing dompdf/dompdf (v2.0.1) into cache
  • Downloading doctrine/event-manager (1.2.0)
  • Downloading doctrine/event-manager (1.2.0)
  • Downloading doctrine/event-manager (1.2.0)
  • Downloading doctrine/event-manager (1.2.0)
    Failed to download doctrine/event-manager from dist: The "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520" file could not be written to /var/www/bookstack/vendor/composer/tmp-a3bcc5d9dc83b6e7214d309c12fbd862: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing doctrine/event-manager (1.2.0) into cache
  • Downloading doctrine/dbal (3.5.1)
  • Downloading doctrine/dbal (3.5.1)
  • Downloading doctrine/dbal (3.5.1)
  • Downloading doctrine/dbal (3.5.1)
    Failed to download doctrine/dbal from dist: The "https://api.github.com/repos/doctrine/dbal/zipball/f38ee8aaca2d58ee88653cb34a6a3880c23f38a5" file could not be written to /var/www/bookstack/vendor/composer/tmp-9421ecf102f82270f5fec56f23b4583b: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing doctrine/dbal (3.5.1) into cache
  • Downloading filp/whoops (2.14.6)
  • Downloading filp/whoops (2.14.6)
  • Downloading filp/whoops (2.14.6)
  • Downloading filp/whoops (2.14.6)
    Failed to download filp/whoops from dist: The "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da" file could not be written to /var/www/bookstack/vendor/composer/tmp-a607800631d892639449c21d410ee4ba: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing filp/whoops (2.14.6) into cache
  • Downloading guzzlehttp/psr7 (2.4.3)
  • Downloading guzzlehttp/psr7 (2.4.3)
  • Downloading guzzlehttp/psr7 (2.4.3)
  • Downloading guzzlehttp/psr7 (2.4.3)
    Failed to download guzzlehttp/psr7 from dist: The "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d" file could not be written to /var/www/bookstack/vendor/composer/tmp-525537f47217fabcadddd1ab5144cdf0: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing guzzlehttp/psr7 (2.4.3) into cache
  • Downloading laravel/socialite (v5.5.6)
  • Downloading laravel/socialite (v5.5.6)
  • Downloading laravel/socialite (v5.5.6)
  • Downloading laravel/socialite (v5.5.6)
    Failed to download laravel/socialite from dist: The "https://api.github.com/repos/laravel/socialite/zipball/1cd1682b709b8808a5b5dbb68179a58d1342aa7b" file could not be written to /var/www/bookstack/vendor/composer/tmp-1a1920ccabce1dc6a181166495f01cb0: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing laravel/socialite (v5.5.6) into cache
  • Downloading nikic/php-parser (v4.15.2)
  • Downloading nikic/php-parser (v4.15.2)
  • Downloading nikic/php-parser (v4.15.2)
  • Downloading nikic/php-parser (v4.15.2)
    Failed to download nikic/php-parser from dist: The "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" file could not be written to /var/www/bookstack/vendor/composer/tmp-12e985414108bb70b728e57d401ba99e: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing nikic/php-parser (v4.15.2) into cache
  • Downloading psy/psysh (v0.11.9)
  • Downloading psy/psysh (v0.11.9)
  • Downloading psy/psysh (v0.11.9)
  • Downloading psy/psysh (v0.11.9)
    Failed to download psy/psysh from dist: The "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778" file could not be written to /var/www/bookstack/vendor/composer/tmp-f7be6f87b6a0597f7db3f1f92be4b237: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing psy/psysh (v0.11.9) into cache
  • Downloading laravel/tinker (v2.7.3)
  • Downloading laravel/tinker (v2.7.3)
  • Downloading laravel/tinker (v2.7.3)
  • Downloading laravel/tinker (v2.7.3)
    Failed to download laravel/tinker from dist: The "https://api.github.com/repos/laravel/tinker/zipball/5062061b4924af3392225dd482ca7b4d85d8b8ef" file could not be written to /var/www/bookstack/vendor/composer/tmp-ef7d025809c212d532c894adea2d954f: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing laravel/tinker (v2.7.3) into cache
  • Downloading aws/aws-sdk-php (3.247.1)
  • Downloading aws/aws-sdk-php (3.247.1)
  • Downloading aws/aws-sdk-php (3.247.1)
  • Downloading aws/aws-sdk-php (3.247.1)
    Failed to download aws/aws-sdk-php from dist: The "https://api.github.com/repos/aws/aws-sdk-php/zipball/337e447997148b9e5024c2d0ae69618b1cbf80d6" file could not be written to /var/www/bookstack/vendor/composer/tmp-d0cbacc884eed31b734928ae3f5e2128: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing aws/aws-sdk-php (3.247.1) into cache
  • Downloading phpseclib/phpseclib (3.0.17)
  • Downloading phpseclib/phpseclib (3.0.17)
  • Downloading phpseclib/phpseclib (3.0.17)
  • Downloading phpseclib/phpseclib (3.0.17)
    Failed to download phpseclib/phpseclib from dist: The "https://api.github.com/repos/phpseclib/phpseclib/zipball/dbc2307d5c69aeb22db136c52e91130d7f2ca761" file could not be written to /var/www/bookstack/vendor/composer/tmp-31c01ceb0d65fb9f8f31cd6ab01d4ab2: failed to open stream: Permission denied
    Now trying to download from source
  • Syncing phpseclib/phpseclib (3.0.17) into cache
  • Removing laravel/ui (v3.4.6)
  • Removing symfony/polyfill-iconv (v1.26.0)
  • Removing symfony/polyfill-php80 (v1.26.0)
  • Removing symfony/polyfill-mbstring (v1.26.0)
  • Removing symfony/polyfill-ctype (v1.26.0)
  • Removing vlucas/phpdotenv (v5.4.1)
  • Removing tijsverkoyen/css-to-inline-styles (2.2.4)
    Update of symfony/var-dumper failed
  • Removing symfony/routing (v5.4.11)
  • Removing symfony/polyfill-php72 (v1.26.0)
  • Removing symfony/polyfill-intl-normalizer (v1.26.0)
  • Removing symfony/polyfill-intl-idn (v1.26.0)
  • Removing symfony/mime (v5.4.12)
  • Removing symfony/polyfill-php73 (v1.26.0)
  • Removing symfony/http-foundation (v5.4.12)
    Update of symfony/error-handler failed
  • Removing symfony/http-kernel (v5.4.12)
  • Removing symfony/polyfill-intl-grapheme (v1.26.0)
  • Removing symfony/string (v5.4.12)
  • Removing symfony/console (v5.4.12)
  • Removing symfony/polyfill-php81 (v1.26.0)
  • Removing symfony/translation (v5.4.12)
    Update of nesbot/carbon failed
  • Removing league/flysystem (1.1.9)
  • Removing laravel/serializable-closure (v1.2.1)
  • Removing dragonmantank/cron-expression (v3.3.1)
  • Removing doctrine/inflector (2.0.4)
  • Removing laravel/framework (v8.83.23)
  • Removing phenx/php-svg-lib (0.4.1)
  • Removing dompdf/dompdf (v2.0.0)
  • Removing doctrine/event-manager (1.1.2)
    Update of doctrine/dbal failed
  • Removing filp/whoops (2.14.5)
  • Removing guzzlehttp/psr7 (2.4.1)
  • Removing laravel/socialite (v5.5.5)
    Update of nikic/php-parser failed
    Update of psy/psysh failed
  • Removing laravel/tinker (v2.7.2)
  • Removing aws/aws-sdk-php (3.235.1)
  • Removing phpseclib/phpseclib (3.0.15)
    Uninstall of laravel/ui failed
    Update of symfony/polyfill-iconv failed
    Update of symfony/polyfill-php80 failed
    Update of symfony/polyfill-mbstring failed
    Update of symfony/polyfill-ctype failed
    Update of vlucas/phpdotenv failed
    Update of tijsverkoyen/css-to-inline-styles failed
    Update of symfony/routing failed
    Update of symfony/polyfill-php72 failed
    Update of symfony/polyfill-intl-normalizer failed
    0/24 [>---------------------------] 0% Update of symfony/polyfill-intl-idn failed
    Update of symfony/polyfill-php73 failed
    Update of symfony/polyfill-intl-grapheme failed
    3/24 [===>------------------------] 12% Update of symfony/mime failed
    Update of symfony/http-foundation failed
    Update of symfony/string failed
    Update of symfony/console failed
    Update of symfony/polyfill-php81 failed
    Update of symfony/translation failed
    Update of symfony/http-kernel failed
    Update of league/flysystem failed
    Update of laravel/serializable-closure failed
    Update of dragonmantank/cron-expression failed
    Update of phenx/php-svg-lib failed
    Update of doctrine/inflector failed
    Update of dompdf/dompdf failed
    Update of doctrine/event-manager failed
    Update of guzzlehttp/psr7 failed
    Update of laravel/socialite failed
    Update of laravel/tinker failed
    Update of filp/whoops failed
    21/24 [========================>---] 87% Update of phpseclib/phpseclib failed
    Update of laravel/framework failed
    23/24 [==========================>-] 95% Update of aws/aws-sdk-php failed
    24/24 [============================] 100%

[RuntimeException]
Could not delete /var/www/bookstack/vendor/bin/var-dump-server:

install [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--dry-run] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-scripts] [--no-progress] [--no-install] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] []...

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

sudo php artisan migrate


  • Application In Production!     *
    

Do you really wish to run this command? (yes/no) [no]:

yes

Migrating: 2022_07_16_170051_drop_joint_permission_type
Migrated: 2022_07_16_170051_drop_joint_permission_type (15,988.30ms)
Migrating: 2022_08_17_092941_create_references_table

In Connection.php line 712:

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'references' already exists (SQL: create table refe rences (id bigint unsigned not null auto_increment primary key, from_id int unsigned not null, from_type var
char(25) not null, to_id int unsigned not null, to_type varchar(25) not null) default character set utf8mb4 col
late 'utf8mb4_unicode_ci')

In Connection.php line 501:

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'references' already exists

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

@ssddanbrown I realise I've given you what was outputted when the update was initially run. Do you need me to re-run the above and provide outputs?

@ssddanbrown
Copy link
Member

Okay, looks like there are a couple of issues at play right now:

  1. The composer install --no-dev step is not completing properly due to permission errors. The vendor/ folder in the BookStack directory needs to be fully writable by the user running the command.
  2. The database migration is failing since the database state is not as expected. Hard to state why this is occuring, but it's most common when an upgrade has been attempted before but has failed for another reason. Could also be related to the failing step above or the originally altered files.

To fix 1, you'll need to run the command with a more privileged user (or via sudo for example) or update the permissions of all in that folder. Let me know if you need guidance on that, just confirm the user used to run commands.

To fix 2, You'd need to drop the references table in the bookstack database. Let me know if you need guidance on this. Ideally backup the system/database before attempting any changes.

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

Thanks @ssddanbrown.

Could you provide some guidance on fix 2. Backing up database and files I can do, but SQL is a weak point.

I have a checkpoint of Ubuntu install prior to the updated. So I'll roll back to this and elevate the composer install --no-dev step.

Many thanks in advance.

@ssddanbrown
Copy link
Member

Sure. In the below, replaced any <variables> marked as so, including the angled quotes.
Use the variables from your /var/www/bookstack/.env file.

# Login to MySQL
mysql -u <database_username> -p<database_password>

# Enter the BookStack database
use <database_name>;

# Drop the references table
drop table references;

# Exit MySQL
exit;

Then re-run the update commands if all was successfull.
Upon any error, record and report back the first error without progressing. Errors can be different a second time around so it's important we see the first errors.

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

Hi @ssddanbrown,

Dropping that table worked and I was able to run sudo php artisan migrate. However, now I have the same issue as before (when I updated to 22.09.01) wherein there are a large number of Books, Chapters and Pages missing.

Restoring the database then just takes me back to the above errors again. :)

@ssddanbrown
Copy link
Member

However, now I have the same issue as before (when I updated to 22.09.01) wherein there are a large number of Books, Chapters and Pages missing.

Okay, this indicates that the database might have been out of sync with the codebase before, which may have led to the further errors you've solved above. This is just a case of the permission handling though, regenerating the "cached" permissions via this command should solve this particular issue. Just need to run this from your BookStack folder.

php artisan bookstack:regenerate-permissions

@patsyk1
Copy link
Author

patsyk1 commented Dec 15, 2022

Brilliant - that's done it. Many thanks, @ssddanbrown. Very much appreciate the quick responses and help here.

Bookstack is a great product so I look forward to seeing future updates and watching it grow in popularity!

@ssddanbrown
Copy link
Member

Awesome, Good to hear! Will therefore close this off.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants