r1505: Implement multi group system for custom fields in explain.php and search.php
authorRobert Sesek <rsesek@bluestatic.org>
Sun, 18 Mar 2007 19:32:47 +0000 (19:32 +0000)
committerRobert Sesek <rsesek@bluestatic.org>
Sun, 18 Mar 2007 19:32:47 +0000 (19:32 +0000)
explain.php
search.php

index f396e9d2026460afae789161b753e2c4b4854847..d124bb63bb2cbd89ef5ded962c66afa26757a332 100644 (file)
@@ -102,13 +102,14 @@ if ($_REQUEST['do'] == 'products')
 if ($_REQUEST['do'] == 'automations')
 {
        $fields_fetch = $bugsys->db->query("
-               SELECT bugfield.*, permission.mask
+               SELECT bugfield.*, MAX(permission.mask) AS mask
                FROM " . TABLE_PREFIX . "bugfield AS bugfield
                LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission
                        ON (bugfield.fieldid = permission.fieldid)
                WHERE (permission.mask = 2 OR permission.mask = 1)
-               AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}"
-       );
+               AND permission.usergroupid IN ({$bugsys->userinfo['usergroupid']}" . (sizeof($bugsys->userinfo['groupids']) != 0 ? ',' . implode(',', $bugsys->userinfo['groupids']) : '') . ")
+               GROUP BY (bugfield.fieldid)
+       ");
        while ($field = $bugsys->db->fetch_array($fields_fetch))
        {
                $fields["$field[fieldid]"] = $field;
index 89229470da3833e531415ea2ed144c476c5a6824..1a3fdb11464fdee1cfdc99742f35106d042041db 100644 (file)
@@ -326,13 +326,14 @@ if ($_REQUEST['do'] == 'process')
        // -------------------------------------------------------------------
        // custom fields
        $fields_fetch = $bugsys->db->query("
-               SELECT bugfield.*
+               SELECT bugfield.*, MAX(permission.mask) AS mask
                FROM " . TABLE_PREFIX . "bugfield AS bugfield
                LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission
                        ON (bugfield.fieldid = permission.fieldid)
-               WHERE permission.mask <> 0
-               AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}
-               AND bugfield.cansearch = 1"
+               WHERE mask <> 0
+               AND permission.usergroupid IN ({$bugsys->userinfo['usergroupid']}" . (sizeof($bugsys->userinfo['groupids']) != 0 ? ',' . implode(',', $bugsys->userinfo['groupids']) : '') . ")
+               AND bugfield.cansearch = 1
+               GROUP BY (bugfield.fieldid)"
        );
        while ($field = $bugsys->db->fetch_array($fields_fetch))
        {