Z-Pushでカレンダーの共有

Zarafaでカレンダーの共有をしようと思ったのだが、

  • iCalは自分のカレンダーの同期だけ。フェッチ。
  • CalDavはなんだかうまくいかない。ココココの問題発生。そしてフェッチ。

という問題があってちょっと運用は難しそう(十分な権限を与えればこのエラーは発生しないのかもしれないがフェッチだったので調べる気が失せた)。



ということで、Z-Pushでカレンダーを共有することを考えた。
この場合、カレンダーを参照する人に秘書権限(secretary rights)を与える必要がある。
これはちょっとどうかとも思うけれど、仕様だそうで仕方ない。運用でカバーする。
他の人のカレンダーは見るだけ、予定を押さえたいなら「招待」しよう・・・と。


さて、それぞれのメンバーはこんな風にカレンダーにアクセスするつもり・・・

俺 →母、妻、娘1、娘2のカレンダーにアクセスできる。
妻 →俺、娘1、娘2のカレンダーにアクセスできる。
娘1→俺、妻、娘2、母のカレンダーにアクセスできる。
娘2→俺、妻、娘1、母のカレンダーにアクセスできる。
母 →俺、娘1、娘2のカレンダーにアクセスできる。

大人の女同士はもしかしたら面倒な事態に発展するかもしれないので、お互いのスケジュールへのアクセス権について妻に話を持って行ってから決めることに。

これを実現するために以下を行う。

  • グループ Family は既に作成済み(俺、妻、娘1、娘2が所属)。これには何もしない。
  • ここにグループ PFamily を追加して、俺、母を入れる。将来、弟が加入するかも。

その上で、各人のカレンダーに対して、以下の通り秘書権限(secretary rights)を付ける。

  • 俺 →FamilyグループとPFamilyグループ
  • 妻 →Familyグループ
  • 娘1→Familyグループ、母
  • 娘2→Familyグループ、母
  • 母 →PFamilyグループ、娘1、娘2

この設定をしたら、Z-Pushでカレンダーの同期設定をする。


■グループの作成と登録

グループを作成する。

$ sudo zarafa-admin -g PFamily -e pfamily@hogeserver.hogeddns.jp
Group created.

グループに俺と母を登録する。

$ sudo zarafa-admin -b hogeuser -i PFamily
User added to group.
$ sudo zarafa-admin -b hogemother -i PFamily
User added to group.

■カレンダーのアクセス権を設定

これはGUIで行わなければならない。
操作を頼んでもきっとうまくいかないので、こっちでヤッちまう。
このとき、パスワードは覚えさせないように気をつけたりなんかして、ちっとは気を使ってる感じも出しておくべき、かも。


■Z-Pushでカレンダーの同期設定をする。

config.php に同期したいカレンダーの情報を書き込む。
書き込む情報は

  • store
    フォルダーのロケーション。
  • folderid
    フォルダーに振られているID。
  • name
    フォルダーの名前。自由に付けられる。日本語でもよい。
  • type
    共有するフォルダーの種類。

何を足せばよいのか、どんなことをすればよいのかは config.php に書かれている。

では、共有したいフォルダーの情報を取ってくる。

$ sudo /usr/share/z-push/backend/zarafa/listfolders.php -l hogeuser
Available folders in store 'hogeuser':
--------------------------------------------------
Folder name:    Suggested Contacts
Folder ID:      ababababababababaabababaabab7602370000000000
Type:           SYNC_FOLDER_TYPE_USER_CONTACT

Folder name:    Junk E-mail
Folder ID:      bcbcbcbcbcbcbcbcbcbcbcbcbcbc7602370000000000
Type:           SYNC_FOLDER_TYPE_USER_MAIL

Folder name:    Tasks
Folder ID:      cdcdcdcdcdcdcdcdcdcdcdcdcdcd76022f0000000000
Type:           SYNC_FOLDER_TYPE_USER_TASK

Folder name:    Notes
Folder ID:      dededededededededededededede76022e0000000000
Type:           SYNC_FOLDER_TYPE_USER_NOTE

Folder name:    Drafts
Folder ID:      efefefefefefefefefefefefefef76022c0000000000
Type:           SYNC_FOLDER_TYPE_USER_MAIL

Folder name:    Calendar
Folder ID:      f0f0f0f0f0f0f0f0f0f0f0f0f0f076022b0000000000
Type:           SYNC_FOLDER_TYPE_USER_APPOINTMENT

Folder name:    Contacts
Folder ID:      010101010101010101010101010176022a0000000000
Type:           SYNC_FOLDER_TYPE_USER_CONTACT

これを全ユーザーに対して行い情報を集めて config.php に追記する。

/usr/share/z-push/config.php
    $additionalFolders = array(
        // demo entry for the synchronization of contacts from the public folder.
        // uncomment (remove '/*' '*/') and fill in the folderid
/*
        array(
            'store'     => "SYSTEM",
            'folderid'  => "",
            'name'      => "Public Contacts",
            'type'      => SYNC_FOLDER_TYPE_USER_CONTACT,
        ),
*/
        // hogeuser
        array(
            'store'     => "hogeuser",
            'folderid'  => "f0f0f0f0f0f0f0f0f0f0f0f0f0f076022b0000000000",
            'name'      => "hogeuser's Calendar",
            'type'      => SYNC_FOLDER_TYPE_USER_APPOINTMENT,
        ),
        // hogewife
        // これ以降どんどん足していく。
    );

保存したら設定終わり。


設定後、しばらく待っているだけでiPhoneやiPadたちが同期を始める。
カレンダーアプリで常に表示したい人のカレンダーを選択しておけば便利。

なお、自分のカレンダーは追加分の同期対象からちゃんと除外される。
つまり hogeuser であれば、自分のカレンダーは Calendar と表示され、妻、娘1、娘2、母のカレンダーは上で自由に付けた名前が表示される。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です