lang->string('Guest'); } } // ################## Start construct_option_select ################## // creates a ' . implode("\n\t", $opts) . "\r"; } // ################### Start construct_user_display ################## // $userinfo needs userid, email, displayname, and showemail function construct_user_display($userinfo, $html = true) { global $bugsys; fetch_user_display_name($userinfo); if ($html) { eval('$username = "' . $bugsys->template->fetch('username_display') . '";'); } else { if ($userinfo['showemail']) { $username = sprintf($bugsys->lang->string('%1$s <%2$s>'), $userinfo['displayname'], $userinfo['email']); } else { $username = $userinfo['displayname']; } } return $username; } // ######################## Start can_perform ######################## // short-hand for bitwise & function can_perform($bitmask, $productid = 0) { global $bugsys, $_PERMISSION; $userinfo = $bugsys->userinfo; if (!isset($_PERMISSION["$bitmask"])) { trigger_error('Invalid bitmask "' . $bitmask . '" specified for can_perform() [includes/functions.php]', E_USER_WARNING); } if ($productid AND isset($bugsys->datastore['permission']["$userinfo[usergroupid]"]["$productid"])) { $inspecific = array('cansearch', 'canbeassignedto', 'canadminpanel', 'canadminbugs', 'canadminfields', 'canadminversions', 'canadminusers', 'canadmingroups', 'canadmintools'); if (!in_array($bitmask, $inspecific)) { return ($bugsys->datastore['permission']["$userinfo[usergroupid]"]["$productid"] & $_PERMISSION["$bitmask"]); } } return ($userinfo['permissions'] & $_PERMISSION["$bitmask"]); } // ################# Start construct_datastore_select ################ // loops through the specified datastore to create