diff options
| -rw-r--r-- | app/models/page.rb | 9 | ||||
| -rw-r--r-- | db/migrate/20260706030547_add_preview_token_to_pages.rb | 6 |
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 @@ | |||
| 1 | class 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 | ||
| 6 | end | ||
