|
|
@@ -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();
|
|
|
}
|
|
|
|