関連リンク

/資料/外部仕様/ページ&ユーザーグループv5

概要

ページの操作を行う際には毎回、まずユーザーグループによって操作可能かどうかのバリデーションをかける その後、新ユーザーグループの外部仕様に則って操作を続行する

ユーザーグループのバリデーション

ページの migrate, move, rename, duplicate, delete, create の際にその操作が可能かをチェックする

create

  • 単体
    1. create 先の前後のページから create していいユーザーかをチェック
    2. 権限の候補には指定可能なユーザーグループのみを列挙する(only me はこの時点で候補に必ず存在する)

move/rename

  • 単体
    • create 単体と同じ?
  • 再帰
    • 権限の情報は保ったまま行う
    • leaf node を操作する権限があるかどうか

duplicate

  • 単体
    • create 単体と同じ?
  • 再帰
    • 権限の情報は保ったまま行う
    • leaf node を操作する権限があるかどうか

delete

  • 単体
    • 既存のチェック
  • 再帰
    • leaf node を操作する権限があるかどうか

ユーザーグループバリデーション後の各操作

create

  • 単体
    • Operator が create 先のパスでページを作成する権限があるか
    • 正しい UserGroup が指定されているか

move/rename

  • 単体
    • 元々のページの id 以外の情報を新ページドキュメントにコピーして .create()
    • その後、元々のページドキュメントを Empty ページにして .save()
  • 再帰
    • root の parent を変更
    • その後、descendants のパスを変更
    • その間 PageTree にくるくるなど表示するべきか?完了したら socket で通知して mutate とか

duplicate

  • 単体
    • move のコピー版?
  • 再帰
    • move のコピー版?

delete

  • 単体
    • leaf node なら削除
    • not leaf node なら Empty ページ化する
  • 再帰
    • 既存

ユーザーグループv5

WIP