redash重置密码BUG解决

redash重置密码BUG解决redash 邮件重置密码 BUG 解决方法 redash 是一个比较少见的开源 BI 工具 由于其 web 框架使用的是 Flask 所以其源码结构和内容还是相对容易看懂 今天在测试其重置密码功能时发现一个 BUG 使得我在点击重置密码邮件中的链接时 总是会出现以下提示 属实烦人 意思大概是你已经接受了邀请 请尝试重置您的密码 WTF 难道我现在不是在重置我的密码吗 但是尝试管理员账号之后发现管理员账号并

redash邮件重置密码BUG解决方法

redash是一个比较少见的开源BI工具,由于其web框架使用的是Flask,所以其源码结构和内容还是相对容易看懂。今天在测试其重置密码功能时发现一个BUG,使得我在点击重置密码邮件中的链接时,总是会出现以下提示:
在这里插入图片描述
属实烦人。意思大概是你已经接受了邀请,请尝试重置您的密码。WTF???难道我现在不是在重置我的密码吗??但是尝试管理员账号之后发现管理员账号并不会触发这个BUG(管理员创建账号时并不需要被邀请)。想来必定是有一个字段记录了我在创建账号时候已经被邀请,继而阻止了我重置密码。







查看源码之后,我们在models的users模型中找到了该字段:

is_invitation_pending = json_cast_property(db.Boolean(True), 'details', 'is_invitation_pending', default=False) 

找出重置密码所调用的函数来跳过检查这个字段的值固然是最靠谱、最简单的做法,但是小弟属实无能,其代码是在前端用js框架写的,实在是无从下手,于是我想到更改数据库值的方法来实现BUG的解决。

redash的数据库使用的是postgres,其基本语法与mysql出入不大,但是进入数据库还是比较新奇的,需要切换用户然后执行psql。postgres依然可以在命令行通过-c的形式直接执行psql语句。由于我使用docker启动redash,所以我进入docker容器,为其写了一个脚本,大体内容如下:

psql -U postgres -c "update users set details = '{}'" 
chown postgres ./脚本.sh chmod 777 ./脚本.sh 

接下来切换到宿主机,执行docker exec -it 容器ID /bin/sh 脚本.sh

然后进入容器查看users表的detail字段,你会发现其已被更改为json类型的”{}”

之后你便可以使用重置密码功能。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210920.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:36
下一篇 2026年3月18日 下午11:36


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号