Skip to main content

引入或取消对 DCOR 上的数据和元数据管理的限制(授权)

项目描述

PyPI 版本 构建状态 覆盖状态

本模块介绍/解除对 DCOR 上数据和元数据管理的限制(授权)。相应的 UI 元素进行了相应的修改:

  • 授权(auth.py)

    • 数据集:不允许删除数据集,除非它们是草稿

    • 数据集:允许清除已删除的数据集

    • 数据集:不允许切换到更严格的许可证

    • 数据集:不允许更改名称(slug)

    • 数据集:不允许向非草稿数据集添加资源

    • 数据集:不允许将公共数据集的可见性设置为私有

    • 数据集:不允许通过 Web 界面上传数据集

    • 组织:不允许 bulk_update_delete(例如组织管理员的数据集)

    • 资源:不允许删除资源,除非它们是草稿

    • 资源:只允许更改“描述”

    • 资源:上传时不允许设置资源ID

    • 用户:允许所有登录用户创建数据集、圈子和集合

  • 验证 (validate.py)

    • 数据集:强制用户选择作者

    • 数据集:作者列表“作者”是 CSV

    • 数据集:解析 DOI 字段(删除 URL 部分)

    • 数据集:强制用户选择许可证

    • 数据集:仅限于基本 CC 许可证

    • 数据集:必要时使用随机字符自动生成数据集名称(slug)(不适用于管理员)

    • 数据集:没有资源的数据集被认为是草稿;它的状态不能设置为“活动”

    • 数据集:不包含至少一个有效 .rtdc 资源的数据集的状态不能设置为“活动”

    • 资源:不允许为数据集上传同名资源(对 ckanext-dcor_depot 很重要)

    • 资源:确保资源名称与上传的文件名匹配;这实际上是在 plugin.before_create (IResourceController) 中实现的,而不是在 validate.py 中

    • 资源:上传期间自定义资源名称被覆盖

    • 资源:不允许资源名称中出现奇怪的字符

    • 资源:将上传数据扩展名限制为 .rtdc、.csv、.tsv、.pdf、.txt、.png、.jpg、.tif、.py、.ipynb、.ini

    • 资源:配置元数据(使用dclab.dfn.config_funcs

  • IPermissionLabels (plugin.py)

    • 如果私有数据集位于用户 A 所属的组中,则允许用户 A 查看用户 B 的私有数据集。

  • 用户界面数据集:

    • 在templates/package/resources.html中隐藏“添加新资源”按钮

    • 添加字段作者(csv 列表)

    • 添加字段doi(验证器解析 URL)

    • 添加字段引用(解析 arxiv、bioRxiv、DOI、链接)

    • 添加 CC 许可证文件licenses.json(仅在编辑数据集时显示限制较少的许可证)

  • 用户界面组织:

    • 删除批量视图中的“删除”按钮

  • 用户界面资源:

    • 不要显示这些变量(因为它们是多余的):['last modified', 'revision id', 'url type', 'state', 'on same domain'] ( templates/package/resource_read.html )

    • 通过“toggle-more”显示 DC 配置数据

    • 通过dcor_schemas/resource_schema_supplements中的 json 文件添加补充资源模式

  • 后台工作:

    • 为每个数据集设置 mimetype

    • 为每个 DC 数据集填充“dc:sec:key”元数据

    • 创建资源时生成 sha256 哈希

  • 配置关键字:

    • ckanext.dcor_schemas.allow_public_datasets布尔参数可用于禁用公共数据集的创建(例如,用于 DCOR-med)

    • ckanext.dcor_schemas.json_resource_schema_dir参数可用于指定包含定义补充资源模式的 .json 文件的目录。默认值为 package,这意味着使用此扩展的补充资源模式。

  • API 扩展:

    • resource_schema_supplements返回当前补充资源模式的字典

    • supported_resource_suffixes返回支持的资源后缀列表

  • 命令行:

    • 为没有数据集且在一定时间内没有活动的用户添加 CKAN 命令list-zombie-users

    • 添加运行所有资源的所有后台作业的 CKAN 命令run-jobs-dcor-schemas(如果尚未完成)

安装

只需运行

pip install ckanext-dcor_schemas

在配置文件ckan.ini中:

ckan.plugins = [...] dcor_schemas
ckan.extra_resource_fields = sha256

测试

如果安装了 CKAN/DCOR 并设置了测试,则可以使用 pytest 测试此扩展:

pytest ckanext

也可以使用dcor-test <https://app.vagrantup.com/paulmueller/boxes/dcor-test/>图像在虚拟机中通过 vagrant 进行 测试。确保已安装vagrantvirtualbox,并在此存储库的根目录中运行以下命令:

# Setup virtual machine using `Vagrantfile`
vagrant up
# Run the tests
vagrant ssh -- sudo bash /testing/vagrant-run-tests.sh

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ckanext-dcor_schemas-0.17.2.tar.gz (54.6 kB 查看哈希)

已上传 source

内置分布

ckanext_dcor_schemas-0.17.2-py3-none-any.whl (66.8 kB 查看哈希

已上传 py3