]> BookStack Code Mirror - bookstack/commit
Permissions: Updated generation querying to be more efficient
authorDan Brown <redacted>
Sat, 23 Dec 2023 13:35:57 +0000 (13:35 +0000)
committerDan Brown <redacted>
Sat, 23 Dec 2023 13:35:57 +0000 (13:35 +0000)
commit02d94c87985eda533a4495e33191ef03e704a11c
tree6c80dc6ea90e7e354678bec8e8f0117bfa9d8448
parent88ee33ee49c0c920d8ad3fb1161fe27b62c64004
Permissions: Updated generation querying to be more efficient

Query of existing entity permissions during view permission generation
could cause timeouts or SQL placeholder limits due to massive whereOr
query generation, where an "or where" clause would be created for each
entity type/id combo involved, which could be all within 20 books.

This updates the query handling to use a query per type involved, with
no "or where"s, and to be chunked at large entity counts.

Also tweaked role-specific permission regen to chunk books at
half-previous rate to prevent such a large scope being involved on each
chunk.

For #4695
app/Permissions/EntityPermissionEvaluator.php
app/Permissions/JointPermissionBuilder.php
database/seeders/LargeContentSeeder.php