def navigate(data, x, y, screen): if x == 0 and y == 0: ScreenManager.throw(screen, "Naviagte with arrow keys and press q to exit") screen.clear() screen.keypad(1) active = tableDisplay.organize(data, x, y, screen) dim = screen.getmaxyx() screen.addstr(0, 0, active[0], curses.A_BOLD) for i in range(dim[0]-1): try: screen.addstr(i+1, 0, active[i+1]) except: pass screen.refresh() choice = screen.getch() if choice == curses.KEY_LEFT: if x != 0: return tableDisplay.navigate(data, x-1, y, screen) else: return tableDisplay.navigate(data, x, y, screen) if choice == curses.KEY_RIGHT: return tableDisplay.navigate(data, x+1, y, screen) if choice == curses.KEY_DOWN: return tableDisplay.navigate(data, x, y+1, screen) if choice == curses.KEY_UP: if y != 0: return tableDisplay.navigate(data, x, y-1, screen) else: return tableDisplay.navigate(data, x, y, screen) if choice == ord('q'): return else: return tableDisplay.navigate(data, x, y, screen)
def create_database(self, name): to_query = "SELECT 1 FROM pg_database WHERE datname = \'%s\'" % (name) database_exists = query.query(to_query, 'postgres', self.screen, None, None, self.username, self.password) if database_exists[1]: ScreenManager.throw(self.screen, 'Database already exists.') return False else: db_creation_query = "CREATE DATABASE " + name if query.query(db_creation_query, 'postgres', self.screen, 0, None, self.username, self.password) == -1: ScreenManager.throw(self.screen, "An error prevented database creation.") return False return True
def create_user(self): self.screen_manager.display_mid('Please enter your desired Username: '******'Please enter your desired Password: '******'%s\'" % self.username rows = query.query(to_query, 'postgres', self.screen) if rows[1]: ScreenManager.throw(self.screen, 'Username already in use.') return LoginScreen.create_user(self) else: to_query = "CREATE USER %s WITH CREATEDB PASSWORD \'%s\'" % ( self.username, self.password) if query.query(to_query, 'postgres', self.screen) == -1: ScreenManager.throw(self.screen, "An error prevented user creation.") return False to_query = "CREATE DATABASE %s_default" % (self.username) if query.query(to_query, 'postgres', self.screen, 0) == -1: ScreenManager.throw( self.screen, "An error occured during user default database creation.") return False to_query = "ALTER DATABASE %s_default owner to %s" % ( self.username, self.username) if query.query(to_query, 'postgres', self.screen) == -1: ScreenManager.throw( self.screen, "An error occured while assigning new user to default database." ) return False return True
def create_user(self): self.screen_manager.display_mid('Please enter your desired Username: '******'Please enter your desired Password: '******'%s\'" % self.username rows = query.query(to_query, 'postgres', self.screen) if rows[1]: ScreenManager.throw(self.screen, 'Username already in use.') return LoginScreen.create_user(self) else: to_query = "CREATE USER %s WITH CREATEDB PASSWORD \'%s\'" % (self.username, self.password) if query.query(to_query, 'postgres', self.screen) == -1: ScreenManager.throw(self.screen, "An error prevented user creation.") return False to_query = "CREATE DATABASE %s_default" % (self.username) if query.query(to_query, 'postgres', self.screen, 0) == -1: ScreenManager.throw(self.screen, "An error occured during user default database creation.") return False to_query = "ALTER DATABASE %s_default owner to %s" % (self.username, self.username) if query.query(to_query, 'postgres', self.screen) == -1: ScreenManager.throw(self.screen, "An error occured while assigning new user to default database.") return False return True
def createTable(self, dbname): self.screen_manager.set_cursor_visible() curses.echo() self.screen_manager.display_mid("Please enter a name for the new table: ") new_table_name = self.screen_manager.screen.getstr() self.screen.clear() table_creation_query = "CREATE TABLE IF NOT EXISTS " + new_table_name + "(ID INT PRIMARY KEY NOT NULL);" if query.query(table_creation_query, dbname, self.screen, 0, None, self.username, self.password) == -1: ScreenManager.throw(self.screen, "An error prevented table creation.") else: self.screen_manager.display_mid("Table successfully created!") self.screen_manager.screen.getstr() self.screen.clear()
def createTable(self, dbname): self.screen_manager.set_cursor_visible() curses.echo() self.screen_manager.display_mid( "Please enter a name for the new table: ") new_table_name = self.screen_manager.screen.getstr() self.screen.clear() table_creation_query = "CREATE TABLE IF NOT EXISTS " + new_table_name + "(ID INT PRIMARY KEY NOT NULL);" if query.query(table_creation_query, dbname, self.screen, 0, None, self.username, self.password) == -1: ScreenManager.throw(self.screen, "An error prevented table creation.") else: self.screen_manager.display_mid("Table successfully created!") self.screen_manager.screen.getstr() self.screen.clear()
def copy_database(self, database): db_name = database[0] self.screen_manager.set_cursor_visible() curses.echo() self.screen_manager.display_mid("Please enter a name for the new database: ") new_db_name = self.screen_manager.screen.getstr() self.screen.clear() db_copy_query = "CREATE DATABASE " + new_db_name + " WITH TEMPLATE " + db_name if query.query(db_copy_query, 'postgres', self.screen, 0, None, self.username, self.password) == -1: ScreenManager.throw(self.screen, "An error prevented database creation.") else: self.screen_manager.display_mid("The database " + new_db_name + " has been copied from " + db_name) self.screen.getstr() self.screen.clear() self.screen_manager.set_cursor_invisible()
def login(self): self.screen_manager.display_mid('Please enter your Username: '******'Please enter your Password: '******'root\'" rows = query.query(to_query, 'postgres', None, None, None, self.username, self.password) if rows != -1 and rows != -2: return True elif rows == -1: ScreenManager.throw(self.screen, "Couldn't sign in. Please ensure your system is set up correctly.") return False else: ScreenManager.throw(self.screen, "Incorrect Username or Password.") return False
def drop_database(self, database): db_name = database[0] self.screen_manager.set_cursor_visible() curses.echo() self.screen_manager.display_mid("Are you sure you want to delete " + db_name + "? (Y/N): ") confirmation = self.screen_manager.screen.getstr() if confirmation == 'Y': db_delete_query = "DROP DATABASE " + db_name if query.query(db_delete_query, 'postgres', self.screen, 0, None, self.username, self.password) == -1: ScreenManager.throw(self.screen, "An error prevented database creation.") else: self.screen_manager.display_mid("The database " + db_name + " has been deleted") self.screen.getstr() else: self.screen_manager.display_mid(db_name + " will not be deleted") self.screen_manager.screen.getstr() self.screen.clear() self.screen_manager.set_cursor_invisible()
def login(self): self.screen_manager.display_mid('Please enter your Username: '******'Please enter your Password: '******'root\'" rows = query.query(to_query, 'postgres', None, None, None, self.username, self.password) if rows != -1 and rows != -2: return True elif rows == -1: ScreenManager.throw( self.screen, "Couldn't sign in. Please ensure your system is set up correctly." ) return False else: ScreenManager.throw(self.screen, "Incorrect Username or Password.") return False