2014-12-10 3 views
0

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

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

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

Я в настоящее время с помощью list method из Events Resource чтобы получить события.

ответ

0

Calendar list get возвращает calendar list resource

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

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

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

  • "freeBusyReader" - обеспечивает доступ для чтения к Free/Busy.
  • «читатель» - обеспечивает доступ для чтения к календарю. Частные события появятся у пользователей с доступом к читателю, но данные о мероприятии будут скрыты.
  • «writer» - предоставляет доступ к календарю для чтения и записи. Частные события появятся для пользователей с доступом к записи, и данные о мероприятии будут видны.
  • «владелец» - предоставляет право собственности на календарь. Эта роль имеет все права на роль писателя с дополнительной способностью видеть и управлять списками ACL.

код PHP что-то вроде этого:

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

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

+0

Я использую [listEvents] (https://developers.google.com/google-apps/calendar/v3/reference/events/list), чтобы получить события. Запрос всегда, кажется, возвращает accessRole «reader», независимо от разрешения пользователей. Почему это? Использует ли мое приложение Google при проверке разрешений? Я хочу, чтобы он использовал учетную запись Google пользователей, некоторые пользователи должны иметь разрешения на редактирование календаря, а некоторые нет. Я не хочу настраивать его как в Календаре Google, так и на моем сайте. – Punchlinern

+0

Мне нужно будет проверить список позже. Но с помощью учетной записи службы вы можете контролировать все это через свой сайт – DaImTo

Смежные вопросы