/** * Return all permissions available * * @param string $type * @param integer $uid * @param integer $tid * @param integer $gid * @param integer $target_id [optional] * @param boolean $all [optional] * * @return array */ public static function getAllPermissions($type, $uid, $tid, $gid, $target_id = null, $all = false) { $crit = new \b2db\Criteria(); $crit->addWhere(Permissions::SCOPE, self::getScope()->getID()); $crit->addWhere(Permissions::PERMISSION_TYPE, $type); if ($uid + $tid + $gid == 0 && !$all) { $crit->addWhere(Permissions::UID, $uid); $crit->addWhere(Permissions::TID, $tid); $crit->addWhere(Permissions::GID, $gid); } else { switch (true) { case $uid != 0: $crit->addWhere(Permissions::UID, $uid); case $tid != 0: $crit->addWhere(Permissions::TID, $tid); case $gid != 0: $crit->addWhere(Permissions::GID, $gid); } } if ($target_id !== null) { $crit->addWhere(Permissions::TARGET_ID, $target_id); } $permissions = array(); if ($res = Permissions::getTable()->doSelect($crit)) { while ($row = $res->getNextRow()) { $permissions[] = array('p_type' => $row->get(Permissions::PERMISSION_TYPE), 'target_id' => $row->get(Permissions::TARGET_ID), 'allowed' => $row->get(Permissions::ALLOWED), 'uid' => $row->get(Permissions::UID), 'gid' => $row->get(Permissions::GID), 'tid' => $row->get(Permissions::TID), 'id' => $row->get(Permissions::ID)); } } return $permissions; }
private static function _loadSetting($name, $module = 'core', $scope = 0) { $crit = new \b2db\Criteria(); $crit->addWhere(tables\Settings::NAME, $name); $crit->addWhere(tables\Settings::MODULE, $module); if ($scope == 0) { throw new \Exception('The Bug Genie has not been correctly installed. Please check that the default scope exists'); } $crit->addWhere(tables\Settings::SCOPE, $scope); $res = tables\Settings::getTable()->doSelect($crit); if ($res) { $retarr = array(); while ($row = $res->getNextRow()) { $retarr[$row->get(tables\Settings::UID)] = $row->get(tables\Settings::VALUE); } return $retarr; } else { return null; } }
public static function findTeams($details) { $crit = new \b2db\Criteria(); $crit->addWhere(tables\Teams::NAME, "%{$details}%", \b2db\Criteria::DB_LIKE); $crit->addWhere(tables\Teams::ONDEMAND, false); $teams = array(); if ($res = tables\Teams::getTable()->doSelect($crit)) { while ($row = $res->getNextRow()) { $teams[$row->get(tables\Teams::ID)] = new \thebuggenie\core\entities\Team($row->get(tables\Teams::ID), $row); } } return $teams; }
public static function findClients($details) { $crit = new \b2db\Criteria(); $crit->addWhere(TBGClientsTable::NAME, "%{$details}%", \b2db\Criteria::DB_LIKE); $clients = array(); if ($res = \b2db\Core::getTable('TBGClientsTable')->doSelect($crit)) { while ($row = $res->getNextRow()) { $clients[$row->get(TBGClientsTable::ID)] = TBGContext::factory()->TBGClient($row->get(TBGClientsTable::ID), $row); } } return $clients; }
/** * Return the time when the issue was reopened * * @return false if closed, otherwise a timestamp */ public function whenReopened() { if ($this->isClosed()) { return false; } $crit = new \b2db\Criteria(); $crit->addSelectionColumn(tables\Log::TIME); $crit->addWhere(tables\Log::TARGET, $this->_id); $crit->addWhere(tables\Log::TARGET_TYPE, 1); $crit->addWhere(tables\Log::CHANGE_TYPE, 22); $crit->addOrderBy(tables\Log::TIME, 'desc'); $res = tables\Log::getTable()->doSelect($crit); $ret_arr = array(); if (count($res) == 0) { return false; } $row = $res->getNextRow(); return $row->get(tables\Log::TIME); }
static function getTask() { try { $crit = new \b2db\Criteria(); $crit->addWhere(TBGIssueTypesTable::ICON, 'task'); $crit->addWhere(TBGIssueTypesTable::SCOPE, TBGContext::getScope()->getID()); $row = TBGIssueTypesTable::getTable()->doSelectOne($crit); if ($row instanceof \b2db\Row) { return TBGContext::factory()->TBGIssuetype($row->get(TBGIssueTypesTable::ID), $row); } else { throw new Exception("Couldn't find any 'task' issue types"); } } catch (Exception $e) { throw $e; } }
public static function getAllModulePermissions($module, $uid, $tid, $gid) { $crit = new \b2db\Criteria(); $crit->addWhere(TBGModulePermissionsTable::MODULE_NAME, $module); //$sql = "select b2mp.allowed from tbg_2_modulepermissions b2mp where b2mp.module_name = '$module'"; switch (true) { case $uid != 0: //$sql .= " and uid = $uid"; $crit->addWhere(TBGModulePermissionsTable::UID, $uid); case $tid != 0: //$sql .= " and tid = $tid"; $crit->addWhere(TBGModulePermissionsTable::TID, $tid); case $gid != 0: //$sql .= " and gid = $gid"; $crit->addWhere(TBGModulePermissionsTable::GID, $gid); } if ($uid + $tid + $gid == 0) { //$sql .= " and uid = $uid and tid = $tid and gid = $gid"; $crit->addWhere(TBGModulePermissionsTable::UID, $uid); $crit->addWhere(TBGModulePermissionsTable::TID, $tid); $crit->addWhere(TBGModulePermissionsTable::GID, $gid); } //$sql .= " AND b2mp.scope = " . TBGContext::getScope()->getID(); $crit->addWhere(TBGModulePermissionsTable::SCOPE, TBGContext::getScope()->getID()); //$res = b2db_sql_query($sql, \b2db\Core::getDBlink()); #print $sql; $permissions = array(); $res = \b2db\Core::getTable('TBGModulePermissionsTable')->doSelect($crit); while ($row = $res->getNextRow()) { $permissions[] = array('allowed' => $row->get(TBGModulePermissionsTable::ALLOWED)); } return $permissions; }