2016-09-10

Google Appsカレンダー共有オプション不具合の修正(仕様回避)

Google Appsカレンダーの共有オプションについて。
ドメイン管理者が組織全体にきつめの共有ポリシー(たとえば「空き時間情報のみ(予定の詳細は非表示)」)を設定していて、のちに(例えばすべての情報を共有など)緩めのポリシーに緩和した場合、既存のカレンダーの共有については、過去のポリシーが適用されて、共有内容を広げることが許可されません。
こんな感じ。
もともと「空き時間情報のみ」だったものを、外部へも「すべての情報を共有」に変更したのに…

カレンダーの共有設定では、「予定の変更権限」がグレーアウトして選択不可能。


これ、Google Appsの仕様です。
管理コンソールで内部のカレンダー共有オプションを設定すると、その後組織内で新しく作成するカレンダーには設定が反映されますが、既存のカレンダーの設定は更新されません。ただし、プログラムから API を使用して、ドメイン内のすべての既存ユーザーのカレンダー共有オプションをまとめて更新することができます。
 ドキュメントには、「プログラムからAPIを使用して~」とあるけれども、実はGoogleがAPIを直に叩けるページを用意してくれてます。
https://developers.google.com/apis-explorer/#s/calendar/v3/

急ぐなら、これを使ってお手軽修正してもいいでしょう。以下、手順です。
作業前に、共有先ユーザーをどんな権限でも追加しておきます。

# おっとこの画面例だとどっちもexample.comだ…。組織をまたぐ話なので、以降画像のfoobar@example.comはfoobar@example.orgと読み替えてください…。

calendar.acl.listにて、calendaridを指定して、ACL一覧を取得します。
初回はOAuthにて認証を求められます。



そうすると、ユーザーと権限一覧が表示されます。foobar@example.orgの権限を"freeBusyReader"から"writer"に変更する操作をしましょう。



右肩の▼をクリックすると、関連メソッドが表示されるので、今回はcalendar.acl.updateを選択してみましょう。
ま、こんな感じで"role"を"writer"に変更し、”Execute"します。
(ruleIdは"id:"欄の値)

実行結果などは省略して…
カレンダーの共有設定ページにて、「予定の変更権限」が選択可能になりました。

APIに関してはリファレンスがあります。
https://developers.google.com/google-apps/calendar/concepts/sharing

0 件のコメント: