| @@ -7,19 +7,19 @@ | ||
| 7 | 7 | use UserAccessManager\Access\AccessHandler; |
| 8 | 8 | use UserAccessManager\Cache\Cache; |
| 9 | 9 | use UserAccessManager\Cache\CacheProviderFactory; |
| 10 | 10 | use UserAccessManager\Config\ConfigFactory; |
| 11 | -use UserAccessManager\Config\ConfigParameterFactory; | |
| 11 | +use UserAccessManager\Config\Parameter\ConfigParameterFactory; | |
| 12 | 12 | use UserAccessManager\Config\MainConfig; |
| 13 | -use UserAccessManager\Controller\Backend\DynamicGroupsController; | |
| 14 | -use UserAccessManager\Controller\Backend\PostObjectController; | |
| 15 | -use UserAccessManager\Controller\Backend\TermObjectController; | |
| 16 | -use UserAccessManager\Controller\Backend\UserObjectController; | |
| 13 | +use UserAccessManager\Controller\Backend\ObjectMembership\DynamicGroupsController; | |
| 14 | +use UserAccessManager\Controller\Backend\ObjectMembership\PostObjectController; | |
| 15 | +use UserAccessManager\Controller\Backend\ObjectMembership\TermObjectController; | |
| 16 | +use UserAccessManager\Controller\Backend\ObjectMembership\UserObjectController; | |
| 17 | 17 | use UserAccessManager\Controller\ControllerFactory; |
| 18 | 18 | use UserAccessManager\Database\Database; |
| 19 | 19 | use UserAccessManager\File\FileHandler; |
| 20 | -use UserAccessManager\File\FileObjectFactory; | |
| 21 | -use UserAccessManager\File\FileProtectionFactory; | |
| 20 | +use UserAccessManager\File\Delivery\FileObjectFactory; | |
| 21 | +use UserAccessManager\File\Protection\FileProtectionFactory; | |
| 22 | 22 | use UserAccessManager\Object\ObjectHandler; |
| 23 | 23 | use UserAccessManager\ObjectMembership\ObjectMembershipHandlerFactory; |
| 24 | 24 | use UserAccessManager\Setup\SetupHandler; |
| 25 | 25 | use UserAccessManager\User\UserHandler; |
| @@ -31,10 +31,10 @@ | ||
| 31 | 31 | use UserAccessManager\Wrapper\Wordpress; |
| 32 | 32 | |
| 33 | 33 | class UserAccessManager |
| 34 | 34 | { |
| 35 | - public const VERSION = '2.3.14'; | |
| 36 | - public const DB_VERSION = '1.6.2'; | |
| 35 | + public const VERSION = UAM_VERSION; | |
| 36 | + public const DB_VERSION = '1.6.3'; | |
| 37 | 37 | |
| 38 | 38 | public function __construct( |
| 39 | 39 | private Php $php, |
| 40 | 40 | private Wordpress $wordpress, |
| @@ -469,10 +469,17 @@ | ||
| 469 | 469 | $this->wordpress->addFilter('parse_query', [$frontendPostController, 'parseQuery']); |
| 470 | 470 | $this->wordpress->addFilter('getarchives_where', [$frontendPostController, 'showPostSql']); |
| 471 | 471 | $this->wordpress->addFilter('wp_count_posts', [$frontendPostController, 'showPostCount'], 10, 3); |
| 472 | 472 | |
| 473 | - // Registered on rest_api_init so that all REST-enabled post types are known. | |
| 474 | 473 | $this->wordpress->addAction('rest_api_init', function () use ($frontendPostController) { |
| 474 | + //Runs first, so that no access check caches the context before the guard. | |
| 475 | + $this->wordpress->addFilter( | |
| 476 | + 'rest_pre_dispatch', | |
| 477 | + [$frontendPostController, 'restrictRestRequest'], | |
| 478 | + 1, | |
| 479 | + 3 | |
| 480 | + ); | |
| 481 | + | |
| 475 | 482 | foreach ((array) $this->objectHandler->getPostTypes() as $postType) { |
| 476 | 483 | $this->wordpress->addFilter( |
| 477 | 484 | "rest_prepare_$postType", |
| 478 | 485 | [$frontendPostController, 'restrictRestResponse'], |