Index: trunk/core/units/permissions/permissions_event_handler.php =================================================================== diff -u -N -r6625 -r7391 --- trunk/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 6625) +++ trunk/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 7391) @@ -30,7 +30,9 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); - $permissions_helper->LoadPermissions($group_id, $category_id, 0); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($group_id, $category_id, 0, 'c'); // format: ['inherited'] || ['value'] @@ -96,7 +98,9 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $group_id = $this->Application->GetVar('g_id'); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); - $permissions_helper->LoadPermissions($group_id, 0, 1); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($group_id, 0, 1, 'g'); $delete_ids = Array(); $create_sql = Array(); @@ -106,7 +110,15 @@ if($new_id > 0) $new_id = 0; --$new_id; + $sections_helper =& $this->Application->recallObject('SectionsHelper'); foreach ($permissions as $section_name => $section_permissions) { + $section_data =& $sections_helper->getSectionData($section_name); + + if ($section_data && isset($section_data['perm_prefix'])) { + // using permission from other prefix + $section_name = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection'); + } + foreach ($section_permissions as $perm_name => $perm_value) { if (!$permissions_helper->isOldPermission($section_name, $perm_name)) {