diff --git a/assets/vue/components/page/Form.vue b/assets/vue/components/page/Form.vue
index caa97b81d8..3d72a16633 100644
--- a/assets/vue/components/page/Form.vue
+++ b/assets/vue/components/page/Form.vue
@@ -11,18 +11,17 @@
/>
-
+
-
-
-
+
{
+ axios.get(ENTRYPOINT + 'pages.json?category.title=home&enabled=1').then(response => {
if (Array.isArray(response.data)) {
state.pages = response.data;
}
diff --git a/assets/vue/views/page/Create.vue b/assets/vue/views/page/Create.vue
index 5c5d332177..76c76b606f 100644
--- a/assets/vue/views/page/Create.vue
+++ b/assets/vue/views/page/Create.vue
@@ -32,7 +32,9 @@ export default {
},
data() {
return {
- item: {}
+ item: {
+ enabled: true
+ }
};
},
computed: {
diff --git a/assets/vue/views/page/List.vue b/assets/vue/views/page/List.vue
index bf89d0c30c..697f85c166 100644
--- a/assets/vue/views/page/List.vue
+++ b/assets/vue/views/page/List.vue
@@ -10,10 +10,10 @@
{{ $t('New page') }}
-
+
+
+
+
@@ -53,6 +53,7 @@
+
diff --git a/public/main/admin/index.php b/public/main/admin/index.php
index 2285e807bd..db38c52ded 100644
--- a/public/main/admin/index.php
+++ b/public/main/admin/index.php
@@ -339,6 +339,7 @@ if (api_is_platform_admin()) {
$items[] = ['url' => 'settings.php?category=Plugins', 'label' => get_lang('Plugins')];
$items[] = ['url' => 'settings.php?category=Regions', 'label' => get_lang('Regions')];
$items[] = ['url' => 'system_announcements.php', 'label' => get_lang('Portal news')];
+ $items[] = ['url' => '/resources/pages', 'label' => get_lang('Pages')];
$items[] = [
'url' => api_get_path(WEB_CODE_PATH).'calendar/agenda_js.php?type=admin',
'label' => get_lang('Global agenda'),
diff --git a/src/CoreBundle/DataProvider/Extension/PageExtension.php b/src/CoreBundle/DataProvider/Extension/PageExtension.php
index 605e7bd56f..646ac31672 100644
--- a/src/CoreBundle/DataProvider/Extension/PageExtension.php
+++ b/src/CoreBundle/DataProvider/Extension/PageExtension.php
@@ -62,5 +62,9 @@ final class PageExtension implements QueryCollectionExtensionInterface //, Query
->setParameter('locale', $request->getLocale())
;
}
+
+ if (!$this->security->isGranted('ROLE_ADMIN')) {
+ $qb->andWhere("$alias.enabled = 1");
+ }
}
}
diff --git a/src/CoreBundle/Entity/Page.php b/src/CoreBundle/Entity/Page.php
index 8fec3e5d01..77235f65c5 100644
--- a/src/CoreBundle/Entity/Page.php
+++ b/src/CoreBundle/Entity/Page.php
@@ -26,7 +26,7 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ApiResource(
collectionOperations: [
'get' => [
- 'security' => "is_granted('ROLE_USER')",
+ //'security' => "is_granted('ROLE_USER')",
],
'post' => [
'security' => "is_granted('ROLE_ADMIN')",
@@ -54,6 +54,7 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ApiFilter(SearchFilter::class, properties: [
'locale' => 'exact',
'url' => 'exact',
+ 'enabled' => 'exact',
'category' => 'exact',
'category.title' => 'partial',
])]