issue #788

https://github.com/weseek/growi/issues/788 external_link

What happens? (症状)

/public (全公開)<br> /team1 (特定グループのみ公開)<br> /team2 (特定グループのみ公開) という運用を想定しています<br> ページの公開設定で /team1、/team2 階層はアクセス制限をかけることができますが<>br グループに所属するしないに関わらず、全てのユーザーが<br> あらゆる階層にページを新規作成することができます<br>

今現在作成するページにパスで制限を書けられない!

再現 グループB所属のBaba視点

babaが勝手に作れる!(しかも閲覧が自由)

What is the expected result? (期待される動作)

管理設定のグループ設定で、グループに対して作成権限階層の設定項目があると<br> グループ毎のコンテンツ管理を明確にすることができると考えています 例えば、"team1" というグループがある場合、グループの作成階層として<br> "/team1" というパスを設定すると、"team1" グループに所属するユーザーは<br> 「作成」ボタンで新規作成できるパスが ”/team1/" 以下に制限され<br> "/hoge" や "/team2/hoge" 等のパスには新規作成ができなくなるという感じです 階層を入れない場合や、グループに所属しないユーザーは現状通りで問題ないと思います。<br> ご検討いただければ幸いです

ホワイトリスト、ブラックリスト両方設定できると尚良い(?)

ユーザーの設定

  1. グループAのみ入っている人
    Name: Abe
    PW: 4IoNVRX6q5A5

  2. グループBのみ入ってる人
    Name: Baba
    PW: 691hoJ8Q5wn_

  3. 両方入っている人(自分)

  4. どちらにも属さない人
    Name: Nora
    PW: CJEzchRJf3=!

タスクのゴール

  • Abeはprojects/groupA と/public 以下にしかページを作成できない。
  • Babaはprojects/groupB と/public 以下にしかページを作成できない。
  • Noraは /public 以下にしかページを作成できない。
  • itizawa はどのパスでも作成できる

制限をかけるタイミングはページの作成時(?)

タスクの進行手順

1 グループの情報がどのように保存され使用されているかの把握

  • pageに属する設定
  • userに属する設定

公開範囲を設定する時にグループ情報を参照しているはずなので、そこを参考にすると良さそう

ここで制限をかけるのにベストなタイミングを決定する!

2 ユーザーに対して作れないパスの制限

作成しようとしているユーザーと作成しようとしているパスのグループ情報を参照
⇨違った場合作成を拒否

3 ホワイトリストブラックリストの実装

現時点では実装手段が固まってない