Skip to content
This repository was archived by the owner on Mar 13, 2026. It is now read-only.

Commit 058baf2

Browse files
authored
Merge pull request #3718 from zikula/3694
fixes for #3694
2 parents 30d36e6 + 3b174de commit 058baf2

File tree

4 files changed

+44
-2
lines changed

4 files changed

+44
-2
lines changed

src/lib/legacy/dbobject/CategoryArray.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,18 @@ public function selectPostProcess($objArray = null)
7575
if (!$objArray) {
7676
return $objArray;
7777
}
78+
/** @var \Doctrine\Common\Persistence\ObjectManager $manager */
79+
$manager = ServiceUtil::get('doctrine')->getManager();
7880

7981
foreach ($objArray as $k => $obj) {
8082
$objArray[$k]['display_name'] = DataUtil::formatForDisplayHTML(unserialize($obj['display_name']));
8183
$objArray[$k]['display_desc'] = DataUtil::formatForDisplayHTML(unserialize($obj['display_desc']));
84+
/**
85+
* ugly BC hack
86+
*/
87+
$entity = $manager->getRepository(\Zikula\CategoriesModule\Entity\CategoryEntity::class)->find($k);
88+
$objArray[$k]['path'] = $entity->getPath();
89+
$objArray[$k]['ipath'] = $entity->getIPath();
8290
}
8391

8492
return $objArray;

src/lib/legacy/util/CategoryUtil.php

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,31 @@ public static function rebuildPaths($pathField = 'path', $sourceField = 'name',
687687
public static function hasCategoryAccess($categories, $module, $permLevel = ACCESS_OVERVIEW)
688688
{
689689
@trigger_error('CategoryUtil is deprecated. please use the new category permission api instead.', E_USER_DEPRECATED);
690-
691-
return ServiceUtil::get('zikula_categories_module.api.category_permission')->hasCategoryAccess($categories, $permLevel);
690+
// Always allow access to content with no categories associated
691+
if (count($categories) == 0) {
692+
return true;
693+
}
694+
695+
// Check if access is required for all categories or for at least one category
696+
$requireAccessForAll = \ModUtil::getVar('ZikulaCategoriesModule', 'permissionsall', 0);
697+
698+
$accessGranted = true;
699+
foreach ($categories as $propertyName => $cats) {
700+
$categoriesForProperty = is_array($cats) ? $cats : [$cats];
701+
foreach ($categoriesForProperty as $cat) {
702+
$hasAccess = \SecurityUtil::checkPermission("ZikulaCategoriesModule:$propertyName:Category", "$cat[id]:$cat[path]:$cat[ipath]", $permLevel);
703+
if ($requireAccessForAll && !$hasAccess) {
704+
return false;
705+
}
706+
if (!$requireAccessForAll) {
707+
if ($hasAccess) {
708+
return true;
709+
}
710+
$accessGranted = false;
711+
}
712+
}
713+
}
714+
715+
return $accessGranted;
692716
}
693717
}

src/lib/legacy/util/UserUtil.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1448,6 +1448,14 @@ public static function getTheme($force = false)
14481448
$request->attributes->set('_theme', $themeName);
14491449

14501450
return $themeName;
1451+
} else {
1452+
// on upgrade, if a user doesn't add their custom theme back to the /theme dir, it should be reset to a core
1453+
// theme, if available.
1454+
if (ServiceUtil::get('kernel')->isBundle('ZikulaBootstrapTheme')) {
1455+
System::setVar('Default_Theme', 'ZikulaBootstrapTheme');
1456+
1457+
return 'ZikulaBootstrapTheme';
1458+
}
14511459
}
14521460

14531461
if (\ServiceUtil::getManager()->getParameter('installed')) {

src/system/CategoriesModule/tables.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ function ZikulaCategoriesModule_tables()
4040
'status' => 'status'
4141
];
4242
ObjectUtil::addStandardFieldsToTableDefinition($columns);
43+
unset($columns['obj_status']);
4344
$dbtable['categories_category_column'] = $columns;
4445

4546
// Enable attribution services
@@ -68,6 +69,7 @@ function ZikulaCategoriesModule_tables()
6869
'status' => "C(1) NOTNULL DEFAULT 'A'"
6970
];
7071
ObjectUtil::addStandardFieldsToTableDataDefinition($tabledef);
72+
unset($tabledef['obj_status']);
7173
$dbtable['categories_category_column_def'] = $tabledef;
7274

7375
$table = 'categories_mapmeta';

0 commit comments

Comments
 (0)