有没有办法在ckan中禁用用户自动注册?
我想要一个对访问者严格只读的 ckan 网站
具有贡献者专用的后端。
我浏览了文档,但找不到任何这样的选项。
欢迎任何有关如何为此目的配置和保护 ckan 的建议
最简单的解决方案是编写一个实现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请求请求)。
对于 hub.HealthData.gov,我们创建了这个补丁
https://github.com/HHS/ckan/commit/0102d4d7cee9151fc5fcfe31c56c485436eddda4
这产生了一个新的配置选项 ckan.auth。我们设置为 false 的 create_user。
从那时起,它一直处于拉取请求炼狱中:
这现在是 CKAN 的标准功能(至少从 2.3.2 版开始,可能更早)。您可以使用ckan.auth.create_user_via_api
和ckan.auth.create_user_via_web
配置选项。
默认情况下,ckan.auth.create_user_via_api
为假但ckan.auth.create_user_via_web
为真。