3

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

我想要一个对访问者严格只读的 ckan 网站

具有贡献者专用的后端。

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

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

4

3 回答 3

3

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

这是基本扩展:

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请求请求)。

于 2013-08-12T09:40:34.447 回答
2

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

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

这产生了一个新的配置选项 ckan.auth。我们设置为 false 的 create_user。

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

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

于 2013-08-14T22:49:06.480 回答
2

这现在是 CKAN 的标准功能(至少从 2.3.2 版开始,可能更早)。您可以使用ckan.auth.create_user_via_apickan.auth.create_user_via_web配置选项

默认情况下,ckan.auth.create_user_via_api为假但ckan.auth.create_user_via_web为真。

于 2016-02-25T14:27:06.520 回答