r1503: Update build_assignedto() so people in secondary groups that have assignee...
authorRobert Sesek <rsesek@bluestatic.org>
Sun, 18 Mar 2007 19:18:32 +0000 (19:18 +0000)
committerRobert Sesek <rsesek@bluestatic.org>
Sun, 18 Mar 2007 19:18:32 +0000 (19:18 +0000)
includes/functions_datastore.php

index c2cf24ef2b832efcd08eb15a60cc6f25040c99b7..3ff0cd58700596e3d12bc6301f6dde4aa1e3fe61 100755 (executable)
@@ -144,11 +144,23 @@ function build_assignedto()
 {
        global $bugsys;
        
+       // determine the groups that are assignable
+       $ids = $exprs = array();
+       foreach ($bugsys->datastore['usergroup'] AS $id => $group)
+       {
+               if ($group['permissions'] & $bugsys->permissions['canbeassignedto'])
+               {
+                       $ids[] = $id;
+                       $exprs[] = "FIND_IN_SET($id, groupids)";
+               }
+       }
+       
+       $ids = implode(',', $ids);
+       $exprs = implode(' OR ', $exprs);
        $users = $bugsys->db->query("
-               SELECT user.email, user.displayname, user.userid, user.showemail
+               SELECT email, displayname, userid, showemail
                FROM " . TABLE_PREFIX . "user AS user
-               LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON (user.usergroupid = usergroup.usergroupid)
-               WHERE (usergroup.permissions & " . $bugsys->permissions['canbeassignedto'] . ")"
+               WHERE usergroupid IN ($ids) OR $exprs"
        );
        while ($user = $bugsys->db->fetch_array($users))
        {