对于大多数平台来说,登录是保证用户资料不丢失的一个重要途径,比如EasyCVR这样的平台,一般都会有一个固定的默认用户,用来做一系列资料的备份,因此EasyCVR默认用户不支持被删除。
但是在某一次测试当中,我们意外地发现了默认用户能被删除的情况,因此我们要对此情况做排查及优化,避免在正式使用中出现这类问题。
通过排查代码发现,此处查询默认用户字段和数据库数据对不上:
修改代码如下,首先查询数据库中默认用户的id,再与需要删除的用户做出对比,如果包含则不能删除。
代码语言:javascript复制defUser := secdefault.Key("default_user").MustString("admin")
dbclient.Where("name = ?", defUser).First(&adminUserModer)
guestUserModer := cvrdo.User{}
defGuestUser := secdefault.Key("default_guest_user").MustString("guest2020")
dbclient.Where("name = ?", defGuestUser).First(&guestUserModer)
for _, v := range userid_arr {
if v == int(adminUserModer.ID) {
c.IndentedJSON(200, "不能删除管理员用户")
return
}
if v == int(guestUserModer.ID) {
c.IndentedJSON(200, "不能删除匿名用户")
return
}
}
优化后,再次测试删除功能,则会出现无法删除的提示。
尽管这个账户不能被删除,但是仍然支持修改用户名,具体方式可以参考:如何修改EasyNVR视频监控系统的登录用户名?
如果大家对EasyCVR的功能及视频直播方式感兴趣,欢迎了解及测试。