Module: Dbviewer::DatabaseOperations::QueryOperations
- Extended by:
- ActiveSupport::Concern
- Included in:
- Dbviewer::DatabaseOperations
- Defined in:
- app/controllers/concerns/dbviewer/database_operations/query_operations.rb
Instance Method Summary collapse
- #default_query(table_name) ⇒ Object
-
#execute_query(query) ⇒ Object
Execute the prepared SQL query.
-
#prepare_query(table_name, query) ⇒ Object
Prepare the SQL query - either from params or default.
Instance Method Details
#default_query(table_name) ⇒ Object
27 28 29 30 |
# File 'app/controllers/concerns/dbviewer/database_operations/query_operations.rb', line 27 def default_query(table_name) quoted_table = safe_quote_table_name(table_name) "SELECT * FROM #{quoted_table} LIMIT 100" end |
#execute_query(query) ⇒ Object
Execute the prepared SQL query
23 24 25 |
# File 'app/controllers/concerns/dbviewer/database_operations/query_operations.rb', line 23 def execute_query(query) database_manager.execute_query(query) end |
#prepare_query(table_name, query) ⇒ Object
Prepare the SQL query - either from params or default
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/controllers/concerns/dbviewer/database_operations/query_operations.rb', line 7 def prepare_query(table_name, query) # Sanitize and validate input sanitized_query = sanitize_query_input(query) final_query = sanitized_query.present? ? sanitized_query.to_s : default_query(table_name) # Validate query for security unless ::Dbviewer::Validator::Sql.safe_query?(final_query) log_unsafe_query_attempt(final_query) final_query = default_query(table_name) flash.now[:warning] = "Only SELECT queries are allowed. Your query contained potentially unsafe operations. Using default query instead." end final_query end |