summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-06 06:05:06 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-06 06:05:06 +0200
commitb547decd1f85b43d5fb9e86cd7462b455059b1d1 (patch)
treebba6cabe44eb13da440a722709a94bb10b8ce24d /app
parent2345668365640901658ca8085721ed1dd7d1c106 (diff)
Add preview_token to pages
New column + unique index, plus ensure_preview_token!/revoke_preview_token! on Page. Generated lazily (only when explicitly requested) rather than via has_secure_token's default auto-generate-on-create, so a live, shareable secret isn't silently minted for every page ever created.
Diffstat (limited to 'app')
-rw-r--r--app/models/page.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/page.rb b/app/models/page.rb
index 20461bf..4d1e94a 100644
--- a/app/models/page.rb
+++ b/app/models/page.rb
@@ -136,6 +136,15 @@ class Page < ApplicationRecord
136 "/#{node.unique_name}" 136 "/#{node.unique_name}"
137 end 137 end
138 138
139 def ensure_preview_token!
140 update!(preview_token: SecureRandom.urlsafe_base64(24)) unless preview_token.present?
141 preview_token
142 end
143
144 def revoke_preview_token!
145 update!(preview_token: nil)
146 end
147
139 def clone_attributes_from page 148 def clone_attributes_from page
140 return nil unless page 149 return nil unless page
141 150