有没有办法在ckan中禁用用户自动注册?
我希望有一个ckan网站,对访问者来说是严格只读的
后端专供贡献者。
我浏览了文档,但我找不到任何类似的选项。
欢迎任何有关如何为此目的配置和保护ckan的建议
答案 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。
从那时起它一直处于拉动请求炼狱中:
答案 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
为真。