solid_litequeen 0.18.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 916bcf8973a0feb19689908e0745142ec3fbc2b006c3cfb19a5fc961d6395643
4
- data.tar.gz: c2dd68e7ae0c589fc4bf25c879316973485b0c2aed15a9cc7f0d07fec4d023c5
3
+ metadata.gz: e0805853d45f36526968d3c6480aee412b6c08b5bd4f6335eae6a63ddef1cd29
4
+ data.tar.gz: ce7190ca5c2b3b755d1fbfb7cfba20c78cae7517cfc160c84df2a6d67706f759
5
5
  SHA512:
6
- metadata.gz: a2dc53956b2b4193373436dad827fb45dac587f7393a84bc23b34d23531043cf498578e107e0325743c91c6ebe006f79422633c564d0fce53d2b501f6101fcaf
7
- data.tar.gz: dc6cdf559a7481e5e478c3f5c945d6bad36bf5a99563beaae4ef58838bac91e4f50f3319c34b879b6b437e0af79e632cd53ee8b610e4004891be81c1d59cfd75
6
+ metadata.gz: de2d962279c957507f44c3e3faa4dc50078bf380f099c64ef8300abda2a1568c94924f15484b0fe5b133bfda33b58c3b9662d5182e1abd1e64eb4d295cf2adfd
7
+ data.tar.gz: 357f85988045dded8a119dfb7192a5a60d9fd364fb76852b9848e9d668702911444f5739bd04d7a06d9075f4c4925567f5e7d4c3c428090a80ad1c280263f0d7
@@ -151,8 +151,10 @@ module SolidLitequeen
151
151
  # Verify the sort column exists in the table to prevent SQL injection
152
152
  valid_columns = table_columns.map(&:name)
153
153
 
154
- # Use the column order from session if it exists; otherwise, default to all columns
155
- ordered_columns = session["#{@database_id}_#{@table_name}_column_order"] || valid_columns
154
+ stored_order = session["#{@database_id}_#{@table_name}_column_order"] || []
155
+ ordered_columns = stored_order & valid_columns
156
+ ordered_columns += valid_columns - ordered_columns
157
+ session["#{@database_id}_#{@table_name}_column_order"] = ordered_columns
156
158
 
157
159
  order_clause = if @sort_column.present? && valid_columns.include?(@sort_column)
158
160
  "#{DynamicDatabase.connection.quote_column_name(@sort_column)} #{@sort_direction}"
@@ -206,10 +208,19 @@ module SolidLitequeen
206
208
  table_name = params[:table]
207
209
  database_id = params[:database_id]
208
210
 
209
- column_order = params[:columnOrder]
211
+ column_order = params[:columnOrder] || []
210
212
 
211
- # Store column order in session using database and table as key
212
- session["#{database_id}_#{table_name}_column_order"] = column_order
213
+ database_location = Base64.urlsafe_decode64(database_id)
214
+
215
+ DynamicDatabase.establish_connection(
216
+ adapter: "sqlite3",
217
+ database: database_location
218
+ )
219
+
220
+ valid_columns = DynamicDatabase.connection.columns(table_name).map(&:name)
221
+ sanitized_order = column_order & valid_columns
222
+
223
+ session["#{database_id}_#{table_name}_column_order"] = sanitized_order
213
224
 
214
225
  head :ok
215
226
  end
@@ -1,3 +1,3 @@
1
1
  module SolidLitequeen
2
- VERSION = "0.18.0"
2
+ VERSION = "0.18.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_litequeen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vik Borges
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-19 00:00:00.000000000 Z
11
+ date: 2025-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails