鍋綿ブログ

C#・SharePoint・SharePoint Framework・Office365を中心に扱うブログです。

SharePoint Onlineにマイページが欲しいという要望が多いので実装してみた

最近、お客様からSharePoint上での「マイページ」をご要望頂くことが多くなってきました。仕組みが無いなら作ればいいじゃない、ということでサンプルを作ってみました。

機能概要

今回開発したマイページ機能では以下を実現しています。

  • ユーザーはマイページを編集してWebパーツの配置やセクションの組み替えができる
  • マイページがまだ無いユーザーがサイトにアクセスした場合、テンプレートを元にマイページが自動作成される

応用例として、マイページをサイトのホームページに指定することでユーザーに「サイトのホームページをパーソナライズできる」という機能を提供することができます。

f:id:micknabewata:20191217141902p:plain

マイページ機能の概要

前提

  • クラシック機能では動作しません。
  • ユーザー数が5,000を超えるとサンプルコードでは動かない。本番向けに工夫が必要。(実現は可)

仕組み

SharePoint FrameworkでWebパーツを開発し、Webパーツが描画された時にユーザーをマイページにリダイレクトすることで実現しています。マイページが無ければ作成する処理も同じくWebパーツ内でリダイレクトの前に行っています。

マイページ自体はSharePointのモダン標準機能で作成できる「サイト ページ」になっており、マイページの編集機能は標準のページ編集機能に任せています。

尚、管理者向けの機能として、以下何れかの場合はリダイレクトを停止しています。

  • ページを編集中である
  • URLパラメータに「?redirect=false」が指定されている

f:id:micknabewata:20191217141055p:plain

仕組み

ソースコード

GitHubに公開しました。サンプルなのでソースコードが汚いのはお見逃しください。。。尚、本番公開時には5,000件問題に気を使ったりマイページの権限を制御してユーザー自身しか編集させないようにしたりするなどの工夫も必要ですが実現可能な事は分かったのでこのサンプルではそこまで制御していません。

github.com

 

以上、参考になれば幸いです。