外部ユーザーへの共有リンク発行

仕様

  • リンクは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
      • 発行時に決定される

pageLink: { id : objectId, relationalPage : objectId, limit : time, }