2013-08-11 3 views
3

Есть ли способ отключить автоматическую регистрацию пользователя в ckan?ckan: запретить пользователю автоматическую регистрацию

Я хотел бы иметь ckan сайт, который будет строго только для чтения для посетителей

с фоновым эксклюзивной для участников.

Я прошел через документы, но я не мог найти такого варианта.

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

ответ

3

Самое простое решение, чтобы написать расширение, которое реализует интерфейс IAuthFunctions и переопределить функцию user_create аутентификации.

Вот основные расширение:

def no_registering(context, data_dict): 
    return {'success': False, 'msg': toolkit._('''You cannot register for this 
     site.''')} 

class NoSelfRegistration(plugins.SingletonPlugin): 
    plugins.implements(plugins.IAuthFunctions, inherit=True) 

    def get_auth_functions(self): 
     return { 
      'user_create': no_registering 
     } 

UPDATE: Мы в настоящее время реализует вариант конфигурации, чтобы сделать это (запрос тянуть на https://github.com/okfn/ckan/pull/399).

+1

Хороший совет, я попробую. Я думаю, что это должен быть довольно распространенный сценарий, возможно, этот совет может быть добавлен на какую-нибудь страницу вики ... – opensas

+0

@opensas вы могли бы принять ответ, если вы довольны этим? – dominik

+0

уверен, просто забыл об этом ;-) – opensas

2

Для hub.HealthData.gov, мы создали этот патч

https://github.com/HHS/ckan/commit/0102d4d7cee9151fc5fcfe31c56c485436eddda4

, что делает новый вариант конфигурации ckan.auth. create_user, который мы установили как false.

Это было в тяговой запроса чистилище с тех пор:

https://github.com/okfn/ckan/pull/399

+0

спасибо, я надеюсь, что он скоро будет принят, мне кажется довольно распространенным требованием – opensas

0

Это теперь является стандартной функцией CKAN (по крайней мере, начиная с версии 2.3.2, возможно, и раньше). Вы можете использовать ckan.auth.create_user_via_api and ckan.auth.create_user_via_web configuration options.

По умолчанию ckan.auth.create_user_via_api является ошибочным, но ckan.auth.create_user_via_web - это правда.

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