summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/page.rb9
-rw-r--r--db/migrate/20260706030547_add_preview_token_to_pages.rb6
2 files changed, 15 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
diff --git a/db/migrate/20260706030547_add_preview_token_to_pages.rb b/db/migrate/20260706030547_add_preview_token_to_pages.rb
new file mode 100644
index 0000000..794cbb2
--- /dev/null
+++ b/db/migrate/20260706030547_add_preview_token_to_pages.rb
@@ -0,0 +1,6 @@
1class AddPreviewTokenToPages < ActiveRecord::Migration[8.1]
2 def change
3 add_column :pages, :preview_token, :string
4 add_index :pages, :preview_token, unique: true
5 end
6end