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();
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 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);
 }