首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >视频监控联网RTSP平台EasyNVR用户管理权限与实际权限不匹配,该如何排查?

视频监控联网RTSP平台EasyNVR用户管理权限与实际权限不匹配,该如何排查?

作者头像
EasyNVR
发布于 2020-08-12 07:58:56
发布于 2020-08-12 07:58:56
86500
代码可运行
举报
文章被收录于专栏:EasyNVREasyNVR
运行总次数:0
代码可运行

TSINGSEE团队将视频平台进行改版之后,增加了角色管理和用户管理的功能,包括EasyGBS、EasyNVR等平台,大家可以重温下这篇文章:新版国标流媒体服务器能否区分用户进行用户管理?

改版之后的平台同时存在用户管理和角色管理,多个用户可以有同一个角色,每个角色可以分配多个设备,从而形成一个良性的分级管理关系。正常来说,用户管理处可以添加用户,且有对应的角色,权限设置了多少通道,就能看查看并管理这些通道。

我们对此功能也进行了一些测试,设置一个用户user1,并分配该用户通道Channel1的权限,因此通过查看user1用户的权限是只拥有一个通道Channel1,但是录像回看列表数据却显示所有的通道,这显然是权限不对应。

分析问题

1、通过使用超级管理员登录查看录像回看列表是拥有全部的通道数据,此时是正确的; 2、查看前端渲染数据是否正常; 3、前端渲染数据没有问题后观察后端接口,通过断点调试发现是此处代码逻辑有问题,因此在此处需要进行修复。

解决问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func (h *APIHandler) QueryRecordDevices(c *gin.Context) {
   params := make(map[string]string)
   for k, v := range c.Request.URL.Query() {
      params[strings.ToLower(k)] = strings.Join(v, ",")
   }
   files, _ := ioutil.ReadDir(dss.RecordDir())
   devs := make([]*DeviceInfo, 0)
   //
   dbclient := nvrdao.GetDB()
   session := sessions.Default(c)
   uname := session.Get("uname") //"admin" //
   sechttp := utils.Conf().Section("default")
   defAdminUser := sechttp.Key("default_user").MustString("easygbs")
   defGuestUser := sechttp.Key("default_guest_user").MustString("guest2020")
   var results = make([]string, 0)
   var is_cunzai = false
   if uname != defAdminUser && uname != defGuestUser {
      selectsql := fmt.Sprintf(`%s.camera_id`, models.RoleCamera{}.TableName())
      joins1 := fmt.Sprintf(`left join %s on %s.id = %s.uid`, models.UserRole{}.TableName(),
         models.User{}.TableName(), models.UserRole{}.TableName())
      joins2 := fmt.Sprintf(`left join %s ON %s.rid = %s.role_id`, models.RoleCamera{}.TableName(),
         models.UserRole{}.TableName(), models.RoleCamera{}.TableName())
 
      wheresql := fmt.Sprintf(`%s.username='%s'`, models.User{}.TableName(), uname)
      dbclient.Table(models.User{}.TableName()).Select(selectsql).
         Where(wheresql).
         Joins(joins1).
         Joins(joins2).Pluck("camera_id", &results)
   } else {
      is_cunzai = true
   }
 
   //
   for _, file := range files {
      isHave := false
      if file.IsDir() {
 
         devName := file.Name()
         var channel uint
         var info models.Camera
         if n, err := fmt.Sscanf(file.Name(), "stream_%d", &channel); err == nil && n == 1 {
            models.DB.Table("camera").First(&info, channel)
         }
         if !models.DB.NewRecord(info) {
            devName = info.Name
         }
         for _, v := range results {
            if v == strconv.Itoa(int(channel)) {
               isHave = true
            }
         }
         if is_cunzai || isHave {
            if strings.Contains(strings.ToLower(devName), strings.ToLower(params["q"])) || params["q"] == fmt.Sprintf("%d", channel) {
               devs = append(devs, &DeviceInfo{
                  ID:       channel,
                  Name:     devName,
                  UpdateAt: utils.DateTime(file.ModTime()),
               })
            }
         }
      }
   }
   pr := utils.NewPageResult(devs).Sort(params["sort"], params["order"])
   start, _ := strconv.Atoi(params["start"])
   limit, _ := strconv.Atoi(params["limit"])
   if limit > 0 {
      pr.Slice(start, limit)
   }
   c.IndentedJSON(http.StatusOK, gin.H{
      "total": pr.Total,
      "rows":  pr.Rows,
   })
}

此时在通过user1用户登录查看录像回看列表数据就只有Channel1通道的数据,用户权限恢复正常。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
国标协议GB28181视频云服务EasyGBS新建用户分配通道数过多显示空白如何优化?
在对接的项目越来越多之后,我们发现其实庞大的监控数量的接入变成了一个普遍问题,在这类问题当中,大多用户都会担心由于数量过大而造成的系统不稳定,然而系统的稳定性还是主要受网络状态的影响。当然在EasyGBS这类国标GB28181协议平台当中,我们也会碰到部分配置逻辑上的问题。
TSINGSEE青犀视频
2021/05/13
3270
全协议视频服务云平台EasyCVR管理员用户无法查看分组下通道信息的问题优化
去年年底,我们在EasyCVR视频服务云平台当中增加了用户管理的功能,多个用户可以有同一个角色,每个角色可以分配多个设备,从而形成一个良性的分级管理关系。在后期的不断实践中,EasyCVR的用户管理和角色管理功能都得到了很多用户的认可,成为了用户的操作习惯。
TSINGSEE青犀视频
2021/05/14
4160
国标GB28181协议客户端EasyGBS国标视频平台级联EasyNVR:EasyGBS如何实现调阅EasyNVR的视频通道?
了解TSINGSEE青犀视频产品的用户知道,作为音视频流媒体行业的视频能力平台设计者,TSINGSEE青犀视频的产品不限设备品牌只要协议支持就可以接入做流转换,其中EasyNVR主要作为RTSP协议设备/平台接入,EasyGBS主要作为GB28181协议设备/平台接入。当有的客户现场设备环境复杂,需要同时使用EasyGBS和EasyNVR两个平台,但是又不希望两个平台件是互相独立的,我们就可以考虑将EasyNVR接入到EasyGBS中,使其方便管理。上文我们已经介绍了EasyNVR接入到EasyGBS的配置过程。本文将详细描述EasyGBS如何实现调阅EasyNVR的视频通道。
EasyNVR
2020/08/25
7920
国标GB28181协议客户端EasyGBS国标视频平台级联EasyNVR:EasyGBS如何实现调阅EasyNVR的视频通道?
RTSP协议网页无插件播放,匿名登录不显示设备资源如何解决?
EasyNVR视频平台的登录方式有两种,一种是用户名登录,也就是需要输入用户名密码,一般在企业内部,管理人员可以设置可登录人员,并分配用户名和密码用于登录;另一种就是匿名登陆,这种登录方式相当于游客登录,匿名登录状态下,游客可以查看内容,但不能添加设备做配置,当然,实际使用时如果不需要此功能,在我们登录鉴权页面是可以关闭匿名登陆的。
EasyNVR
2020/08/21
7520
RTSP协议网页无插件播放,匿名登录不显示设备资源如何解决?
RTSP协议网络摄像头接入视频平台EasyNVR
了解TSINGSEE青犀视频产品的用户都知道,作为专注于音视频流媒体行业的研发团队,我们一直都在追求更前沿的技术,比如H265接入与播放、比如在能力平台上叠加上业务功能,如:用户管理、设备管理等。最近我们就对RTSP协议网络摄像头接入视频平台EasyNVR进行了一次功能的迭代更新,升级后界面直播,视频编码兼容性更强,同时也增加了用户管理功能。有此功能需求的用户可以官网下载更新啦。
EasyNVR
2020/08/20
1.2K0
RTSP协议网页无插件直播平台EasyNVR视频广场无法搜索纯数字关键词的通道,该如何解决的?
最近改版的新版EasyNVR我们发现界面中仍然保留了“视频广场”的显示项,通过视频广场可以查看不同通道的最新视频快照信息,也可以通过搜索方式展现特定的视频通道快照。最近测试中研发测试时,发现在视频广场使用搜索框搜索不到纯数字的关键词。
EasyNVR
2020/09/08
4700
RTSP协议网页无插件直播平台EasyNVR视频广场无法搜索纯数字关键词的通道,该如何解决的?
RTSP协议视频平台EasyNVR接入EasyNVS通道不显示任何数据怎么处理?
EasyNVS云管理平台是新一代基于创新的超融合和技术构建,具备完整的视频流媒体服务能力和运维管理服务能力的云架构平台,可将多套EasyNVR设备统一接口进行登记和管理。
EasyNVR
2020/08/11
6080
RTSP协议视频平台EasyNVR接入EasyNVS通道不显示任何数据怎么处理?
SkeVSS国标视频汇聚云服务使用Onvif、GB28181协议对监控ye摄像机设备进行PTZ云台控制
SkeyeVSS平台可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。平台可支持多协议、多类型设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、海康Ehome等;
Openskeye
2023/04/10
1K0
视频融合云平台EasyCVR增加多级分组,可灵活管理接入设备
EasyCVR支持多类型、多协议方式接入,可对前端接入设备进行统一管理,并能支持采用设备树对设备进行分组、分级管理、设备状态监测、云端运维等,实现对海量接入资源的集中控制与权限分配。
TSINGSEE青犀视频
2022/07/05
3440
RTSP拉流协议视频平台EasyNVR多点认证造成潜在威胁?EasyNVR多点认证机制优化
上一篇我们讲了TSINGSEE青犀视频平台EasyNVR内登陆鉴权的优化,通过优化登陆鉴权,我们可以抵御很多分发用户的攻击。在该问题优化完成后,我们模拟不法分子的攻击对EasyNVR的安全性进行了测试,EasyNVR已经达到了一个安全性很高的级别。
EasyNVR
2020/12/18
5430
RTSP拉流协议视频平台EasyNVR多点认证造成潜在威胁?EasyNVR多点认证机制优化
EasyNVR非管理员登录查看录像列表为空是什么情况?
EasyNVR平台具备分级管理的功能,同时还具备一个最高权限的管理员,该管理员下可以设置其他等级的管理员及普通用户。有用户反应如果使用非管理员登录EasyNVR,将昵称设置成中文,再进入录像回看之后,列表就会显示为空。
EasyNVR
2021/10/28
4870
EasyNVR非管理员登录查看录像列表为空是什么情况?
你用Go写过中间件吗?带你用Gin实现【用户角色权限管理中间件】
下一章封装管理后台的操作日志管理:以中间件+goroutine的方式保存管理员的操作日志
王中阳Go
2022/10/26
1.3K0
你用Go写过中间件吗?带你用Gin实现【用户角色权限管理中间件】
AI智能分析/视频云服务平台EasyCVR通过子用户登录无法查看所属分组如何调整?
针对EasyCVR安防视频云服务平台的用户管理和角色管理方面,我们发现在一些情况下会出现部分通道或者分组无法查看的情况。在上一篇博文中,我们解决了EasyCVR管理员用户无法查看分组下通道信息的问题,本文我们主要处理另一个关于通道分组的问题。
TSINGSEE青犀视频
2021/05/14
8830
RTSP网络摄像头网页无插件直播视频平台EasyNVR自定义标题和CopyRight步骤
由于EasyNVR视频平台能够直接集成到其他的平台定制专属于自己企业的视频监控方案,所以很多项目团队都会选择变更EasyNVR的标题以及CopyRight,换成项目相关的内容,这个需求EasyNVR也是可以实现的,下面就来讲一下实现方法。
EasyNVR
2020/10/10
4730
RTSP网络摄像头网页无插件直播视频平台EasyNVR自定义标题和CopyRight步骤
视频综合管理平台EasyNVS添加https证书配置步骤介绍
之前我们介绍过EasyNVR硬件设备如何开启使用https,大家也可以了解一下。关于EasyNVR的管理平台EasyNVS,也是支持开启https的。本文就介绍一下EasyNVS视频管理平台添加https证书配置的步骤。
TSINGSEE青犀视频
2021/04/15
5550
EasyNVR非管理员登录查看录像列表为空是什么情况?
EasyNVR平台具备分级管理的功能,同时还具备一个最高权限的管理员,该管理员下可以设置其他等级的管理员及普通用户。有用户反映如果使用非管理员登录EasyNVR,将昵称设置成中文,再进入录像回看之后,列表就会显示为空。
TSINGSEE青犀视频
2021/10/26
5080
视频综合管理平台EasyNVS通道列表如何获得RTMP地址和RTSP地址?
视频综合管理平台EasyNVS是新一代的云上架构,能够将分布在不同区域和网络环境下的多套EasyNVR设备,统一接口进行登记和管理,借助云端的宽带资源解决单路设备在云直播中多路分发观看所需的上行宽带问题,及分布式存储在云端的回放问题。
EasyNVR
2020/08/11
9470
视频综合管理平台EasyNVS通道列表如何获得RTMP地址和RTSP地址?
Beego + EasyUI 实战,RBAC 权限管理模块的设计与优化
在现代Web应用开发中,权限管理是不可或缺的核心模块。本文将深入探讨如何基于Beego框架和EasyUI前端技术构建一个高效、可扩展的RBAC(基于角色的访问控制)权限管理系统。不同于简单的概念介绍,本文将从实际项目经验出发,分享我在多个企业级项目中积累的设计思路、优化技巧和最佳实践。
大熊计算机
2025/07/15
1200
Beego + EasyUI 实战,RBAC 权限管理模块的设计与优化
国标平台EasyGBS管理员给子用户分配角色及通道无效问题排查
大家知道EasyGBS有用户管理的机制,管理员用户可以新建子用户,同时有子用户的管理权限和分配权限。在使用EasyGBS管理员为子用户分配角色并分配相应通道后,再登录子用户,发现通道并没有分配成功,且前端也不展示通道情况。
TSINGSEE青犀视频
2021/06/02
4560
Go 语言反射和范型在 API 服务中的应用
  API 接口自然是要获取传过来的数据,不同接口要获取的数据自然也不一样,如果不做特殊处理,必然是每个接口都有一堆功能重复的从 request 里获取参数的代码。
用户2443625
2018/08/23
1.1K0
Go 语言反射和范型在 API 服务中的应用
推荐阅读
国标协议GB28181视频云服务EasyGBS新建用户分配通道数过多显示空白如何优化?
3270
全协议视频服务云平台EasyCVR管理员用户无法查看分组下通道信息的问题优化
4160
国标GB28181协议客户端EasyGBS国标视频平台级联EasyNVR:EasyGBS如何实现调阅EasyNVR的视频通道?
7920
RTSP协议网页无插件播放,匿名登录不显示设备资源如何解决?
7520
RTSP协议网络摄像头接入视频平台EasyNVR
1.2K0
RTSP协议网页无插件直播平台EasyNVR视频广场无法搜索纯数字关键词的通道,该如何解决的?
4700
RTSP协议视频平台EasyNVR接入EasyNVS通道不显示任何数据怎么处理?
6080
SkeVSS国标视频汇聚云服务使用Onvif、GB28181协议对监控ye摄像机设备进行PTZ云台控制
1K0
视频融合云平台EasyCVR增加多级分组,可灵活管理接入设备
3440
RTSP拉流协议视频平台EasyNVR多点认证造成潜在威胁?EasyNVR多点认证机制优化
5430
EasyNVR非管理员登录查看录像列表为空是什么情况?
4870
你用Go写过中间件吗?带你用Gin实现【用户角色权限管理中间件】
1.3K0
AI智能分析/视频云服务平台EasyCVR通过子用户登录无法查看所属分组如何调整?
8830
RTSP网络摄像头网页无插件直播视频平台EasyNVR自定义标题和CopyRight步骤
4730
视频综合管理平台EasyNVS添加https证书配置步骤介绍
5550
EasyNVR非管理员登录查看录像列表为空是什么情况?
5080
视频综合管理平台EasyNVS通道列表如何获得RTMP地址和RTSP地址?
9470
Beego + EasyUI 实战,RBAC 权限管理模块的设计与优化
1200
国标平台EasyGBS管理员给子用户分配角色及通道无效问题排查
4560
Go 语言反射和范型在 API 服务中的应用
1.1K0
相关推荐
国标协议GB28181视频云服务EasyGBS新建用户分配通道数过多显示空白如何优化?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档