2014-12-08 3 views
0

Может ли CKAN использоваться для веб-сайта, где пользователи получают доступ к наборам данных после входа в систему?CKAN с доступом к данным только после входа в систему

Я имею в виду сайт, такой как www.statista.com, с CKAN, который дает пользователям доступ только к нескольким наборам данных. Полный доступ предоставляется после входа (например, пользователям, которые платят за подписку). Возможно ли это с CKAN?

Если это возможно, у CKAN есть своя система аутентификации или можно управлять ею с помощью FIWARE Key Rock GE и Access Control GE?

ответ

3

CKAN имеет свою собственную систему аутентификации, но мы разработали расширение, которое позволяет разработчикам использовать некоторые Idm (включая FIWARE один) для аутентификации пользователей. Если вы хотите использовать это расширение, вы можете проверить инструкции по его установке на https://github.com/conwetlab/ckanext-oauth2

Мы также разработали другое расширение для управления пользователями, которые могут просматривать определенный набор данных. Тем не менее, я думаю, что это расширение не подходит для ваших целей, но вы можете развивать свое собственное расширение (как указано Kapucko). Это очень просто, вы должны следовать инструкциям, приведенным на странице http://docs.ckan.org/en/latest/extensions/tutorial.html.

В вашем случае вам придется реализовать интерфейс IAuthFunctions плагин, перезаписать функцию package_show и вернуть { 'success': True } только тогда, когда пользователь вошел в систему. Кажется, я помню, что это происходит только тогда, когда context.get('auth_user_obj') is not None.

Вы также можете использовать организации и создать в нем все наборы данных (установка поля Visibility на Private). Тем не менее, я не рекомендую вам этот подход, так как вам придется вручную вставлять новых пользователей.