Google Calendar PHP Api — Проверьте, есть ли у пользователя права на редактирование

У меня есть веб-сайт, которому пользователь может предоставить доступ для редактирования своих календарей Google.
На главной странице сайта отображается список событий из календаря компании, события доступны для редактирования.

Дело в том, что все пользователи на сайте не имеют прав на редактирование событий в календаре (то есть их учетной записи Google). Есть ли способ проверить, есть ли у пользователя права на редактирование календаря через PHP API клиент?
Чтобы уточнить, все пользователи не должны иметь разрешение на редактирование календаря. Если их учетная запись Google имеет доступ, инструменты редактирования должны отображаться. В противном случае они просто получают список событий.

В этом случае календарь является общедоступным, поэтому каждый должен видеть события.
(Было бы не больно, если бы он работал и с закрытым календарем, но, думаю, это сложнее. Требуется резервная учетная запись службы или что-то в этом роде.)

Я в настоящее время использую метод списка из Ресурс событий чтобы получить события.

0

Решение

Календарь список получить возвращает ресурс календарного списка

которая имеет то, что называется роль доступа

accessRole строка Эффективная роль доступа, которую аутентифицированный пользователь имеет в календаре. Только для чтения.

Возможные значения:

  • «freeBusyReader» — обеспечивает доступ для чтения к информации о занятости.
  • «читатель» — обеспечивает доступ для чтения к календарю. Частные события будут отображаться пользователям с правами доступа читателя, но детали события будут скрыты.
  • «писатель» — обеспечивает доступ к календарю для чтения и записи. Частные события будут отображаться для пользователей с доступом для записи, а детали событий будут видны.
  • «владелец» — обеспечивает право собственности на календарь. Эта роль обладает всеми разрешениями роли записи с дополнительной возможностью видеть и управлять списками ACL.

PHP-код выглядит примерно так:

calendarListEntry = $service->calendarList->get('calendarId');

Примечание: использование служебной учетной записи будет намного проще, чем сценарий будет иметь доступ к календарю, и вы можете использовать сценарий для редактирования календаря без необходимости доступа к учетным записям пользователей.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]