+ foreach ($perm_positions as $perm_name => $category_pos) {
+ $pos_sql .= '(#TABLE_PREFIX#.Permission = "'.$perm_name.'" AND #TABLE_PREFIX#.CatId = '.$categories[$category_pos].') OR ';
+ }
+ $pos_sql = preg_replace('/(.*) OR $/', '\\1', $pos_sql);
+
+ // get all permissions list with iheritence status, inherited category id and permission value
+ $sql = 'SELECT pc.PermissionName,
+ pc.Description,
+ IF (tmp_p.PermissionValue IS NULL AND p.PermissionValue IS NULL,
+ 0,
+ IF (tmp_p.PermissionValue IS NOT NULL, tmp_p.PermissionValue, p.PermissionValue)
+ ) AS Value,
+ IF (tmp_p.CatId IS NOT NULL, tmp_p.CatId, IF(p.CatId IS NOT NULL, p.CatId, 0) ) AS InheritedFrom,
+ IF(tmp_p.CatId = '.$category->GetID().', 0, 1) AS Inherited
+ FROM '.TABLE_PREFIX.'PermissionConfig pc
+ LEFT JOIN '.$perm_live_table.' p ON (p.Permission = pc.PermissionName) AND ('.str_replace('#TABLE_PREFIX#', 'p', $pos_sql).') AND (p.GroupId = '.$group_id.')
+ LEFT JOIN '.$perm_temp_table.' tmp_p ON (tmp_p.Permission = pc.PermissionName) AND ('.str_replace('#TABLE_PREFIX#', 'tmp_p', $pos_sql).') AND (tmp_p.GroupId = '.$group_id.')
+ foreach ($perm_positions as $perm_name => $category_pos) {
+ $pos_sql .= '(#TABLE_PREFIX#.Permission = "'.$perm_name.'" AND #TABLE_PREFIX#.CatId = '.$categories[$category_pos].') OR ';
+ }
+ $pos_sql = preg_replace('/(.*) OR $/', '\\1', $pos_sql);
+
+ // get all permissions list with iheritence status, inherited category id and permission value
+ $sql = 'SELECT pc.PermissionName,
+ pc.Description,
+ IF (tmp_p.PermissionValue IS NULL AND p.PermissionValue IS NULL,
+ 0,
+ IF (tmp_p.PermissionValue IS NOT NULL, tmp_p.PermissionValue, p.PermissionValue)
+ ) AS Value,
+ IF (tmp_p.CatId IS NOT NULL, tmp_p.CatId, IF(p.CatId IS NOT NULL, p.CatId, 0) ) AS InheritedFrom,
+ IF(tmp_p.CatId = '.$category->GetID().', 0, 1) AS Inherited
+ FROM '.TABLE_PREFIX.'PermissionConfig pc
+ LEFT JOIN '.$perm_live_table.' p ON (p.Permission = pc.PermissionName) AND ('.str_replace('#TABLE_PREFIX#', 'p', $pos_sql).') AND (p.GroupId = '.$group_id.')
+ LEFT JOIN '.$perm_temp_table.' tmp_p ON (tmp_p.Permission = pc.PermissionName) AND ('.str_replace('#TABLE_PREFIX#', 'tmp_p', $pos_sql).') AND (tmp_p.GroupId = '.$group_id.')