Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 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;
     }
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }
Пример #5
0
 /**
  * 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);
 }
Пример #6
0
 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;
     }
 }
Пример #7
0
 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;
 }