ckan:阻止用户自动注册

时间:2013-08-11 12:33:54

标签: security ckan

有没有办法在ckan中禁用用户自动注册?

我希望有一个ckan网站,对访问者来说是严格只读的

后端专供贡献者。

我浏览了文档,但我找不到任何类似的选项。

欢迎任何有关如何为此目的配置和保护ckan的建议

3 个答案:

答案 0 :(得分:3)

最简单的解决方案是编写一个实现IAuthFunctions接口的扩展并覆盖user_create auth函数。

这是基本的扩展名:

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
        }

更新:我们目前正在实施配置选项(https://github.com/okfn/ckan/pull/399处的拉取请求)。

答案 1 :(得分:2)

对于hub.HealthData.gov,我们创建了此补丁

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

创建一个新的配置选项ckan.auth。我们设置为false的create_user。

从那时起它一直处于拉动请求炼狱中:

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

答案 2 :(得分:1)

现在这是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为false,但ckan.auth.create_user_via_web为真。