/** * List databases on the server * * @return array */ public function listDbs() { $dbs = array(); try { $dbs = $this->_mongo->listDBs(); } catch (Exception $e) { $dbs["ok"] = false; } if (empty($dbs["ok"])) { $user = MUser::userInSession(); $dbs = array("databases" => array(), "totalSize" => 0, "ok" => 1); foreach ($user->dbs() as $db) { $dbs["databases"][] = array("name" => $db, "empty" => false, "sizeOnDisk" => 0); } } //@todo: should we show user input databases only? $onlyDbs = $this->uiOnlyDbs(); $hideDbs = $this->uiHideDbs(); foreach ($dbs["databases"] as $index => $database) { $name = $database["name"]; if (!empty($hideDbs) && in_array($name, $hideDbs)) { unset($dbs["databases"][$index]); } if (!empty($onlyDbs) && !in_array($name, $onlyDbs)) { unset($dbs["databases"][$index]); } } return $dbs; }