緒言
1年前、下記の記事を書きました。
社内で展開したところ好評を博しいろいろなグループに横展開へ。ただ、それぞれのグループにアプリやフローをコピーするのも面倒、ということでPlannerのPlanIDで簡易アクセス制御をして1つのアプリを共用するようにしました。
実装内容
Plannerの準備
使うのはLoopに紐づいたPlannerがおススメ。理由はM365グループに紐づいてなくて作成も簡単だし、GroupID等の管理が必要なくて簡単だから。Loopで 「タスクリスト」を作成するとPlannerと連動してくれます。
PlanができてしまえばもうLoopは関係ないので煮るなり焼くなり。
そしてPlannerを開いてShareから簡単にアクセスして欲しいメンバーを追加可能。ここで設定したメンバーでタスク管理アプリのアクセス制御するようにしていきます。

このようにして作成したPlanのURLは下記のようになっているが、グループIDはM365グループIDではなくテナントIDになっているので無視。
https://planner.cloud.microsoft/webui/plan/<プランID>/view/grid?tid=<グループID>
プランID部分をコピーしておく。
データソース(SPリスト)の設定
PlanIDごとにアクセス制御させたいのでPlanID情報を格納する列を追加しておく。

タスク管理アプリ(Power Apps)の設定
下記のような変数を設定してPlanにアクセス可能かどうか判定。
Set(
_AccessCheck,
If(
IsBlank(
IfError(
Planner.GetPlanDetails(<プランID>),
Blank()
)
),
"NG",
"OK"
)
);
複数プランを登録させている場合は<プランID>部分を可変にしてプラン選択を切り替えるたびに判定させるようし、下図のようにマスク表示切替に使っても良し。制御方法はいろいろ。

結言
市販のタスク管理アプリもいろいろ試して評価しましたが、いまだに内製アプリに落ち着いてます。まだまだタスク管理を探し求める旅は終わりません。
