Ограничения на изображения профиля Salesforce Chatter

Можно ли ограничить доступ к изображениям профиля Chatter таким образом, чтобы только системные администраторы могли загружать фотографии, а все остальные были ограничены?


person sohini chakraborty    schedule 14.04.2015    source источник


Ответы (1)


Обычно безопасность поля в объекте нам бы помогла, но для User этого не существует. По сути, каждому пользователю предоставляется контроль над его или ее собственным профилем, включая изображение, и для объекта пользователя нет разрешений на поля. Вы не можете изменять других пользователей, но можете изменять своих.

Я изо всех сил пытаюсь понять, почему вы хотите это сделать, поскольку возложение бремени загрузки фотографии на администратора кажется занятой работой, которая отнимет у него что-то более продуктивное. Но давайте с этим.

Немного предыстории: URL-адрес фотографии содержится в двух полях объекта User: FullPhotoURL и SmallPhotoURL.

Когда запись User создается впервые, ей назначается фотография профиля с синим смайликом по умолчанию, которая выглядит следующим образом:

Универсальный аватар профиля Salesforce Blue Smiley

URL-адрес фотографий по умолчанию всегда следующий:

  • FullPhotoURL: https://c.eu5.content.force.com/profilephoto/005/F
  • SmallPhotoURL: https://c.eu5.content.force.com/profilephoto/005/T

Если я обновлю фотографию по умолчанию до новой, значение FullPhotoURL будет выглядеть так: https://c.eu5.content.force.com/profilephoto/72924000000CisD/F

И каждый раз, когда он обновляется, значение идентификатора записи выше 72924000000CisD будет обновляться до нового.

Обычная резервная позиция в этом случае будет заключаться в том, чтобы триггер искал изменение значения поля, а затем останавливал транзакцию, тем самым не позволяя пользователю обновлять свою фотографию.

Однако в моем тестировании процесс загрузки фотографии профиля не вызывает срабатывания триггера.

Итак, следующий вариант, который у вас есть, — это пакетный процесс, который выполняется по расписанию. К сожалению, это оставляет вам необходимость где-то отслеживать старые значения фотографий каждого пользователя. Таким образом, шаги высокого уровня для этого обходного пути выглядят следующим образом:

  • Добавьте пользовательское поле для хранения текущего URL-адреса фотографии профиля.
  • Используйте одноразовый пакетный процесс Apex или какой-либо инструмент данных, например загрузчик данных, чтобы заполнить его для существующих пользователей, создайте правило рабочего процесса с обновлением поля, чтобы заполнить его для новых пользовательских записей.
  • Периодически запускайте запланированное задание apex для поиска пользователей с измененными значениями в полях фотографий профиля.
  • Когда вы найдете этих пользователей, либо отметьте их, либо вернитесь к предыдущему значению.

Некрасиво, но это обеспечит необходимый контроль.

Оттуда вам нужно информировать пользователей о том, что они должны ожидать, что это произойдет.

person pchittum    schedule 15.04.2015
comment
Как убедиться, что фотографии по умолчанию всегда /profilephoto/005/F и /profilephoto/005/T? Я пытался подтвердить, что это определенно так, но хочу иметь возможность подтвердить это, прежде чем полагаться на него. - person Robert Henderson; 23.06.2015
comment
Я основываюсь исключительно на значении, которое записывается в это поле по умолчанию при создании нового пользователя. Может ли это когда-нибудь измениться? да. Вероятно ли это? Нет. Более вероятно, что R&D может изменить фактическое изображение в будущем. Но если бы они изменили фактическое значение поля по умолчанию, это было бы нарушением для всех существующих пользователей, все еще использующих старое значение по умолчанию. Сомнительно, чтобы это когда-либо произошло. - person pchittum; 24.06.2015