Index: branches/5.2.x/core/units/permissions/permissions_event_handler.php =================================================================== diff -u -N -r14244 -r14628 --- branches/5.2.x/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 14244) +++ branches/5.2.x/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 14628) @@ -1,6 +1,6 @@ Application->CheckPermission('in-portal:user_groups.advanced:manage_permissions', 1)) { + if ( !$this->Application->CheckPermission('in-portal:user_groups.advanced:manage_permissions', 1) ) { // no permission to save permissions - return false; + return ; } $permissions = $this->Application->GetVar($event->getPrefixSpecial(true)); - if (!$permissions) { - return false; + if ( !$permissions ) { + return ; } - $object =& $event->getObject( Array('skip_autoload' => true) ); + $object =& $event->getObject( Array ('skip_autoload' => true) ); + /* @var $object kDBItem */ + $group_id = $this->Application->GetVar('g_id'); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); /* @var $permissions_helper kPermissionsHelper */ $permissions_helper->LoadPermissions($group_id, 0, 1, 'g'); - $delete_ids = Array(); - $create_sql = Array(); - $create_mask = '(%s,%s,'.$group_id.',%s,1,0)'; + $delete_ids = $create_sql = Array (); + $create_mask = '(%s,%s,' . $group_id . ',%s,1,0)'; - $new_id = (int)$this->Conn->GetOne('SELECT MIN('.$object->IDField.') FROM '.$object->TableName); - if($new_id > 0) $new_id = 0; + $new_id = (int)$this->Conn->GetOne('SELECT MIN(' . $object->IDField . ') FROM ' . $object->TableName); + if ( $new_id > 0 ) { + $new_id = 0; + } --$new_id; $sections_helper =& $this->Application->recallObject('SectionsHelper'); + /* @var $sections_helper kSectionsHelper */ + foreach ($permissions as $section_name => $section_permissions) { $section_data =& $sections_helper->getSectionData($section_name); - if ($section_data && isset($section_data['perm_prefix'])) { + if ( $section_data && isset($section_data['perm_prefix']) ) { // using permission from other prefix - $section_name = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection'); + $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)) { - $perm_name = $section_name.'.'.$perm_name; + if ( !$permissions_helper->isOldPermission($section_name, $perm_name) ) { + $perm_name = $section_name . '.' . $perm_name; } $db_perm_value = $permissions_helper->getPermissionValue($perm_name); - if ($db_perm_value == 1 && $perm_value == 0) { + + if ( $db_perm_value == 1 && $perm_value == 0 ) { // permission was disabled => delete it's record $delete_ids[] = $permissions_helper->getPermissionID($perm_name); } - elseif ($db_perm_value == 0 && $perm_value == 1) { + elseif ( $db_perm_value == 0 && $perm_value == 1 ) { // permission was enabled => created it's record $create_sql[$perm_name] = sprintf($create_mask, $new_id--, $this->Conn->qstr($perm_name), $this->Conn->qstr($perm_value)); } // permission state was not changed in all other cases } } - $this->UpdatePermissions($event, $create_sql, Array(), $delete_ids); + $this->UpdatePermissions($event, $create_sql, Array (), $delete_ids); - if ($this->Application->GetVar('advanced_save') == 1) { + if ( $this->Application->GetVar('advanced_save') == 1 ) { // advanced permission popup [save button] $this->finalizePopup($event); // $event->redirect = 'incs/just_close'; } - elseif ($this->Application->GetVar('section_name') != '') { + elseif ( $this->Application->GetVar('section_name') != '' ) { // save simple permissions before opening advanced permission popup $event->redirect = false; } - } /** @@ -230,14 +237,16 @@ */ function OnBeforeDeleteFromLive(&$event) { - if ($event->Prefix == 'c-perm') { + if ( $event->Prefix == 'c-perm' ) { // only when saving category permissions, not group permissions $foreign_keys = $event->getEventParam('foreign_key'); - if ((count($foreign_keys) == 1) && ($foreign_keys[0] == 0)) { + if ( (count($foreign_keys) == 1) && ($foreign_keys[0] == 0) ) { // parent item has zero id $temp_object =& $this->Application->recallObject('c'); - if ($temp_object->isLoaded()) { + /* @var $temp_object CategoriesItem */ + + if ( $temp_object->isLoaded() ) { // category with id = 0 found in temp table $event->status = kEvent::erFAIL; }