Index: trunk/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r8546 -r8757 --- trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 8546) +++ trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 8757) @@ -284,7 +284,7 @@ return $ret; } - function TagPermissionCheck($params, $tag_name) + function TagPermissionCheck($params, $is_owner = false) { $perm_prefix = getArrayValue($params, 'perm_prefix'); $perm_event = getArrayValue($params, 'perm_event'); @@ -302,11 +302,13 @@ $perm_category = $this->getPrimaryCategory($perm_prefix); } + $is_system = isset($params['system']) && $params['system'] ? 1 : 0; foreach ($permission_groups as $permission_group) { $permissions = explode(',', $permission_group); $has_permission = true; foreach ($permissions as $permission) { - $has_permission = $has_permission && $this->CheckPermission($permission, isset($params['system']) && $params['system'] ? 1 : 0, $perm_category); + $owner_checked = (strpos($permission, '.OWNER.') !== false) ? $is_owner : true; + $has_permission = $has_permission && $this->CheckPermission($permission, $is_system, $perm_category) && $owner_checked; } $group_has_permission = $group_has_permission || $has_permission;