一般在视频智能安防监控系统EasyNVR的标题都会显示在登录页或者在标题栏,同时EasyNVR的版本信息以及授权信息内也会存在EasyNVR的标识。目前登录页及在标题栏的字样可以自由修改,用户可根据自己的项目名称来对系统进行命名,但是对于授权信息的标识,只可通过隐藏来达到需求。
比如我们有的项目团队就需要将这些信息隐藏,因此我们可以通过添加字段的方式,使其屏蔽相关菜单,以达到客户的需求。
这些显示内容和菜单都是前端自己展示的,所以EasyNVR后端提供一个字段,即shield_menu这个参数,为0时则不隐藏,为1时隐藏。
func (h *APIHandler) GetServerInfo(c *gin.Context) {
ack := NewMsgAck()
ack.EasyDarwin.Header.MessageType = MSG_SC_SERVER_INFO_ACK
sec := utils.Conf().Section("base_config")
shieldMenu := sec.Key("shield_menu").MustBool(false)
server := fmt.Sprintf("%s/%s (Build/%s; Platform/%s;)", "EasyNVR", global.BuildVersion, BuildTime.Format(utils.BuildTimeLayout), strings.Title(runtime.GOOS))
if shieldMenu {
server = fmt.Sprintf("%s (Build/%s; Platform/%s;)", global.BuildVersion, BuildTime.Format(utils.BuildTimeLayout), strings.Title(runtime.GOOS))
}
ack.EasyDarwin.Body = map[string]interface{}{
"Authorization": license.Authorization,
"VersionType": fmt.Sprintf("%v", license.VersionType),
"Hardware": strings.ToUpper(runtime.GOARCH),
"InterfaceVersion": InterfaceVersion,
"IsDemo": sec.Key("demo").MustBool(false),
"IsRtsp": sec.Key("enable_rtsp").MustBool(false),
"LiveStreamAuth": sec.Key("live_streaming_auth").MustBool(false),
"ChannelCount": license.ChannelCount,
"RemainDays": license.RemainDays(),
"ActiveOnline": license.ActiveOnline,
"RunningTime": utils.UpTimeString(),
"ServerTime": utils.DateTime(time.Now()),
"StartUpTime": utils.DateTime(utils.StartTime),
"Server": server,
"shieldMenu": shieldMenu,
}
c.IndentedJSON(http.StatusOK, ack)
}
在获取服务信息接口处添加一个shieldMenu属性返回给前端,为0时则不隐藏,为1时则隐藏相关字段和菜单,因此只要按需求修改该参数即可。
解决效果如下: