我正在编写一个Weblate (Version4.3.2)安装脚本,我已经成功地使用curl从Weblate获取了现有的本地化,并从Weblate设置传递Authorization Token值(登录,从右上角打开配置文件菜单,选择Settings - API Access并复制粘贴"personal API键“)。
简而言之,GET /api/translations/(string:project)/(string:component)/(string:language)/file/请求根据https://docs.weblate.org/en/weblate-4.3.2/api.html#get--api-translations-(string-project)-(string-component)-(string-language)-file-的文档工作,我得到了性能相当好的预期结果。
但是,记录在POST /api/translations/(string:project)/(string:component)/(string:language)/file/上的https://docs.weblate.org/en/weblate-4.3.2/api.html#post--api-translations-(string-project)-(string-component)-(string-language)-file-请求总是失败,并导致以下响应:
HTTP/2 403
server: WSGIServer/0.2 CPython/3.8.10
content-type: application/json
vary: Accept,Cookie
allow: GET, POST, PUT, HEAD, OPTIONS
x-ratelimit-limit: 5000
x-ratelimit-remaining: 4878
x-ratelimit-reset: 107
x-frame-options: DENY
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
referrer-policy: same-origin与响应体
{"detail":"You do not have permission to perform this action."}我正在尝试使用Weblate安装的默认管理帐户,因此我希望它具有所有所需的权限。如果令牌不正确,我会得到不同的错误,所以我非常肯定这与令牌错误无关。响应中的HTTP/2状态是由我们的反向代理引起的,我假设Weblate通常只提供HTTP/1.1流量。
我还在项目中授予了所有可能的权限--浏览所有项目-(项目名称)-管理(菜单)-用户;即“管理”、“词汇”、“语言”、“内存”、“屏幕截图”、“源”、“翻译”、"VCS“。
此外,我还使用了后端Django管理界面,可以通过右上角的Wrench图标访问,并选择Tools和Django管理界面。我已经授予了所有我认为可能影响权限的组。实际上,该用户帐户对于“用户组”具有以下价值:
Users,Viewers,All@Sources,All@Languages,All@Administration,All@Translate,All@Glossary,All@Memory,All@Screenshots,All@VCS它为“活动”和“超级用户”启用了状态。
你能提出其他的建议吗?我似乎有明确的许可问题,但我错过了什么?
发布于 2021-12-09 13:36:11
最有可能的是method或conflicts参数是错误的。在这些情况下,API代码会引发权限错误,但它应该告诉用户发生了什么问题。
在下一个版本中,错误消息应该更有用,我已经在https://github.com/WeblateOrg/weblate/commit/4abf2193ed57cb7822db804376c6adde9cccb753中对此进行了改进
https://stackoverflow.com/questions/70263301
复制相似问题