外部ユーザーへの共有リンク発行
仕様
- リンクは1つしか作れない
- 有効期限は発行じにユーザーが選択できる
- 共有リンクはユーザーが任意のタイミングで削除できる
ユーザーの行動
共有リンク発行ユーザーの行動と GROWI の処理
- ページを開く(user)
- 共有したいページ表示画面で、共有リンク発行ボタンを押す(将来的に、共有機能のドロップダウンの一つとして存在する)(user)
- パーマリンクを発行(growi)
- 有効期限を選択できる
- pageLink ドキュメントを作成
- 発行したリンクを表示
- ワンクリックでクリップボードにコピーできる
- リンクを無効にするボタンも設ける
アクセスしたユーザーの行動と GROWI の処理
- 発行されたパーマリンクにアクセスする(user)
- login_required で閲覧できるページかどうかをチェックする(growi)
- 期限外だったら彈く
- pageLink インスタンスのcreated_atとその時の時刻を比較
- 期限外だったら彈く
- Guest user としてページを見ることができる(user)
共有リンクを破棄する
- リンクを無効化ボタンを押す(user)
- pagelink コレクションから該当の pageId を含むドキュメントを削除する(growi)
DB 設計
- パーマリンク発行時の時間を
https://dev.growi.org/5ed0aafdee4bc900481b55cb
- 新しいコレクションの作成(PageLink, コレクション名は暫定、「共有用」という意味合いを持たせたい)
- id: objectId
- これが共有用のパスになる
- pageのid : objectId
- 共有されるページのid
- limit : time
- 発行時に決定される
- id: objectId
pageLink: { id : objectId, relationalPage : objectId, limit : time, }