| @@ -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.13'; | |
| 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, |
| @@ -468,8 +468,31 @@ | ||
| 468 | 468 | $this->wordpress->addFilter('edit_post_link', [$frontendPostController, 'showEditLink'], 10, 2); |
| 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 | + | |
| 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 | + | |
| 482 | + foreach ((array) $this->objectHandler->getPostTypes() as $postType) { | |
| 483 | + $this->wordpress->addFilter( | |
| 484 | + "rest_prepare_$postType", | |
| 485 | + [$frontendPostController, 'restrictRestResponse'], | |
| 486 | + 10, | |
| 487 | + 3 | |
| 488 | + ); | |
| 489 | + $this->wordpress->addFilter( | |
| 490 | + "rest_{$postType}_query", | |
| 491 | + [$frontendPostController, 'excludeRestrictedPostsFromRestQuery'] | |
| 492 | + ); | |
| 493 | + } | |
| 494 | + }); | |
| 472 | 495 | |
| 473 | 496 | // Short code controller |
| 474 | 497 | $frontendShortCodeController = $this->controllerFactory->createFrontendShortCodeController(); |
| 475 | 498 | |