Rewrite check_bug_permissions() to be a little simpler to follow.
authorRobert Sesek <rsesek@bluestatic.org>
Mon, 20 May 2013 01:25:26 +0000 (21:25 -0400)
committerRobert Sesek <rsesek@bluestatic.org>
Sat, 11 Apr 2020 04:45:37 +0000 (00:45 -0400)
(cherry picked from commit 27367f1a5a455e1f67cf58307b1542f7b0ad7c6a)

includes/functions.php

index 304bf857b068ca95259e7c2e65d1a6a9677d720c..6f285710a480b82c3bde85d8d9a934be332b01ae 100755 (executable)
@@ -631,32 +631,26 @@ function check_bug_permissions($bug, $userinfo = null)
        $bugsys->debug('* !$bug[hidden] = ' . (int)(!$bug['hidden']));
        
        $bugsys->debug('*** END PERMISSIONS CHECK ***');
-       
-       if
-       (
-               !can_perform('canviewbugs', $bug['product'], $userinfo)
-                       OR
-               !(
-                       (
-                               $bug['hidden']
-                                       AND
-                               (
-                                       ($userinfo['userid'] == $bug['userid'] AND can_perform('canviewownhidden', $bug['product'], $userinfo))
-                                               OR
-                                       can_perform('canviewhidden', $bug['product'], $userinfo)
-                               )
-                       )
-                               OR
-                       !$bug['hidden']
-               )
-       )
-       {
+
+       if (!can_perform('canviewbugs', $bug['product'], $userinfo)) {
                $bugsys->debug('*** DONE WITH REAL CALLS ***');
                return false;
        }
-       
+
+       if ($bug['hidden']) {
+               if (can_perform('canviewhidden', $bug['product'], $userinfo)) {
+                       $bugsys->debug('*** DONE WITH REAL CALLS ***');
+                       return true;
+               } else if ($userinfo['userid'] == $bug['userid'] AND can_perform('canviewownhidden', $bug['product'], $userinfo)) {
+                       $bugsys->debug('*** DONE WITH REAL CALLS ***');
+                       return true;
+               } else {
+                       $bugsys->debug('*** DONE WITH REAL CALLS ***');
+                       return false;
+               }
+       }
+
        $bugsys->debug('*** DONE WITH REAL CALLS ***');
-       
        return true;
 }