对于大多数平台来说,登录是保证用户资料不丢失的一个重要途径,比如EasyCVR这样的平台,一般都会有一个固定的默认用户,用来做一系列资料的备份,因此EasyCVR默认用户不支持被删除。
但是在某一次测试当中,我们意外地发现了默认用户能被删除的情况,因此我们要对此情况做排查及优化,避免在正式使用中出现这类问题。
通过排查代码发现,此处查询默认用户字段和数据库数据对不上:
修改代码如下,首先查询数据库中默认用户的id,再与需要删除的用户做出对比,如果包含则不能删除。
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的功能及视频直播方式感兴趣,欢迎了解及测试。