Pārlūkot izejas kodu

update reset-perms command to mask user created pages for standars users

Olivier Massot 8 mēneši atpakaļ
vecāks
revīzija
49400ed24c
1 mainītis faili ar 16 papildinājumiem un 5 dzēšanām
  1. 16 5
      ot_admin/Classes/Controller/SiteController.php

+ 16 - 5
ot_admin/Classes/Controller/SiteController.php

@@ -92,6 +92,7 @@ class SiteController extends ActionController
     ];
 
     // access permissions
+    private const PERM_NONE = 0;
     private const PERM_SHOW = 1;
     private const PERM_EDIT_CONTENT = 16;
     private const PERM_EDIT_PAGE = 2;
@@ -1749,7 +1750,9 @@ class SiteController extends ActionController
         // @see https://gitlab.2iopenservice.com/opentalent/ot_typo3/-/blob/master/doc/be_users.md?ref_type=heads
         foreach ($pages as $page) {
 
-            if ($page['ot_page_type'] === OtPageTypeEnum::ROOT) {
+            $hidden = $page['hidden'];
+
+            if ($page['ot_page_type'] === OtPageTypeEnum::ROOT->value) {
 
                 $adminPerms = self::PERM_SHOW + self::PERM_EDIT_CONTENT + self::PERM_EDIT_PAGE;
                 $editorsPerms = self::PERM_SHOW + self::PERM_EDIT_CONTENT + self::PERM_EDIT_PAGE;
@@ -1758,7 +1761,7 @@ class SiteController extends ActionController
                     $editorsPerms += self::PERM_NEW;
                 }
 
-            } else if ($page['ot_page_type'] === OtPageTypeEnum::MANDATORY_NON_EDITABLE) {
+            } else if ($page['ot_page_type'] === OtPageTypeEnum::MANDATORY_NON_EDITABLE->value) {
                 $adminPerms = self::PERM_SHOW;
                 $editorsPerms = self::PERM_SHOW;
                 if ($isPremium)  {
@@ -1766,14 +1769,21 @@ class SiteController extends ActionController
                     $editorsPerms += self::PERM_NEW;
                 }
 
-            } else if ($page['ot_page_type'] === OtPageTypeEnum::MANDATORY_EDITABLE) {
+            } else if ($page['ot_page_type'] === OtPageTypeEnum::MANDATORY_EDITABLE->value) {
                 $adminPerms = self::PERM_SHOW;
                 $editorsPerms = self::PERM_SHOW;
-                if ($isPremium)  {
+                if ($isPremium) {
                     $adminPerms += self::PERM_NEW + self::PERM_EDIT_PAGE;
                     $editorsPerms += self::PERM_NEW + self::PERM_EDIT_PAGE;
                 }
 
+            } else if ($page['ot_page_type'] === OtPageTypeEnum::USER_CREATED->value && !$isPremium) {
+                // Un utilisateur standard ne peut pas créer de nouvelles pages; les pages créées précédemment
+                // avec une version premium doivent être inaccessibles.
+                $adminPerms = self::PERM_NONE;
+                $editorsPerms = self::PERM_NONE;
+                $hidden = 1;
+
             } else {
                 $adminPerms = self::PERM_SHOW + self::PERM_EDIT_CONTENT + self::PERM_EDIT_PAGE;
                 if ($isPremium)  {
@@ -1794,7 +1804,8 @@ class SiteController extends ActionController
                 ->set('perms_groupid', $editorsGroupUid)
                 ->set('perms_user', $adminPerms)
                 ->set('perms_group', $editorsPerms)
-                ->set('perms_everybody', 0)
+                ->set('perms_everybody', self::PERM_NONE)
+                ->set('hidden', $hidden)
                 ->execute();
         }