public function index($args) { $db = new Database($this->wpdb); $tables = $db->getTables(); $template = new Template('schema.html'); $template->tables = $tables; if (isset($args['schema'])) { $template->schema = $db->getTable($args['schema']); } $template->types = array('varchar' => 'Text (short)', 'text' => 'Text (long)', 'int' => 'Number', 'date' => 'Date', 'fk' => 'Cross reference'); return $template->render(); }
/** * Privide details of the relevant parts of the database schema, for use by * TabulateApp. */ public function app_schema() { $db = new Database($this->wpdb); $tables = $db->getTables(); $out = array(); foreach ($tables as $table) { if (Grants::current_user_can(Grants::CREATE, $table->getName())) { $out[] = $table->getName(); } } return $out; }
public function testBasics() { $db = new Database(); // Make sure the default records were created. $db->setCurrentUser(Users::ADMIN); $this->assertEquals(2, $db->getTable('users')->getRecordCount()); $this->assertEquals(2, $db->getTable('groups')->getRecordCount()); $this->assertEquals(2, $db->getTable('group_members')->getRecordCount()); // The anon user can't see anything. $db->setCurrentUser(Users::ANON); $this->assertEquals(Users::ANON, $db->getCurrentUser()); $this->assertEmpty($db->getTables()); // The admin user can see everything. $db->setCurrentUser(Users::ADMIN); $expectedTables = ['changes', 'changesets', 'grants', 'group_members', 'groups', 'sessions', 'test_table', 'test_types', 'users', 'report_sources', 'reports']; $this->assertEquals($expectedTables, $db->getTableNames(), '', 0, 1, true, true); }