This commit is contained in:
wangchuxiao 2023-02-09 14:40:49 +08:00
parent 8c6c7ee21f
commit 414915eb3b
66 changed files with 424 additions and 1296 deletions

View File

@ -14,7 +14,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/middleware" "Open_IM/pkg/common/middleware"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"flag" "flag"
@ -98,7 +98,7 @@ func main() {
//group related routing group //group related routing group
groupRouterGroup := r.Group("/group") groupRouterGroup := r.Group("/group")
groupRouterGroup.Use(func(c *gin.Context) { groupRouterGroup.Use(func(c *gin.Context) {
userID, err := token_verify.ParseUserIDFromToken(c.GetHeader("token"), c.GetString("operationID")) userID, err := tokenverify.ParseUserIDFromToken(c.GetHeader("token"), c.GetString("operationID"))
if err != nil { if err != nil {
c.String(400, err.Error()) c.String(400, err.Error())
c.Abort() c.Abort()

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
rpc "Open_IM/pkg/proto/auth" rpc "Open_IM/pkg/proto/auth"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
@ -165,7 +165,7 @@ func ParseToken(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var expireTime int64 var expireTime int64
ok, _, errInfo, expireTime = token_verify.GetUserIDFromTokenExpireTime(c.Request.Header.Get("token"), params.OperationID) ok, _, errInfo, expireTime = tokenverify.GetUserIDFromTokenExpireTime(c.Request.Header.Get("token"), params.OperationID)
if !ok { if !ok {
errMsg := params.OperationID + " " + "GetUserIDFromTokenExpireTime failed " + errInfo errMsg := params.OperationID + " " + "GetUserIDFromTokenExpireTime failed " + errInfo
log.NewError(params.OperationID, errMsg) log.NewError(params.OperationID, errMsg)
@ -204,7 +204,7 @@ func ForceLogout(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -4,7 +4,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"net/http" "net/http"
@ -20,7 +20,7 @@ func SetClientInitConfig(c *gin.Context) {
return return
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
err, _ := token_verify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID) err, _ := tokenverify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID)
if err != nil { if err != nil {
errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token") errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg, errMsg) log.NewError(req.OperationID, errMsg, errMsg)
@ -52,7 +52,7 @@ func GetClientInitConfig(c *gin.Context) {
return return
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
err, _ := token_verify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID) err, _ := tokenverify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID)
if err != nil { if err != nil {
errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token") errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg, errMsg) log.NewError(req.OperationID, errMsg, errMsg)

View File

@ -5,7 +5,7 @@ package friend
// api "Open_IM/pkg/api_struct" // api "Open_IM/pkg/api_struct"
// "Open_IM/pkg/common/config" // "Open_IM/pkg/common/config"
// "Open_IM/pkg/common/log" // "Open_IM/pkg/common/log"
// "Open_IM/pkg/common/token_verify" // "Open_IM/pkg/common/tokenverify"
// "Open_IM/pkg/getcdv3" // "Open_IM/pkg/getcdv3"
// rpc "Open_IM/pkg/proto/friend" // rpc "Open_IM/pkg/proto/friend"
// open_im_sdk "Open_IM/pkg/proto/sdk_ws" // open_im_sdk "Open_IM/pkg/proto/sdk_ws"
@ -39,7 +39,7 @@ package friend
// utils.CopyStructFields(req.CommID, &params) // utils.CopyStructFields(req.CommID, &params)
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -84,7 +84,7 @@ package friend
// utils.CopyStructFields(req, &params) // utils.CopyStructFields(req, &params)
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) // ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
// if !ok { // if !ok {
// errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.OperationID, errMsg) // log.NewError(req.OperationID, errMsg)
@ -146,7 +146,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -202,7 +202,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -258,7 +258,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -312,7 +312,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -373,7 +373,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -427,7 +427,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -480,7 +480,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -535,7 +535,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -591,7 +591,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)
@ -647,7 +647,7 @@ package friend
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.CommID.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) // ok, req.CommID.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID)
// if !ok { // if !ok {
// errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.CommID.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.CommID.OperationID, errMsg) // log.NewError(req.CommID.OperationID, errMsg)

View File

@ -6,7 +6,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
rpc "Open_IM/pkg/proto/group" rpc "Open_IM/pkg/proto/group"
@ -52,7 +52,7 @@ func KickGroupMember(c *gin.Context) {
utils.CopyStructFields(req, &params) utils.CopyStructFields(req, &params)
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -115,7 +115,7 @@ func GetGroupMembersInfo(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -159,7 +159,7 @@ func GetGroupMemberList(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -216,7 +216,7 @@ func GetGroupAllMemberList(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -272,7 +272,7 @@ func GetJoinedGroupList(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -333,7 +333,7 @@ func InviteUserToGroup(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -406,7 +406,7 @@ func InviteUserToGroup(c *gin.Context) {
// //
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) // ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
// if !ok { // if !ok {
// errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.OperationID, errMsg) // log.NewError(req.OperationID, errMsg)
@ -471,7 +471,7 @@ func GetRecvGroupApplicationList(c *gin.Context) {
utils.CopyStructFields(req, params) utils.CopyStructFields(req, params)
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -542,7 +542,7 @@ func GetGroupsInfo(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -611,7 +611,7 @@ func ApplicationGroupResponse(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -665,7 +665,7 @@ func JoinGroup(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -718,7 +718,7 @@ func QuitGroup(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -772,7 +772,7 @@ func QuitGroup(c *gin.Context) {
// argsHandle(&params, req) // argsHandle(&params, req)
// var ok bool // var ok bool
// var errInfo string // var errInfo string
// ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) // ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
// if !ok { // if !ok {
// errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.OperationID, errMsg) // log.NewError(req.OperationID, errMsg)
@ -845,7 +845,7 @@ func TransferGroupOwner(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -899,7 +899,7 @@ func DismissGroup(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -953,7 +953,7 @@ func MuteGroupMember(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -1009,7 +1009,7 @@ func CancelMuteGroupMember(c *gin.Context) {
utils.CopyStructFields(req, &params) utils.CopyStructFields(req, &params)
//var err error //var err error
//if err, req.OpUserID, _ = token_verify.ParseUserIDFromToken(c.Request.Header.Get("token"), req.OperationID); err != nil { //if err, req.OpUserID, _ = tokenverify.ParseUserIDFromToken(c.Request.Header.Get("token"), req.OperationID); err != nil {
// tracelog.WriteErrorResponse(nCtx, "ParseUserIDFromToken", err) // tracelog.WriteErrorResponse(nCtx, "ParseUserIDFromToken", err)
// return // return
//} //}
@ -1053,7 +1053,7 @@ func MuteGroup(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -1107,7 +1107,7 @@ func CancelMuteGroup(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -1151,7 +1151,7 @@ func SetGroupMemberNickname(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -1205,7 +1205,7 @@ func SetGroupMemberInfo(c *gin.Context) {
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req)
var opUserID string var opUserID string
ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, opUserID, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -1262,7 +1262,7 @@ func GetGroupAbstractInfo(c *gin.Context) {
GroupMemberNumber int32 `json:"groupMemberNumber"` GroupMemberNumber int32 `json:"groupMemberNumber"`
GroupMemberListHash uint64 `json:"groupMemberListHash"` GroupMemberListHash uint64 `json:"groupMemberListHash"`
} }
//common.ApiToRpc(c, &api.GetGroupAbstractInfoReq{}, &GetGroupAbstractInfoResp{}, config.Config.RpcRegisterName.OpenImGroupName, rpc.NewGroupClient, utils.GetSelfFuncName(), token_verify.ParseUserIDFromToken) //common.ApiToRpc(c, &api.GetGroupAbstractInfoReq{}, &GetGroupAbstractInfoResp{}, config.Config.RpcRegisterName.OpenImGroupName, rpc.NewGroupClient, utils.GetSelfFuncName(), tokenverify.ParseUserIDFromToken)
common.ApiToRpc(c, &api.GetGroupAbstractInfoReq{}, &GetGroupAbstractInfoResp{}, config.Config.RpcRegisterName.OpenImGroupName, rpc.NewGroupClient, utils.GetSelfFuncName()) common.ApiToRpc(c, &api.GetGroupAbstractInfoReq{}, &GetGroupAbstractInfoResp{}, config.Config.RpcRegisterName.OpenImGroupName, rpc.NewGroupClient, utils.GetSelfFuncName())
//var ( //var (
@ -1275,7 +1275,7 @@ func GetGroupAbstractInfo(c *gin.Context) {
// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) // c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
// return // return
//} //}
//ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) //ok, opUserID, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
//if !ok { //if !ok {
// errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") // errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
// log.NewError(req.OperationID, errMsg) // log.NewError(req.OperationID, errMsg)

View File

@ -5,7 +5,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
rpc "Open_IM/pkg/proto/group" rpc "Open_IM/pkg/proto/group"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
@ -23,7 +23,7 @@ func GetJoinedSuperGroupList(c *gin.Context) {
return return
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, opUserID, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -59,7 +59,7 @@ func GetSuperGroupsInfo(c *gin.Context) {
return return
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
ok, opUserID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, opUserID, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -12,7 +12,7 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbChat "Open_IM/pkg/proto/msg" pbChat "Open_IM/pkg/proto/msg"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
@ -174,7 +174,7 @@ func ManagementSendMsg(c *gin.Context) {
} }
log.NewInfo(params.OperationID, data, params) log.NewInfo(params.OperationID, data, params)
token := c.Request.Header.Get("token") token := c.Request.Header.Get("token")
claims, err := token_verify.ParseToken(token, params.OperationID) claims, err := tokenverify.ParseToken(token, params.OperationID)
if err != nil { if err != nil {
log.NewError(params.OperationID, "parse token failed", err.Error(), token) log.NewError(params.OperationID, "parse token failed", err.Error(), token)
c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""})
@ -307,7 +307,7 @@ func ManagementBatchSendMsg(c *gin.Context) {
} }
log.NewInfo(params.OperationID, data, params) log.NewInfo(params.OperationID, data, params)
token := c.Request.Header.Get("token") token := c.Request.Header.Get("token")
claims, err := token_verify.ParseToken(token, params.OperationID) claims, err := tokenverify.ParseToken(token, params.OperationID)
if err != nil { if err != nil {
log.NewError(params.OperationID, "parse token failed", err.Error()) log.NewError(params.OperationID, "parse token failed", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""})

View File

@ -11,7 +11,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbRelay "Open_IM/pkg/proto/relay" pbRelay "Open_IM/pkg/proto/relay"
rpc "Open_IM/pkg/proto/user" rpc "Open_IM/pkg/proto/user"
@ -46,7 +46,7 @@ func GetAllUsersUid(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -101,7 +101,7 @@ func AccountCheck(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -144,7 +144,7 @@ func GetUsersOnlineStatus(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
rpc "Open_IM/pkg/proto/msg" rpc "Open_IM/pkg/proto/msg"
pbCommon "Open_IM/pkg/proto/sdk_ws" pbCommon "Open_IM/pkg/proto/sdk_ws"
@ -46,7 +46,7 @@ func DelMsg(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -88,7 +88,7 @@ func DelSuperGroupMsg(c *gin.Context) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req)
var ok bool var ok bool
var errInfo string var errInfo string
ok, rpcReq.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, rpcReq.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + rpcReq.OpUserID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + rpcReq.OpUserID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -194,7 +194,7 @@ func ClearMsg(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -244,7 +244,7 @@ func SetMsgMinSeq(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
rpc "Open_IM/pkg/proto/msg" rpc "Open_IM/pkg/proto/msg"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
@ -33,7 +33,7 @@ func SetMessageReactionExtensions(c *gin.Context) {
} }
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -82,7 +82,7 @@ func GetMessageListReactionExtensions(c *gin.Context) {
} }
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -128,7 +128,7 @@ func AddMessageReactionExtensions(c *gin.Context) {
} }
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -173,7 +173,7 @@ func DeleteMessageReactionExtensions(c *gin.Context) {
} }
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -3,7 +3,7 @@ package msg
import ( import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbChat "Open_IM/pkg/proto/msg" pbChat "Open_IM/pkg/proto/msg"
sdk_ws "Open_IM/pkg/proto/sdk_ws" sdk_ws "Open_IM/pkg/proto/sdk_ws"
@ -28,7 +28,7 @@ func GetSeq(c *gin.Context) {
} }
token := c.Request.Header.Get("token") token := c.Request.Header.Get("token")
if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { if ok, err := tokenverify.VerifyToken(token, params.SendID); !ok {
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()})
return return
} }

View File

@ -3,7 +3,7 @@ package msg
import ( import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
"Open_IM/pkg/proto/msg" "Open_IM/pkg/proto/msg"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
@ -39,7 +39,7 @@ func PullMsgBySeqList(c *gin.Context) {
} }
token := c.Request.Header.Get("token") token := c.Request.Header.Get("token")
if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { if ok, err := tokenverify.VerifyToken(token, params.SendID); !ok {
if err != nil { if err != nil {
log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error(), token, params.SendID) log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error(), token, params.SendID)
} }

View File

@ -4,7 +4,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbOffice "Open_IM/pkg/proto/office" pbOffice "Open_IM/pkg/proto/office"
pbCommon "Open_IM/pkg/proto/sdk_ws" pbCommon "Open_IM/pkg/proto/sdk_ws"
@ -44,7 +44,7 @@ func GetUserTags(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -110,7 +110,7 @@ func CreateTag(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -170,7 +170,7 @@ func DeleteTag(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -230,7 +230,7 @@ func SetTag(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -290,7 +290,7 @@ func SendMsg2Tag(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -347,7 +347,7 @@ func GetTagSendLogs(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -417,7 +417,7 @@ func GetUserTagByID(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -4,7 +4,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbOffice "Open_IM/pkg/proto/office" pbOffice "Open_IM/pkg/proto/office"
pbCommon "Open_IM/pkg/proto/sdk_ws" pbCommon "Open_IM/pkg/proto/sdk_ws"
@ -44,7 +44,7 @@ func CreateOneWorkMoment(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -108,7 +108,7 @@ func DeleteOneWorkMoment(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -171,7 +171,7 @@ func LikeOneWorkMoment(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -233,7 +233,7 @@ func CommentOneWorkMoment(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -297,7 +297,7 @@ func DeleteComment(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -355,7 +355,7 @@ func GetWorkMomentByID(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -421,7 +421,7 @@ func GetUserWorkMoments(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var opUserID string var opUserID string
ok, opUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, opUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -534,7 +534,7 @@ func GetUserFriendWorkMoments(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -637,7 +637,7 @@ func SetUserWorkMomentsLevel(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
var userID string var userID string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"fmt" "fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/client" openapi "github.com/alibabacloud-go/darabonba-openapi/client"
sts20150401 "github.com/alibabacloud-go/sts-20150401/client" sts20150401 "github.com/alibabacloud-go/sts-20150401/client"
@ -58,7 +58,7 @@ func AliOSSCredential(c *gin.Context) {
var ok bool var ok bool
var userID string var userID string
var errInfo string var errInfo string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
"net/http" "net/http"
@ -30,7 +30,7 @@ func AwsStorageCredential(c *gin.Context) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
var ok bool var ok bool
var errInfo string var errInfo string
ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, _, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -4,7 +4,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"net/http" "net/http"
@ -23,7 +23,7 @@ func FcmUpdateToken(c *gin.Context) {
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req)
ok, UserId, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, UserId, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -6,8 +6,8 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
_ "Open_IM/pkg/common/token_verify" _ "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@ -53,7 +53,7 @@ func MinioUploadFile(c *gin.Context) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req)
var ok bool var ok bool
var errInfo string var errInfo string
ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, _, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -127,7 +127,7 @@ func MinioStorageCredential(c *gin.Context) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
var ok bool var ok bool
var errInfo string var errInfo string
ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, _, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -4,7 +4,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"net/http" "net/http"
@ -21,7 +21,7 @@ func GetRTCInvitationInfo(c *gin.Context) {
return return
} }
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
ok, userID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -66,7 +66,7 @@ func GetRTCInvitationInfoStartApp(c *gin.Context) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
var ok bool var ok bool
var errInfo string var errInfo string
ok, userID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo := tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -4,7 +4,7 @@ import (
api "Open_IM/pkg/api_struct" api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"net/http" "net/http"
@ -24,14 +24,14 @@ func SetAppBadge(c *gin.Context) {
var ok bool var ok bool
var errInfo, opUserID string var errInfo, opUserID string
ok, opUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, opUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": errMsg}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": errMsg})
return return
} }
if !token_verify.CheckAccess(c, opUserID, req.FromUserID) { if !tokenverify.CheckAccess(c, opUserID, req.FromUserID) {
log.NewError(req.OperationID, "CheckAccess false ", opUserID, req.FromUserID) log.NewError(req.OperationID, "CheckAccess false ", opUserID, req.FromUserID)
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "no permission"}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "no permission"})
} }

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"github.com/fatih/structs" "github.com/fatih/structs"
//"github.com/fatih/structs" //"github.com/fatih/structs"
@ -26,7 +26,7 @@ func TencentCloudStorageCredential(c *gin.Context) {
var ok bool var ok bool
var userID string var userID string
var errInfo string var errInfo string
ok, userID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, userID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -6,7 +6,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
cacheRpc "Open_IM/pkg/proto/cache" cacheRpc "Open_IM/pkg/proto/cache"
pbRelay "Open_IM/pkg/proto/relay" pbRelay "Open_IM/pkg/proto/relay"
@ -32,7 +32,7 @@ func GetUsersInfoFromCache(c *gin.Context) {
utils.CopyStructFields(req, &params) utils.CopyStructFields(req, &params)
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -80,7 +80,7 @@ func GetFriendIDListFromCache(c *gin.Context) {
reqPb.OperationID = req.OperationID reqPb.OperationID = req.OperationID
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.UserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.UserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -122,7 +122,7 @@ func GetBlackIDListFromCache(c *gin.Context) {
reqPb.OperationID = req.OperationID reqPb.OperationID = req.OperationID
var ok bool var ok bool
var errInfo string var errInfo string
ok, reqPb.UserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, reqPb.UserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -172,7 +172,7 @@ func GetUsersPublicInfo(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -232,7 +232,7 @@ func UpdateUserInfo(c *gin.Context) {
req.OperationID = params.OperationID req.OperationID = params.OperationID
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -283,7 +283,7 @@ func SetGlobalRecvMessageOpt(c *gin.Context) {
req.OperationID = params.OperationID req.OperationID = params.OperationID
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.UserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.UserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -336,7 +336,7 @@ func GetSelfUserInfo(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(params.OperationID, errMsg) log.NewError(params.OperationID, errMsg)
@ -397,7 +397,7 @@ func GetUsersOnlineStatus(c *gin.Context) {
var ok bool var ok bool
var errInfo string var errInfo string
ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, req.OpUserID, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)
@ -471,7 +471,7 @@ func GetUsers(c *gin.Context) {
} }
var ok bool var ok bool
var errInfo string var errInfo string
ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) ok, _, errInfo = tokenverify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
if !ok { if !ok {
errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token")
log.NewError(req.OperationID, errMsg) log.NewError(req.OperationID, errMsg)

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
commonPb "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
"net/http" "net/http"
@ -29,7 +29,7 @@ func GetGroups(c *gin.Context) {
} }
reqPb.OperationID = utils.OperationIDGenerator() reqPb.OperationID = utils.OperationIDGenerator()
log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req)
reqPb.Pagination = &commonPb.RequestPagination{} reqPb.Pagination = &common.RequestPagination{}
utils.CopyStructFields(&reqPb.Pagination, req) utils.CopyStructFields(&reqPb.Pagination, req)
etcdConn := rpc.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) etcdConn := rpc.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID)
if etcdConn == nil { if etcdConn == nil {
@ -74,7 +74,7 @@ func GetGroupMembers(c *gin.Context) {
} }
reqPb.OperationID = utils.OperationIDGenerator() reqPb.OperationID = utils.OperationIDGenerator()
log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req)
reqPb.Pagination = &commonPb.RequestPagination{ reqPb.Pagination = &common.RequestPagination{
PageNumber: int32(req.PageNumber), PageNumber: int32(req.PageNumber),
ShowNumber: int32(req.ShowNumber), ShowNumber: int32(req.ShowNumber),
} }

View File

@ -7,7 +7,7 @@ import (
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbAdminCms "Open_IM/pkg/proto/admin_cms" pbAdminCms "Open_IM/pkg/proto/admin_cms"
commonPb "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
pb "Open_IM/pkg/proto/user" pb "Open_IM/pkg/proto/user"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"

View File

@ -1,7 +1,7 @@
package check package check
import ( import (
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"context" "context"
) )
@ -10,5 +10,5 @@ func Access(ctx context.Context, ownerUserID string) (err error) {
if err != nil { if err != nil {
return err return err
} }
return token_verify.CheckAccessV3(ctx, ownerUserID) return tokenverify.CheckAccessV3(ctx, ownerUserID)
} }

View File

@ -1,14 +0,0 @@
package register
import (
"fmt"
"github.com/stretchr/testify/assert"
"testing"
)
func Test_CreateTencentSMSClient(t *testing.T) {
result, err := CreateTencentSMSClient()
assert.Nil(t, err)
fmt.Println("return result is ", result)
}

View File

@ -1,59 +0,0 @@
package register
import (
"Open_IM/pkg/common/config"
"errors"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/client"
dysmsapi20170525 "github.com/alibabacloud-go/dysmsapi-20170525/v2/client"
"github.com/alibabacloud-go/tea/tea"
)
type AliSMS struct {
client *dysmsapi20170525.Client
}
func (a AliSMS) SendSms(code int, phoneNumber string) (resp interface{}, err error) {
sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
PhoneNumbers: tea.String(phoneNumber),
SignName: tea.String(config.Config.Demo.AliSMSVerify.SignName),
TemplateCode: tea.String(config.Config.Demo.AliSMSVerify.VerificationCodeTemplateCode),
TemplateParam: tea.String(fmt.Sprintf("{\"code\":\"%d\"}", code)),
}
response, err := a.client.SendSms(sendSmsRequest)
if err != nil {
//log.NewError(params.OperationID, "sendSms error", account, "err", err.Error())
//c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"})
return resp, err
}
if *response.Body.Code != "OK" {
//log.NewError(params.OperationID, "alibabacloud sendSms error", account, "err", response.Body.Code, response.Body.Message)
//c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"})
//return
return resp, errors.New("alibabacloud sendSms error")
}
return resp, nil
}
func NewAliSMS() (*AliSMS, error) {
var a AliSMS
client, err := createClient(tea.String(config.Config.Demo.AliSMSVerify.AccessKeyID), tea.String(config.Config.Demo.AliSMSVerify.AccessKeySecret))
if err != nil {
return &a, err
}
a.client = client
return &a, nil
}
func createClient(accessKeyId *string, accessKeySecret *string) (result *dysmsapi20170525.Client, err error) {
c := &openapi.Config{
// 您的AccessKey ID
AccessKeyId: accessKeyId,
// 您的AccessKey Secret
AccessKeySecret: accessKeySecret,
}
// 访问的域名
c.Endpoint = tea.String("dysmsapi.aliyuncs.com")
result = &dysmsapi20170525.Client{}
result, err = dysmsapi20170525.NewClient(c)
return result, err
}

View File

@ -1,94 +0,0 @@
package register
import (
api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
http2 "Open_IM/pkg/common/http"
"Open_IM/pkg/common/log"
"encoding/json"
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
type ParamsLogin struct {
UserID string `json:"userID"`
Email string `json:"email"`
PhoneNumber string `json:"phoneNumber"`
Password string `json:"password"`
Platform int32 `json:"platform"`
OperationID string `json:"operationID" binding:"required"`
AreaCode string `json:"areaCode"`
}
func Login(c *gin.Context) {
params := ParamsLogin{}
if err := c.BindJSON(&params); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
return
}
var account string
if params.Email != "" {
account = params.Email
} else if params.PhoneNumber != "" {
account = params.PhoneNumber
} else {
account = params.UserID
}
r, err := im_mysql_model.GetRegister(account, params.AreaCode, params.UserID)
if err != nil {
log.NewError(params.OperationID, "user have not register", params.Password, account, err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.NotRegistered, "errMsg": "Mobile phone number is not registered"})
return
}
if r.Password != params.Password {
log.NewError(params.OperationID, "password err", params.Password, account, r.Password, r.Account)
c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "password err"})
return
}
var userID string
if r.UserID != "" {
userID = r.UserID
} else {
userID = r.Account
}
ip := c.Request.Header.Get("X-Forward-For")
if ip == "" {
ip = c.ClientIP()
}
url := fmt.Sprintf("%s/auth/user_token", config.Config.Demo.ImAPIURL)
openIMGetUserToken := api.UserTokenReq{}
openIMGetUserToken.OperationID = params.OperationID
openIMGetUserToken.Platform = params.Platform
openIMGetUserToken.Secret = config.Config.Secret
openIMGetUserToken.UserID = userID
openIMGetUserToken.LoginIp = ip
loginIp := c.Request.Header.Get("X-Forward-For")
if loginIp == "" {
loginIp = c.ClientIP()
}
openIMGetUserToken.LoginIp = loginIp
openIMGetUserTokenResp := api.UserTokenResp{}
bMsg, err := http2.Post(url, openIMGetUserToken, 2)
if err != nil {
log.NewError(params.OperationID, "request openIM get user token error", account, "err", err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": err.Error()})
return
}
err = json.Unmarshal(bMsg, &openIMGetUserTokenResp)
if err != nil || openIMGetUserTokenResp.ErrCode != 0 {
log.NewError(params.OperationID, "request get user token", account, "err", "")
if openIMGetUserTokenResp.ErrCode == constant.LoginLimit {
c.JSON(http.StatusOK, gin.H{"errCode": constant.LoginLimit, "errMsg": "用户登录被限制"})
} else {
c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": ""})
}
return
}
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMGetUserTokenResp.UserToken})
}

View File

@ -1,52 +0,0 @@
package register
import (
"Open_IM/pkg/common/config"
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log"
"Open_IM/pkg/getcdv3"
pbFriend "Open_IM/pkg/proto/friend"
"Open_IM/pkg/utils"
"context"
"strings"
)
var ChImportFriend chan *pbFriend.ImportFriendReq
func init() {
ChImportFriend = make(chan *pbFriend.ImportFriendReq, 1000)
}
func ImportFriendRoutine() {
for {
req := <-ChImportFriend
go func() {
friendUserIDList, err := imdb.GetRegisterAddFriendList(0, 0)
if err != nil {
log.NewError(req.OperationID, utils.GetSelfFuncName(), req, err.Error())
return
}
log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "ImportFriendRoutine IDList", friendUserIDList)
if len(friendUserIDList) == 0 {
log.NewError(req.OperationID, utils.GetSelfFuncName(), "len==0")
return
}
req.FriendUserIDList = friendUserIDList
etcdConn := rpc.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName, req.OperationID)
if etcdConn == nil {
errMsg := req.OperationID + "getcdv3.GetConn == nil"
log.NewError(req.OperationID, errMsg)
return
}
client := pbFriend.NewFriendClient(etcdConn)
rpcResp, err := client.ImportFriend(context.Background(), req)
if err != nil {
log.NewError(req.OperationID, "ImportFriend failed ", err.Error(), req.String())
return
}
if rpcResp.CommonResp.ErrCode != 0 {
log.NewError(req.OperationID, "ImportFriend failed ", rpcResp)
}
}()
}
}

View File

@ -1,60 +0,0 @@
package register
import (
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log"
"Open_IM/pkg/utils"
"github.com/gin-gonic/gin"
"net/http"
)
type resetPasswordRequest struct {
VerificationCode string `json:"verificationCode" binding:"required"`
Email string `json:"email"`
PhoneNumber string `json:"phoneNumber"`
NewPassword string `json:"newPassword" binding:"required"`
AreaCode string `json:"areaCode"`
OperationID string `json:"operationID"`
}
func ResetPassword(c *gin.Context) {
var (
req resetPasswordRequest
)
if err := c.BindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
return
}
var account string
if req.Email != "" {
account = req.Email
} else {
account = req.PhoneNumber
}
if (config.Config.Demo.UseSuperCode && req.VerificationCode != config.Config.Demo.SuperCode) || !config.Config.Demo.UseSuperCode {
accountKey := req.AreaCode + account + "_" + constant.VerificationCodeForResetSuffix
v, err := db.DB.GetAccountCode(accountKey)
if err != nil || v != req.VerificationCode {
log.NewError(req.OperationID, "password Verification code error", account, req.VerificationCode, v)
c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!"})
return
}
}
user, err := im_mysql_model.GetRegister(account, req.AreaCode, "")
if err != nil || user.Account == "" {
if err != nil {
log.NewError(req.OperationID, utils.GetSelfFuncName(), "get register error", err.Error())
}
c.JSON(http.StatusOK, gin.H{"errCode": constant.NotRegistered, "errMsg": "user not register!"})
return
}
if err := im_mysql_model.ResetPassword(account, req.NewPassword); err != nil {
c.JSON(http.StatusOK, gin.H{"errCode": constant.ResetPasswordFailed, "errMsg": "reset password failed: " + err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "reset password success"})
}

View File

@ -1,195 +0,0 @@
package register
import (
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db"
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log"
"Open_IM/pkg/common/utils"
"fmt"
"math/rand"
"net/http"
"time"
"github.com/gin-gonic/gin"
"gopkg.in/gomail.v2"
)
var sms SMS
func init() {
var err error
if config.Config.Demo.AliSMSVerify.Enable {
sms, err = NewAliSMS()
if err != nil {
panic(err)
}
} else {
sms, err = NewTencentSMS()
if err != nil {
panic(err)
}
}
}
type paramsVerificationCode struct {
Email string `json:"email"`
PhoneNumber string `json:"phoneNumber"`
OperationID string `json:"operationID" binding:"required"`
UsedFor int `json:"usedFor"`
AreaCode string `json:"areaCode"`
InvitationCode string `json:"invitationCode"`
}
func SendVerificationCode(c *gin.Context) {
params := paramsVerificationCode{}
if err := c.BindJSON(&params); err != nil {
log.NewError("", "BindJSON failed", "err:", err.Error(), "phoneNumber", params.PhoneNumber, "email", params.Email)
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
return
}
operationID := params.OperationID
if operationID == "" {
operationID = utils.OperationIDGenerator()
}
log.Info(operationID, "SendVerificationCode args: ", "area code: ", params.AreaCode, "Phone Number: ", params.PhoneNumber)
var account string
if params.Email != "" {
account = params.Email
} else {
account = params.PhoneNumber
}
var accountKey = params.AreaCode + account
if params.UsedFor == 0 {
params.UsedFor = constant.VerificationCodeForRegister
}
switch params.UsedFor {
case constant.VerificationCodeForRegister:
_, err := im_mysql_model.GetRegister(account, params.AreaCode, "")
if err == nil {
log.NewError(params.OperationID, "The phone number has been registered", params)
c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": "The phone number has been registered"})
return
}
//需要邀请码
if config.Config.Demo.NeedInvitationCode {
err = im_mysql_model.CheckInvitationCode(params.InvitationCode)
if err != nil {
log.NewError(params.OperationID, "邀请码错误", params)
c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"})
return
}
}
accountKey = accountKey + "_" + constant.VerificationCodeForRegisterSuffix
ok, err := db.DB.JudgeAccountEXISTS(accountKey)
if ok || err != nil {
log.NewError(params.OperationID, "Repeat send code", params, accountKey)
c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": "Repeat send code"})
return
}
case constant.VerificationCodeForReset:
accountKey = accountKey + "_" + constant.VerificationCodeForResetSuffix
ok, err := db.DB.JudgeAccountEXISTS(accountKey)
if ok || err != nil {
log.NewError(params.OperationID, "Repeat send code", params, accountKey)
c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": "Repeat send code"})
return
}
}
rand.Seed(time.Now().UnixNano())
code := 100000 + rand.Intn(900000)
log.NewInfo(params.OperationID, params.UsedFor, "begin store redis", accountKey, code)
err := db.DB.SetAccountCode(accountKey, code, config.Config.Demo.CodeTTL)
if err != nil {
log.NewError(params.OperationID, "set redis error", accountKey, "err", err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"})
return
}
log.NewDebug(params.OperationID, config.Config.Demo)
if params.Email != "" {
m := gomail.NewMessage()
m.SetHeader(`From`, config.Config.Demo.Mail.SenderMail)
m.SetHeader(`To`, []string{account}...)
m.SetHeader(`Subject`, config.Config.Demo.Mail.Title)
m.SetBody(`text/html`, fmt.Sprintf("%d", code))
if err := gomail.NewDialer(config.Config.Demo.Mail.SmtpAddr, config.Config.Demo.Mail.SmtpPort, config.Config.Demo.Mail.SenderMail, config.Config.Demo.Mail.SenderAuthorizationCode).DialAndSend(m); err != nil {
log.Error(params.OperationID, "send mail error", account, err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.MailSendCodeErr, "errMsg": ""})
return
}
} else {
//client, err := CreateClient(tea.String(config.Config.Demo.AliSMSVerify.AccessKeyID), tea.String(config.Config.Demo.AliSMSVerify.AccessKeySecret))
//if err != nil {
// log.NewError(params.OperationID, "create sendSms client err", "err", err.Error())
// c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"})
// return
//}
//sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
// PhoneNumbers: tea.String(accountKey),
// SignName: tea.String(config.Config.Demo.AliSMSVerify.SignName),
// TemplateCode: tea.String(config.Config.Demo.AliSMSVerify.VerificationCodeTemplateCode),
// TemplateParam: tea.String(fmt.Sprintf("{\"code\":\"%d\"}", code)),
//}
response, err := sms.SendSms(code, params.AreaCode+params.PhoneNumber)
//response, err := client.SendSms(sendSmsRequest)
if err != nil {
log.NewError(params.OperationID, "sendSms error", account, "err", err.Error(), response)
c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"})
return
}
}
log.Debug(params.OperationID, "send sms success", code, accountKey)
data := make(map[string]interface{})
data["account"] = account
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verification code has been set!", "data": data})
}
//func CreateClient(accessKeyId *string, accessKeySecret *string) (result *dysmsapi20170525.Client, err error) {
// c := &openapi.Config{
// // 您的AccessKey ID
// AccessKeyId: accessKeyId,
// // 您的AccessKey Secret
// AccessKeySecret: accessKeySecret,
// }
//
// // 访问的域名
// c.Endpoint = tea.String("dysmsapi.aliyuncs.com")
// result = &dysmsapi20170525.Client{}
// result, err = dysmsapi20170525.NewClient(c)
// return result, err
//}
//func CreateTencentSMSClient() (string, error) {
// credential := common.NewCredential(
// config.Config.Demo.TencentSMS.SecretID,
// config.Config.Demo.TencentSMS.SecretKey,
// )
// cpf := profile.NewClientProfile()
// client, err := sms.NewClient(credential, config.Config.Demo.TencentSMS.Region, cpf)
// if err != nil {
// return "", err
// }
// request := sms.NewSendSmsRequest()
// request.SmsSdkAppId = common.StringPtr(config.Config.Demo.TencentSMS.AppID)
// request.SignName = common.StringPtr(config.Config.Demo.TencentSMS.SignName)
// request.TemplateId = common.StringPtr(config.Config.Demo.TencentSMS.VerificationCodeTemplateCode)
// request.TemplateParamSet = common.StringPtrs([]string{"666666"})
// request.PhoneNumberSet = common.StringPtrs([]string{"+971588232183"})
// // 通过client对象调用想要访问的接口需要传入请求对象
// response, err := client.SendSms(request)
// // 非SDK异常直接失败。实际代码中可以加入其他的处理。
// if err != nil {
// log.Error("test", "send code to tencent err", err.Error())
// }
// // 处理异常
// if _, ok := err.(*errors.TencentCloudSDKError); ok {
// log.Error("test", "An API error has returned:", err.Error())
// return "", err
// }
//
// b, _ := json.Marshal(response.Response)
// return string(b), nil
//}

View File

@ -1,189 +0,0 @@
package register
import (
api "Open_IM/pkg/api_struct"
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db"
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
http2 "Open_IM/pkg/common/http"
"Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify"
pbFriend "Open_IM/pkg/proto/friend"
"Open_IM/pkg/utils"
"encoding/json"
"math/big"
"net/http"
"strconv"
"time"
"github.com/gin-gonic/gin"
)
type ParamsSetPassword struct {
UserID string `json:"userID"`
Email string `json:"email"`
Nickname string `json:"nickname"`
PhoneNumber string `json:"phoneNumber"`
Password string `json:"password" binding:"required"`
VerificationCode string `json:"verificationCode"`
Platform int32 `json:"platform" binding:"required,min=1,max=12"`
Ex string `json:"ex"`
FaceURL string `json:"faceURL"`
OperationID string `json:"operationID" binding:"required"`
AreaCode string `json:"areaCode"`
InvitationCode string `json:"invitationCode"`
Gender int32 `json:"gender"`
Birth int32 `json:"birth"`
}
func SetPassword(c *gin.Context) {
params := ParamsSetPassword{}
if err := c.BindJSON(&params); err != nil {
log.NewError(params.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
return
}
ip := c.Request.Header.Get("X-Forward-For")
if ip == "" {
ip = c.ClientIP()
}
log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "ip:", ip)
ok, opUserID, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), params.OperationID)
if !ok || !utils.IsContain(opUserID, config.Config.Manager.AppManagerUid) {
Limited, LimitError := imdb.IsLimitRegisterIp(ip)
if LimitError != nil {
log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip)
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": LimitError.Error()})
return
}
if Limited {
log.NewInfo(params.OperationID, utils.GetSelfFuncName(), "is limited", ip, "params:", params)
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.RegisterLimit, "errMsg": "limited"})
return
}
}
openIMRegisterReq := api.UserRegisterReq{}
var account string
if params.Email != "" {
account = params.Email
openIMRegisterReq.Email = params.Email
} else if params.PhoneNumber != "" {
account = params.PhoneNumber
openIMRegisterReq.PhoneNumber = params.PhoneNumber
} else {
account = params.UserID
}
if params.Nickname == "" {
params.Nickname = account
}
if params.UserID == "" {
if (config.Config.Demo.UseSuperCode && params.VerificationCode != config.Config.Demo.SuperCode) || !config.Config.Demo.UseSuperCode {
accountKey := params.AreaCode + account + "_" + constant.VerificationCodeForRegisterSuffix
v, err := db.DB.GetAccountCode(accountKey)
if err != nil || v != params.VerificationCode {
log.NewError(params.OperationID, "password Verification code error", account, params.VerificationCode)
data := make(map[string]interface{})
data["PhoneNumber"] = account
c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!", "data": data})
return
}
}
if config.Config.Demo.NeedInvitationCode && params.InvitationCode != "" {
err := imdb.CheckInvitationCode(params.InvitationCode)
if err != nil {
c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "InvitationCode error"})
return
}
}
}
//userID := utils.Base64Encode(account)
var userID string
if params.UserID == "" {
userID = utils.Md5(params.OperationID + strconv.FormatInt(time.Now().UnixNano(), 10))
bi := big.NewInt(0)
bi.SetString(userID[0:8], 16)
userID = bi.String()
} else {
userID = params.UserID
}
url := config.Config.Demo.ImAPIURL + "/auth/user_register"
openIMRegisterReq.OperationID = params.OperationID
openIMRegisterReq.Platform = params.Platform
openIMRegisterReq.UserID = userID
openIMRegisterReq.Nickname = params.Nickname
openIMRegisterReq.Secret = config.Config.Secret
openIMRegisterReq.FaceURL = params.FaceURL
openIMRegisterReq.Gender = params.Gender
openIMRegisterReq.Birth = uint32(params.Birth)
openIMRegisterResp := api.UserRegisterResp{}
log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq)
bMsg, err := http2.Post(url, openIMRegisterReq, 2)
if err != nil {
log.NewError(params.OperationID, "request openIM register error", account, "err", err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()})
return
}
err = json.Unmarshal(bMsg, &openIMRegisterResp)
if err != nil || openIMRegisterResp.ErrCode != 0 {
log.NewError(params.OperationID, "request openIM register error", account, "err", "resp: ", openIMRegisterResp.ErrCode)
if err != nil {
log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register limit"})
return
}
if openIMRegisterResp.ErrCode != 0 {
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg})
return
}
}
log.Info(params.OperationID, "begin store mysql", account, params.Password, "info", params.FaceURL, params.Nickname)
err = imdb.SetPassword(account, params.Password, params.Ex, userID, params.AreaCode, ip)
if err != nil {
log.NewError(params.OperationID, "set phone number password error", account, "err", err.Error())
c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()})
return
}
if config.Config.Demo.NeedInvitationCode && params.InvitationCode != "" {
//判断一下验证码的使用情况
LockSucc := imdb.TryLockInvitationCode(params.InvitationCode, userID)
if LockSucc {
imdb.FinishInvitationCode(params.InvitationCode, userID)
}
}
if err := imdb.InsertIpRecord(userID, ip); err != nil {
log.NewError(params.OperationID, utils.GetSelfFuncName(), userID, ip, err.Error())
}
log.Info(params.OperationID, "end setuserInfo", account, params.Password)
// demo onboarding
if params.UserID == "" && config.Config.Demo.OnboardProcess {
select {
case Ch <- OnboardingProcessReq{
OperationID: params.OperationID,
UserID: userID,
NickName: params.Nickname,
FaceURL: params.FaceURL,
PhoneNumber: params.AreaCode + params.PhoneNumber,
Email: params.Email,
}:
case <-time.After(time.Second * 2):
log.NewWarn(params.OperationID, utils.GetSelfFuncName(), "to ch timeOut")
}
}
// register add friend
select {
case ChImportFriend <- &pbFriend.ImportFriendReq{
OperationID: params.OperationID,
FromUserID: userID,
OpUserID: config.Config.Manager.AppManagerUid[0],
}:
case <-time.After(time.Second * 2):
log.NewWarn(params.OperationID, utils.GetSelfFuncName(), "to ChImportFriend timeOut")
}
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMRegisterResp.UserToken})
return
}

View File

@ -1,5 +0,0 @@
package register
type SMS interface {
SendSms(code int, phoneNumber string) (resp interface{}, err error)
}

View File

@ -1,54 +0,0 @@
package register
import (
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/log"
"Open_IM/pkg/utils"
"encoding/json"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
v20210111 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms/v20210111"
)
type TencentSMS struct {
client *v20210111.Client
}
func (t TencentSMS) SendSms(code int, phoneNumber string) (resp interface{}, err error) {
request := v20210111.NewSendSmsRequest()
request.SmsSdkAppId = common.StringPtr(config.Config.Demo.TencentSMS.AppID)
request.SignName = common.StringPtr(config.Config.Demo.TencentSMS.SignName)
request.TemplateId = common.StringPtr(config.Config.Demo.TencentSMS.VerificationCodeTemplateCode)
request.TemplateParamSet = common.StringPtrs([]string{utils.IntToString(code)})
request.PhoneNumberSet = common.StringPtrs([]string{phoneNumber})
// 通过client对象调用想要访问的接口需要传入请求对象
response, err := t.client.SendSms(request)
// 非SDK异常直接失败。实际代码中可以加入其他的处理。
if err != nil {
return response, err
}
// 处理异常
if _, ok := err.(*errors.TencentCloudSDKError); ok {
return response, err
}
b, _ := json.Marshal(response.Response)
log.Debug("tencent send message is ", code, phoneNumber, string(b))
return response, nil
}
func NewTencentSMS() (*TencentSMS, error) {
var a TencentSMS
credential := common.NewCredential(
config.Config.Demo.TencentSMS.SecretID,
config.Config.Demo.TencentSMS.SecretKey,
)
cpf := profile.NewClientProfile()
client, err := v20210111.NewClient(credential, config.Config.Demo.TencentSMS.Region, cpf)
if err != nil {
return &a, err
}
a.client = client
return &a, nil
}

View File

@ -1,86 +0,0 @@
package register
import (
"Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db"
"Open_IM/pkg/common/log"
"Open_IM/pkg/common/utils"
"github.com/gin-gonic/gin"
"net/http"
)
type paramsCertification struct {
Email string `json:"email"`
PhoneNumber string `json:"phoneNumber"`
VerificationCode string `json:"verificationCode"`
OperationID string `json:"operationID" binding:"required"`
UsedFor int `json:"usedFor"`
AreaCode string `json:"areaCode"`
}
func Verify(c *gin.Context) {
params := paramsCertification{}
operationID := params.OperationID
if err := c.BindJSON(&params); err != nil {
log.NewError(operationID, "request params json parsing failed", "", "err", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()})
return
}
if operationID == "" {
operationID = utils.OperationIDGenerator()
}
log.NewInfo(operationID, "recv req: ", params)
var account string
if params.Email != "" {
account = params.Email
} else {
account = params.AreaCode + params.PhoneNumber
}
if config.Config.Demo.UseSuperCode && params.VerificationCode == config.Config.Demo.SuperCode {
log.NewInfo(params.OperationID, "Super Code Verified successfully", account)
data := make(map[string]interface{})
data["account"] = account
data["verificationCode"] = params.VerificationCode
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data})
return
}
log.NewInfo(params.OperationID, " params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo)
log.NewInfo(params.OperationID, "begin get form redis", account)
if params.UsedFor == 0 {
params.UsedFor = constant.VerificationCodeForRegister
}
var accountKey string
switch params.UsedFor {
case constant.VerificationCodeForRegister:
accountKey = account + "_" + constant.VerificationCodeForRegisterSuffix
case constant.VerificationCodeForReset:
accountKey = account + "_" + constant.VerificationCodeForResetSuffix
}
code, err := db.DB.GetAccountCode(accountKey)
log.NewInfo(params.OperationID, "redis phone number and verificating Code", "key: ", accountKey, "code: ", code, "params: ", params)
if err != nil {
log.NewError(params.OperationID, "Verification code expired", accountKey, "err", err.Error())
data := make(map[string]interface{})
data["account"] = account
c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code expired!", "data": data})
return
}
if params.VerificationCode == code {
log.Info(params.OperationID, "Verified successfully", account)
data := make(map[string]interface{})
data["account"] = account
data["verificationCode"] = params.VerificationCode
c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data})
return
} else {
log.Info(params.OperationID, "Verification code error", account, params.VerificationCode)
data := make(map[string]interface{})
data["account"] = account
c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!", "data": data})
}
}

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbRelay "Open_IM/pkg/proto/relay" pbRelay "Open_IM/pkg/proto/relay"
sdk_ws "Open_IM/pkg/proto/sdk_ws" sdk_ws "Open_IM/pkg/proto/sdk_ws"
@ -145,7 +145,7 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe
} }
func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUsersOnlineStatusReq) (*pbRelay.GetUsersOnlineStatusResp, error) { func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUsersOnlineStatusReq) (*pbRelay.GetUsersOnlineStatusResp, error) {
log.NewInfo(req.OperationID, "rpc GetUsersOnlineStatus arrived server", req.String()) log.NewInfo(req.OperationID, "rpc GetUsersOnlineStatus arrived server", req.String())
if !token_verify.IsManagerUserID(req.OpUserID) { if !tokenverify.IsManagerUserID(req.OpUserID) {
log.NewError(req.OperationID, "no permission GetUsersOnlineStatus ", req.OpUserID) log.NewError(req.OperationID, "no permission GetUsersOnlineStatus ", req.OpUserID)
return &pbRelay.GetUsersOnlineStatusResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil return &pbRelay.GetUsersOnlineStatusResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil
} }

View File

@ -6,7 +6,7 @@ import (
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbRelay "Open_IM/pkg/proto/relay" pbRelay "Open_IM/pkg/proto/relay"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
@ -444,7 +444,7 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request, operation
status := http.StatusUnauthorized status := http.StatusUnauthorized
query := r.URL.Query() query := r.URL.Query()
if len(query["token"]) != 0 && len(query["sendID"]) != 0 && len(query["platformID"]) != 0 { if len(query["token"]) != 0 && len(query["sendID"]) != 0 && len(query["platformID"]) != 0 {
if ok, err, msg := token_verify.WsVerifyToken(query["token"][0], query["sendID"][0], query["platformID"][0], operationID); !ok { if ok, err, msg := tokenverify.WsVerifyToken(query["token"][0], query["sendID"][0], query["platformID"][0], operationID); !ok {
if errors.Is(err, constant.ErrTokenExpired) { if errors.Is(err, constant.ErrTokenExpired) {
status = int(constant.ErrTokenExpired.ErrCode) status = int(constant.ErrTokenExpired.ErrCode)
} }

View File

@ -7,12 +7,12 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/http" "Open_IM/pkg/common/http"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
commonPb "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
http2 "net/http" http2 "net/http"
) )
func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb.MsgData, offlinePushUserIDList *[]string) cbApi.CommonCallbackResp { func callbackOfflinePush(operationID string, userIDList []string, msg *common.MsgData, offlinePushUserIDList *[]string) cbApi.CommonCallbackResp {
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
if !config.Config.Callback.CallbackOfflinePush.Enable { if !config.Config.Callback.CallbackOfflinePush.Enable {
return callbackResp return callbackResp
@ -60,7 +60,7 @@ func callbackOfflinePush(operationID string, userIDList []string, msg *commonPb.
return callbackResp return callbackResp
} }
func callbackOnlinePush(operationID string, userIDList []string, msg *commonPb.MsgData) cbApi.CommonCallbackResp { func callbackOnlinePush(operationID string, userIDList []string, msg *common.MsgData) cbApi.CommonCallbackResp {
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
if !config.Config.Callback.CallbackOnlinePush.Enable || utils.IsContain(msg.SendID, userIDList) { if !config.Config.Callback.CallbackOnlinePush.Enable || utils.IsContain(msg.SendID, userIDList) {
return callbackResp return callbackResp
@ -104,7 +104,7 @@ func callbackOnlinePush(operationID string, userIDList []string, msg *commonPb.M
return callbackResp return callbackResp
} }
func callbackBeforeSuperGroupOnlinePush(operationID string, groupID string, msg *commonPb.MsgData, pushToUserList *[]string) cbApi.CommonCallbackResp { func callbackBeforeSuperGroupOnlinePush(operationID string, groupID string, msg *common.MsgData, pushToUserList *[]string) cbApi.CommonCallbackResp {
log.Debug(operationID, utils.GetSelfFuncName(), groupID, msg.String(), pushToUserList) log.Debug(operationID, utils.GetSelfFuncName(), groupID, msg.String(), pushToUserList)
callbackResp := cbApi.CommonCallbackResp{OperationID: operationID} callbackResp := cbApi.CommonCallbackResp{OperationID: operationID}
if !config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable { if !config.Config.Callback.CallbackBeforeSuperGroupOnlinePush.Enable {

View File

@ -8,11 +8,10 @@ import (
"Open_IM/pkg/common/db/relation" "Open_IM/pkg/common/db/relation"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
"Open_IM/pkg/getcdv3"
pbAdminCMS "Open_IM/pkg/proto/admin_cms" pbAdminCMS "Open_IM/pkg/proto/admin_cms"
server_api_params "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus" grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
@ -45,15 +44,15 @@ func NewAdminCMSServer(port int) *adminCMSServer {
admin := &adminCMSServer{ admin := &adminCMSServer{
rpcPort: port, rpcPort: port,
rpcRegisterName: config.Config.RpcRegisterName.OpenImAdminCMSName, rpcRegisterName: config.Config.RpcRegisterName.OpenImAdminCMSName,
etcdSchema: config.Config.Etcd.EtcdSchema, etcdSchema: config.Config.Zookeeper.Schema,
etcdAddr: config.Config.Etcd.EtcdAddr, etcdAddr: config.Config.Zookeeper.ZkAddr,
} }
var mysql relation.Mysql var mysql relation.Mysql
var redis cache.RedisClient var redis cache.RedisClient
mysql.InitConn() mysql.InitConn()
redis.InitRedis() redis.InitRedis()
admin.userInterface = controller.NewUserController(mysql.GormConn()) admin.userInterface = controller.NewUserController(mysql.GormConn())
admin.groupInterface = controller.NewGroupController(mysql.GormConn(), redis.GetClient(), nil) admin.groupInterface = controller.NewGroupInterface(mysql.GormConn(), redis.GetClient(), nil)
admin.adminCMSInterface = controller.NewAdminCMSController(mysql.GormConn()) admin.adminCMSInterface = controller.NewAdminCMSController(mysql.GormConn())
admin.chatLogInterface = controller.NewChatLogController(mysql.GormConn()) admin.chatLogInterface = controller.NewChatLogController(mysql.GormConn())
return admin return admin
@ -68,7 +67,6 @@ func (s *adminCMSServer) Run() {
listenIP = config.Config.ListenIP listenIP = config.Config.ListenIP
} }
address := listenIP + ":" + strconv.Itoa(s.rpcPort) address := listenIP + ":" + strconv.Itoa(s.rpcPort)
//listener network //listener network
listener, err := net.Listen("tcp", address) listener, err := net.Listen("tcp", address)
if err != nil { if err != nil {
@ -116,7 +114,7 @@ func (s *adminCMSServer) AdminLogin(ctx context.Context, req *pbAdminCMS.AdminLo
resp := &pbAdminCMS.AdminLoginResp{} resp := &pbAdminCMS.AdminLoginResp{}
for i, adminID := range config.Config.Manager.AppManagerUid { for i, adminID := range config.Config.Manager.AppManagerUid {
if adminID == req.AdminID && config.Config.Manager.Secrets[i] == req.Secret { if adminID == req.AdminID && config.Config.Manager.Secrets[i] == req.Secret {
token, expTime, err := token_verify.CreateToken(adminID, constant.LinuxPlatformID) token, expTime, err := tokenverify.CreateToken(adminID, constant.LinuxPlatformID)
if err != nil { if err != nil {
log.NewError(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) log.NewError(tracelog.GetOperationID(ctx), utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error())
return nil, err return nil, err
@ -140,7 +138,7 @@ func (s *adminCMSServer) AdminLogin(ctx context.Context, req *pbAdminCMS.AdminLo
} }
func (s *adminCMSServer) GetUserToken(ctx context.Context, req *pbAdminCMS.GetUserTokenReq) (*pbAdminCMS.GetUserTokenResp, error) { func (s *adminCMSServer) GetUserToken(ctx context.Context, req *pbAdminCMS.GetUserTokenReq) (*pbAdminCMS.GetUserTokenResp, error) {
token, expTime, err := token_verify.CreateToken(req.UserID, int(req.PlatformID)) token, expTime, err := tokenverify.CreateToken(req.UserID, int(req.PlatformID))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -529,8 +527,8 @@ func (s *adminCMSServer) GetUserFriends(ctx context.Context, req *pbAdminCMS.Get
resp.FriendNums = int32(count) resp.FriendNums = int32(count)
} }
for _, v := range friendList { for _, v := range friendList {
friendInfo := &server_api_params.FriendInfo{} friendInfo := &common.FriendInfo{}
userInfo := &server_api_params.UserInfo{UserID: v.FriendUserID, Nickname: v.Nickname} userInfo := &common.UserInfo{UserID: v.FriendUserID, Nickname: v.Nickname}
utils.CopyStructFields(friendInfo, v) utils.CopyStructFields(friendInfo, v)
friendInfo.FriendUser = userInfo friendInfo.FriendUser = userInfo
resp.FriendInfoList = append(resp.FriendInfoList, friendInfo) resp.FriendInfoList = append(resp.FriendInfoList, friendInfo)

View File

@ -7,7 +7,7 @@ import (
"Open_IM/pkg/common/db/controller" "Open_IM/pkg/common/db/controller"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
discoveryRegistry "Open_IM/pkg/discovery_registry" discoveryRegistry "Open_IM/pkg/discovery_registry"
pbAuth "Open_IM/pkg/proto/auth" pbAuth "Open_IM/pkg/proto/auth"
@ -40,8 +40,8 @@ func (s *rpcAuth) UserToken(ctx context.Context, req *pbAuth.UserTokenReq) (*pbA
return &resp, nil return &resp, nil
} }
func (s *rpcAuth) parseToken(ctx context.Context, tokensString, operationID string) (claims *token_verify.Claims, err error) { func (s *rpcAuth) parseToken(ctx context.Context, tokensString, operationID string) (claims *tokenverify.Claims, err error) {
claims, err = token_verify.GetClaimFromToken(tokensString) claims, err = tokenverify.GetClaimFromToken(tokensString)
if err != nil { if err != nil {
return nil, utils.Wrap(err, "") return nil, utils.Wrap(err, "")
} }
@ -77,7 +77,7 @@ func (s *rpcAuth) ParseToken(ctx context.Context, req *pbAuth.ParseTokenReq) (*p
func (s *rpcAuth) ForceLogout(ctx context.Context, req *pbAuth.ForceLogoutReq) (*pbAuth.ForceLogoutResp, error) { func (s *rpcAuth) ForceLogout(ctx context.Context, req *pbAuth.ForceLogoutReq) (*pbAuth.ForceLogoutResp, error) {
resp := pbAuth.ForceLogoutResp{} resp := pbAuth.ForceLogoutResp{}
if err := token_verify.CheckAdmin(ctx); err != nil { if err := tokenverify.CheckAdmin(ctx); err != nil {
return nil, err return nil, err
} }
if err := s.forceKickOff(ctx, req.UserID, req.PlatformID, tracelog.GetOperationID(ctx)); err != nil { if err := s.forceKickOff(ctx, req.UserID, req.PlatformID, tracelog.GetOperationID(ctx)); err != nil {

View File

@ -5,7 +5,7 @@ import (
"Open_IM/internal/common/convert" "Open_IM/internal/common/convert"
chat "Open_IM/internal/rpc/msg" chat "Open_IM/internal/rpc/msg"
"Open_IM/pkg/common/db/table/relation" "Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
pbFriend "Open_IM/pkg/proto/friend" pbFriend "Open_IM/pkg/proto/friend"
"context" "context"
@ -53,7 +53,7 @@ func (s *friendServer) RemoveBlack(ctx context.Context, req *pbFriend.RemoveBlac
func (s *friendServer) AddBlack(ctx context.Context, req *pbFriend.AddBlackReq) (*pbFriend.AddBlackResp, error) { func (s *friendServer) AddBlack(ctx context.Context, req *pbFriend.AddBlackReq) (*pbFriend.AddBlackResp, error) {
resp := &pbFriend.AddBlackResp{} resp := &pbFriend.AddBlackResp{}
if err := token_verify.CheckAccessV3(ctx, req.OwnerUserID); err != nil { if err := tokenverify.CheckAccessV3(ctx, req.OwnerUserID); err != nil {
return nil, err return nil, err
} }
black := relation.BlackModel{OwnerUserID: req.OwnerUserID, BlockUserID: req.BlackUserID, OperatorUserID: tracelog.GetOpUserID(ctx)} black := relation.BlackModel{OwnerUserID: req.OwnerUserID, BlockUserID: req.BlackUserID, OperatorUserID: tracelog.GetOpUserID(ctx)}

View File

@ -11,7 +11,7 @@ import (
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/middleware" "Open_IM/pkg/common/middleware"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
pbFriend "Open_IM/pkg/proto/friend" pbFriend "Open_IM/pkg/proto/friend"
pbUser "Open_IM/pkg/proto/user" pbUser "Open_IM/pkg/proto/user"
@ -130,7 +130,7 @@ func (s *friendServer) Run() {
// ok // ok
func (s *friendServer) ApplyToAddFriend(ctx context.Context, req *pbFriend.ApplyToAddFriendReq) (resp *pbFriend.ApplyToAddFriendResp, err error) { func (s *friendServer) ApplyToAddFriend(ctx context.Context, req *pbFriend.ApplyToAddFriendReq) (resp *pbFriend.ApplyToAddFriendResp, err error) {
resp = &pbFriend.ApplyToAddFriendResp{} resp = &pbFriend.ApplyToAddFriendResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil { if err := tokenverify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err return nil, err
} }
if err := callbackBeforeAddFriendV1(ctx, req); err != nil { if err := callbackBeforeAddFriendV1(ctx, req); err != nil {
@ -159,7 +159,7 @@ func (s *friendServer) ApplyToAddFriend(ctx context.Context, req *pbFriend.Apply
// ok // ok
func (s *friendServer) ImportFriends(ctx context.Context, req *pbFriend.ImportFriendReq) (resp *pbFriend.ImportFriendResp, err error) { func (s *friendServer) ImportFriends(ctx context.Context, req *pbFriend.ImportFriendReq) (resp *pbFriend.ImportFriendResp, err error) {
resp = &pbFriend.ImportFriendResp{} resp = &pbFriend.ImportFriendResp{}
if err := token_verify.CheckAdmin(ctx); err != nil { if err := tokenverify.CheckAdmin(ctx); err != nil {
return nil, err return nil, err
} }
if _, err := check.GetUsersInfo(ctx, req.OwnerUserID, req.FriendUserIDs); err != nil { if _, err := check.GetUsersInfo(ctx, req.OwnerUserID, req.FriendUserIDs); err != nil {

View File

@ -13,7 +13,7 @@ import (
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/middleware" "Open_IM/pkg/common/middleware"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
discoveryRegistry "Open_IM/pkg/discovery_registry" discoveryRegistry "Open_IM/pkg/discovery_registry"
pbGroup "Open_IM/pkg/proto/group" pbGroup "Open_IM/pkg/proto/group"
@ -128,7 +128,7 @@ func (s *groupServer) Run() {
} }
func (s *groupServer) CheckGroupAdmin(ctx context.Context, groupID string) error { func (s *groupServer) CheckGroupAdmin(ctx context.Context, groupID string) error {
if !token_verify.IsAppManagerUid(ctx) { if !tokenverify.IsAppManagerUid(ctx) {
groupMember, err := s.GroupInterface.TakeGroupMember(ctx, groupID, tracelog.GetOpUserID(ctx)) groupMember, err := s.GroupInterface.TakeGroupMember(ctx, groupID, tracelog.GetOpUserID(ctx))
if err != nil { if err != nil {
return err return err
@ -142,7 +142,7 @@ func (s *groupServer) CheckGroupAdmin(ctx context.Context, groupID string) error
func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) {
resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}} resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}}
if err := token_verify.CheckAccessV3(ctx, req.OwnerUserID); err != nil { if err := tokenverify.CheckAccessV3(ctx, req.OwnerUserID); err != nil {
return nil, err return nil, err
} }
if req.OwnerUserID == "" { if req.OwnerUserID == "" {
@ -216,7 +216,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR
func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJoinedGroupListReq) (*pbGroup.GetJoinedGroupListResp, error) { func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJoinedGroupListReq) (*pbGroup.GetJoinedGroupListResp, error) {
resp := &pbGroup.GetJoinedGroupListResp{} resp := &pbGroup.GetJoinedGroupListResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil { if err := tokenverify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err return nil, err
} }
total, members, err := s.GroupInterface.PageGroupMember(ctx, nil, []string{req.FromUserID}, nil, req.Pagination.PageNumber, req.Pagination.ShowNumber) total, members, err := s.GroupInterface.PageGroupMember(ctx, nil, []string{req.FromUserID}, nil, req.Pagination.PageNumber, req.Pagination.ShowNumber)
@ -286,7 +286,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite
return nil, constant.ErrArgs.Wrap("user not found " + strings.Join(ids, ",")) return nil, constant.ErrArgs.Wrap("user not found " + strings.Join(ids, ","))
} }
if group.NeedVerification == constant.AllNeedVerification { if group.NeedVerification == constant.AllNeedVerification {
if !token_verify.IsAppManagerUid(ctx) { if !tokenverify.IsAppManagerUid(ctx) {
opUserID := tracelog.GetOpUserID(ctx) opUserID := tracelog.GetOpUserID(ctx)
member, ok := memberMap[opUserID] member, ok := memberMap[opUserID]
if !ok { if !ok {
@ -418,7 +418,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
return nil, constant.ErrUserIDNotFound.Wrap(userID) return nil, constant.ErrUserIDNotFound.Wrap(userID)
} }
} }
if !token_verify.IsAppManagerUid(ctx) { if !tokenverify.IsAppManagerUid(ctx) {
member := memberMap[opUserID] member := memberMap[opUserID]
if member == nil { if member == nil {
return nil, constant.ErrNoPermission.Wrap(fmt.Sprintf("opUserID %s no in group", opUserID)) return nil, constant.ErrNoPermission.Wrap(fmt.Sprintf("opUserID %s no in group", opUserID))
@ -549,7 +549,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup
if !utils.Contain(req.HandleResult, constant.GroupResponseAgree, constant.GroupResponseRefuse) { if !utils.Contain(req.HandleResult, constant.GroupResponseAgree, constant.GroupResponseRefuse) {
return nil, constant.ErrArgs.Wrap("HandleResult unknown") return nil, constant.ErrArgs.Wrap("HandleResult unknown")
} }
if !token_verify.IsAppManagerUid(ctx) { if !tokenverify.IsAppManagerUid(ctx) {
groupMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, req.FromUserID) groupMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, req.FromUserID)
if err != nil { if err != nil {
return nil, err return nil, err
@ -682,7 +682,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq)
func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) { func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) {
resp := &pbGroup.SetGroupInfoResp{} resp := &pbGroup.SetGroupInfoResp{}
if !token_verify.IsAppManagerUid(ctx) { if !tokenverify.IsAppManagerUid(ctx) {
groupMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupInfoForSet.GroupID, tracelog.GetOpUserID(ctx)) groupMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupInfoForSet.GroupID, tracelog.GetOpUserID(ctx))
if err != nil { if err != nil {
return nil, err return nil, err
@ -741,7 +741,7 @@ func (s *groupServer) TransferGroupOwner(ctx context.Context, req *pbGroup.Trans
return nil, constant.ErrArgs.Wrap("NewOwnerUser not in group " + req.NewOwnerUserID) return nil, constant.ErrArgs.Wrap("NewOwnerUser not in group " + req.NewOwnerUserID)
} }
oldOwner := memberMap[req.OldOwnerUserID] oldOwner := memberMap[req.OldOwnerUserID]
if token_verify.IsAppManagerUid(ctx) { if tokenverify.IsAppManagerUid(ctx) {
if oldOwner == nil { if oldOwner == nil {
oldOwner, err = s.GroupInterface.TakeGroupOwner(ctx, req.OldOwnerUserID) oldOwner, err = s.GroupInterface.TakeGroupOwner(ctx, req.OldOwnerUserID)
if err != nil { if err != nil {
@ -893,7 +893,7 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou
if err != nil { if err != nil {
return nil, err return nil, err
} }
if !(tracelog.GetOpUserID(ctx) == req.UserID || token_verify.IsAppManagerUid(ctx)) { if !(tracelog.GetOpUserID(ctx) == req.UserID || tokenverify.IsAppManagerUid(ctx)) {
opMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, req.UserID) opMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, req.UserID)
if err != nil { if err != nil {
return nil, err return nil, err
@ -916,7 +916,7 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
if err != nil { if err != nil {
return nil, err return nil, err
} }
if !(tracelog.GetOpUserID(ctx) == req.UserID || token_verify.IsAppManagerUid(ctx)) { if !(tracelog.GetOpUserID(ctx) == req.UserID || tokenverify.IsAppManagerUid(ctx)) {
opMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, tracelog.GetOpUserID(ctx)) opMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, tracelog.GetOpUserID(ctx))
if err != nil { if err != nil {
return nil, err return nil, err
@ -985,7 +985,7 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
if req.RoleLevel != nil { if req.RoleLevel != nil {
return nil, constant.ErrArgs.Wrap("update role level") return nil, constant.ErrArgs.Wrap("update role level")
} }
} else if !token_verify.IsAppManagerUid(ctx) { } else if !tokenverify.IsAppManagerUid(ctx) {
opMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, tracelog.GetOpUserID(ctx)) opMember, err := s.GroupInterface.TakeGroupMember(ctx, req.GroupID, tracelog.GetOpUserID(ctx))
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -4,7 +4,7 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
pbChat "Open_IM/pkg/proto/msg" pbChat "Open_IM/pkg/proto/msg"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
@ -12,7 +12,7 @@ import (
func (rpc *rpcChat) ClearMsg(_ context.Context, req *pbChat.ClearMsgReq) (*pbChat.ClearMsgResp, error) { func (rpc *rpcChat) ClearMsg(_ context.Context, req *pbChat.ClearMsgReq) (*pbChat.ClearMsgResp, error) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc req: ", req.String()) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc req: ", req.String())
if req.OpUserID != req.UserID && !token_verify.IsManagerUserID(req.UserID) { if req.OpUserID != req.UserID && !tokenverify.IsManagerUserID(req.UserID) {
errMsg := "No permission" + req.OpUserID + req.UserID errMsg := "No permission" + req.OpUserID + req.UserID
log.Error(req.OperationID, errMsg) log.Error(req.OperationID, errMsg)
return &pbChat.ClearMsgResp{ErrCode: constant.ErrNoPermission.ErrCode, ErrMsg: errMsg}, nil return &pbChat.ClearMsgResp{ErrCode: constant.ErrNoPermission.ErrCode, ErrMsg: errMsg}, nil
@ -39,7 +39,7 @@ func (rpc *rpcChat) ClearMsg(_ context.Context, req *pbChat.ClearMsgReq) (*pbCha
func (rpc *rpcChat) SetMsgMinSeq(_ context.Context, req *pbChat.SetMsgMinSeqReq) (*pbChat.SetMsgMinSeqResp, error) { func (rpc *rpcChat) SetMsgMinSeq(_ context.Context, req *pbChat.SetMsgMinSeqReq) (*pbChat.SetMsgMinSeqResp, error) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc req: ", req.String()) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc req: ", req.String())
if req.OpUserID != req.UserID && !token_verify.IsManagerUserID(req.UserID) { if req.OpUserID != req.UserID && !tokenverify.IsManagerUserID(req.UserID) {
errMsg := "No permission" + req.OpUserID + req.UserID errMsg := "No permission" + req.OpUserID + req.UserID
log.Error(req.OperationID, errMsg) log.Error(req.OperationID, errMsg)
return &pbChat.SetMsgMinSeqResp{ErrCode: constant.ErrNoPermission.ErrCode, ErrMsg: errMsg}, nil return &pbChat.SetMsgMinSeqResp{ErrCode: constant.ErrNoPermission.ErrCode, ErrMsg: errMsg}, nil

View File

@ -4,17 +4,17 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/proto/msg" "Open_IM/pkg/proto/msg"
commonPb "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
"time" "time"
) )
func (rpc *rpcChat) DelMsgList(_ context.Context, req *commonPb.DelMsgListReq) (*commonPb.DelMsgListResp, error) { func (rpc *rpcChat) DelMsgList(_ context.Context, req *common.DelMsgListReq) (*common.DelMsgListResp, error) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String())
resp := &commonPb.DelMsgListResp{} resp := &common.DelMsgListResp{}
select { select {
case rpc.delMsgCh <- deleteMsg{ case rpc.delMsgCh <- deleteMsg{
UserID: req.UserID, UserID: req.UserID,
@ -32,7 +32,7 @@ func (rpc *rpcChat) DelMsgList(_ context.Context, req *commonPb.DelMsgListReq) (
} }
func (rpc *rpcChat) DelSuperGroupMsg(ctx context.Context, req *msg.DelSuperGroupMsgReq) (*msg.DelSuperGroupMsgResp, error) { func (rpc *rpcChat) DelSuperGroupMsg(ctx context.Context, req *msg.DelSuperGroupMsgReq) (*msg.DelSuperGroupMsgResp, error) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String())
if !token_verify.CheckAccess(ctx, req.OpUserID, req.UserID) { if !tokenverify.CheckAccess(ctx, req.OpUserID, req.UserID) {
log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.UserID) log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.UserID)
return &msg.DelSuperGroupMsgResp{ErrCode: constant.ErrNoPermission.ErrCode, ErrMsg: constant.ErrNoPermission.ErrMsg}, nil return &msg.DelSuperGroupMsgResp{ErrCode: constant.ErrNoPermission.ErrCode, ErrMsg: constant.ErrNoPermission.ErrMsg}, nil
} }

View File

@ -5,7 +5,7 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
utils2 "Open_IM/pkg/common/utils" utils2 "Open_IM/pkg/common/utils"
pbGroup "Open_IM/pkg/proto/group" pbGroup "Open_IM/pkg/proto/group"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
@ -24,7 +24,7 @@ import (
//} creator->group //} creator->group
func setOpUserInfo(opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) error { func setOpUserInfo(opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) error {
if token_verify.IsManagerUserID(opUserID) { if tokenverify.IsManagerUserID(opUserID) {
u, err := imdb.GetUserByUserID(opUserID) u, err := imdb.GetUserByUserID(opUserID)
if err != nil { if err != nil {
return utils.Wrap(err, "GetUserByUserID failed") return utils.Wrap(err, "GetUserByUserID failed")

View File

@ -6,7 +6,7 @@ import (
"Open_IM/pkg/common/db" "Open_IM/pkg/common/db"
rocksCache "Open_IM/pkg/common/db/rocks_cache" rocksCache "Open_IM/pkg/common/db/rocks_cache"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
cacheRpc "Open_IM/pkg/proto/cache" cacheRpc "Open_IM/pkg/proto/cache"
pbConversation "Open_IM/pkg/proto/conversation" pbConversation "Open_IM/pkg/proto/conversation"
@ -182,7 +182,7 @@ func (rpc *rpcChat) messageVerification(ctx context.Context, data *pbChat.SendMs
log.NewError(data.OperationID, errMsg) log.NewError(data.OperationID, errMsg)
return false, 201, errMsg, nil return false, 201, errMsg, nil
} }
if token_verify.IsManagerUserID(data.MsgData.SendID) { if tokenverify.IsManagerUserID(data.MsgData.SendID) {
return true, 0, "", userIDList return true, 0, "", userIDList
} }
if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin { if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin {
@ -256,7 +256,7 @@ func (rpc *rpcChat) messageVerification(ctx context.Context, data *pbChat.SendMs
log.NewError(data.OperationID, errMsg) log.NewError(data.OperationID, errMsg)
return false, 201, errMsg, nil return false, 201, errMsg, nil
} }
if token_verify.IsManagerUserID(data.MsgData.SendID) { if tokenverify.IsManagerUserID(data.MsgData.SendID) {
return true, 0, "", userIDList return true, 0, "", userIDList
} }
if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin { if data.MsgData.ContentType <= constant.NotificationEnd && data.MsgData.ContentType >= constant.NotificationBegin {

View File

@ -10,7 +10,7 @@ import (
relationTb "Open_IM/pkg/common/db/table/relation" relationTb "Open_IM/pkg/common/db/table/relation"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"Open_IM/pkg/common/tracelog" "Open_IM/pkg/common/tracelog"
server_api_params "Open_IM/pkg/proto/sdk_ws" server_api_params "Open_IM/pkg/proto/sdk_ws"
pbUser "Open_IM/pkg/proto/user" pbUser "Open_IM/pkg/proto/user"
@ -179,7 +179,7 @@ func (s *userServer) GetAllPageFriends(ctx context.Context, ownerUserID string)
// ok // ok
func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (resp *pbUser.UpdateUserInfoResp, err error) { func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (resp *pbUser.UpdateUserInfoResp, err error) {
resp = &pbUser.UpdateUserInfoResp{} resp = &pbUser.UpdateUserInfoResp{}
err = token_verify.CheckAccessV3(ctx, req.UserInfo.UserID) err = tokenverify.CheckAccessV3(ctx, req.UserInfo.UserID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -240,7 +240,7 @@ func (s *userServer) AccountCheck(ctx context.Context, req *pbUser.AccountCheckR
if utils.Duplicate(req.CheckUserIDs) { if utils.Duplicate(req.CheckUserIDs) {
return nil, constant.ErrArgs.Wrap("userID repeated") return nil, constant.ErrArgs.Wrap("userID repeated")
} }
err = token_verify.CheckAdmin(ctx) err = tokenverify.CheckAdmin(ctx)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -2,13 +2,13 @@ package callback_struct
import ( import (
"Open_IM/pkg/proto/group" "Open_IM/pkg/proto/group"
commonPb "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
) )
type CallbackBeforeCreateGroupReq struct { type CallbackBeforeCreateGroupReq struct {
CallbackCommand string `json:"callbackCommand"` CallbackCommand string `json:"callbackCommand"`
OperationID string `json:"operationID"` OperationID string `json:"operationID"`
commonPb.GroupInfo common.GroupInfo
InitMemberList []*group.GroupAddMemberInfo `json:"initMemberList"` InitMemberList []*group.GroupAddMemberInfo `json:"initMemberList"`
} }

View File

@ -1,10 +1,10 @@
package callback_struct package callback_struct
import commonPb "Open_IM/pkg/proto/sdk_ws" import common "Open_IM/pkg/proto/sdk_ws"
type CallbackBeforePushReq struct { type CallbackBeforePushReq struct {
UserStatusBatchCallbackReq UserStatusBatchCallbackReq
*commonPb.OfflinePushInfo *common.OfflinePushInfo
ClientMsgID string `json:"clientMsgID"` ClientMsgID string `json:"clientMsgID"`
SendID string `json:"sendID"` SendID string `json:"sendID"`
GroupID string `json:"groupID"` GroupID string `json:"groupID"`
@ -16,12 +16,12 @@ type CallbackBeforePushReq struct {
type CallbackBeforePushResp struct { type CallbackBeforePushResp struct {
*CommonCallbackResp *CommonCallbackResp
UserIDList []string `json:"userIDList"` UserIDList []string `json:"userIDList"`
OfflinePushInfo *commonPb.OfflinePushInfo `json:"offlinePushInfo"` OfflinePushInfo *common.OfflinePushInfo `json:"offlinePushInfo"`
} }
type CallbackBeforeSuperGroupOnlinePushReq struct { type CallbackBeforeSuperGroupOnlinePushReq struct {
//*commonPb.OfflinePushInfo //*common.OfflinePushInfo
UserStatusBaseCallback UserStatusBaseCallback
ClientMsgID string `json:"clientMsgID"` ClientMsgID string `json:"clientMsgID"`
SendID string `json:"sendID"` SendID string `json:"sendID"`
@ -35,6 +35,6 @@ type CallbackBeforeSuperGroupOnlinePushReq struct {
type CallbackBeforeSuperGroupOnlinePushResp struct { type CallbackBeforeSuperGroupOnlinePushResp struct {
*CommonCallbackResp *CommonCallbackResp
UserIDList []string `json:"userIDList"` UserIDList []string `json:"userIDList"`
OfflinePushInfo *commonPb.OfflinePushInfo `json:"offlinePushInfo"` OfflinePushInfo *common.OfflinePushInfo `json:"offlinePushInfo"`
} }

View File

@ -15,6 +15,7 @@ const (
blackExpireTime = time.Second * 60 * 60 * 12 blackExpireTime = time.Second * 60 * 60 * 12
) )
// args fn will exec when no data in cache
type BlackCache interface { type BlackCache interface {
//get blackIDs from cache //get blackIDs from cache
GetBlackIDs(ctx context.Context, userID string, fn func(ctx context.Context, userID string) ([]string, error)) (blackIDs []string, err error) GetBlackIDs(ctx context.Context, userID string, fn func(ctx context.Context, userID string) ([]string, error)) (blackIDs []string, err error)

View File

@ -21,6 +21,7 @@ const (
conversationExpireTime = time.Second * 60 * 60 * 12 conversationExpireTime = time.Second * 60 * 60 * 12
) )
// args fn will exec when no data in cache
type ConversationCache interface { type ConversationCache interface {
// get user's conversationIDs from cache // get user's conversationIDs from cache
GetUserConversationIDs(ctx context.Context, userID string, fn func(ctx context.Context, userID string) ([]string, error)) ([]string, error) GetUserConversationIDs(ctx context.Context, userID string, fn func(ctx context.Context, userID string) ([]string, error)) ([]string, error)

View File

@ -1,13 +1,47 @@
package cache package cache
import ( import (
"Open_IM/pkg/common/db/relation" "Open_IM/pkg/common/db/table/unrelation"
"Open_IM/pkg/common/tracelog"
"Open_IM/pkg/utils"
"context"
"github.com/dtm-labs/rockscache" "github.com/dtm-labs/rockscache"
"time" "time"
) )
type ExtendMsgSetCache struct { type ExtendMsgSetCache struct {
friendDB *relation.FriendGorm
expireTime time.Duration expireTime time.Duration
rcClient *rockscache.Client rcClient *rockscache.Client
} }
func (e *ExtendMsgSetCache) GetExtendMsg(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, firstModifyTime int64) (extendMsg *unrelation.ExtendMsg, err error) {
getExtendMsg := func() (string, error) {
extendMsg, err := db.DB.GetExtendMsg(sourceID, sessionType, clientMsgID, firstModifyTime)
if err != nil {
return "", utils.Wrap(err, "GetExtendMsgList failed")
}
bytes, err := json.Marshal(extendMsg)
if err != nil {
return "", utils.Wrap(err, "Marshal failed")
}
return string(bytes), nil
}
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "sourceID", sourceID, "sessionType",
sessionType, "clientMsgID", clientMsgID, "firstModifyTime", firstModifyTime, "extendMsg", extendMsg)
}()
extendMsgStr, err := db.DB.Rc.Fetch(extendMsgCache+clientMsgID, time.Second*30*60, getExtendMsg)
if err != nil {
return nil, utils.Wrap(err, "Fetch failed")
}
extendMsg = &mongoDB.ExtendMsg{}
err = json.Unmarshal([]byte(extendMsgStr), extendMsg)
return extendMsg, utils.Wrap(err, "Unmarshal failed")
}
func (e *ExtendMsgSetCache) DelExtendMsg(ctx context.Context, clientMsgID string) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "clientMsgID", clientMsgID)
}()
return utils.Wrap(db.DB.Rc.TagAsDeleted(extendMsgCache+clientMsgID), "DelExtendMsg err")
}

View File

@ -19,12 +19,14 @@ const (
friendKey = "FRIEND_INFO:" friendKey = "FRIEND_INFO:"
) )
// args fn will exec when no data in cache
type FriendCache interface { type FriendCache interface {
GetFriendIDs(ctx context.Context, ownerUserID string, fn func(ctx context.Context, ownerUserID string) (friendIDs []string, err error)) (friendIDs []string, err error) GetFriendIDs(ctx context.Context, ownerUserID string, fn func(ctx context.Context, ownerUserID string) (friendIDs []string, err error)) (friendIDs []string, err error)
// call when friendID List changed // call when friendID List changed
DelFriendIDs(ctx context.Context, ownerUserID string) (err error) DelFriendIDs(ctx context.Context, ownerUserID string) (err error)
// get single friendInfo from cache
GetFriend(ctx context.Context, ownerUserID, friendUserID string, fn func(ctx context.Context, ownerUserID, friendUserID string) (friend *relationTb.FriendModel, err error)) (friend *relationTb.FriendModel, err error) GetFriend(ctx context.Context, ownerUserID, friendUserID string, fn func(ctx context.Context, ownerUserID, friendUserID string) (friend *relationTb.FriendModel, err error)) (friend *relationTb.FriendModel, err error)
// del friend when friend info changed or remove it // del friend when friend info changed
DelFriend(ctx context.Context, ownerUserID, friendUserID string) (err error) DelFriend(ctx context.Context, ownerUserID, friendUserID string) (err error)
} }

View File

@ -52,40 +52,40 @@ func NewGroupCacheRedis(rdb redis.UniversalClient, groupDB *relation.GroupGorm,
} }
} }
func (g *GroupCache) getRedisClient() *RedisClient { func (g *GroupCacheRedis) getRedisClient() *RedisClient {
return g.redisClient return g.redisClient
} }
func (g *GroupCache) getGroupInfoKey(groupID string) string { func (g *GroupCacheRedis) getGroupInfoKey(groupID string) string {
return groupInfoKey + groupID return groupInfoKey + groupID
} }
func (g *GroupCache) getJoinedSuperGroupsIDKey(userID string) string { func (g *GroupCacheRedis) getJoinedSuperGroupsIDKey(userID string) string {
return joinedSuperGroupsKey + userID return joinedSuperGroupsKey + userID
} }
func (g *GroupCache) getJoinedGroupsKey(userID string) string { func (g *GroupCacheRedis) getJoinedGroupsKey(userID string) string {
return joinedGroupsKey + userID return joinedGroupsKey + userID
} }
func (g *GroupCache) getGroupMembersHashKey(groupID string) string { func (g *GroupCacheRedis) getGroupMembersHashKey(groupID string) string {
return groupMembersHashKey + groupID return groupMembersHashKey + groupID
} }
func (g *GroupCache) getGroupMemberIDsKey(groupID string) string { func (g *GroupCacheRedis) getGroupMemberIDsKey(groupID string) string {
return groupMemberIDsKey + groupID return groupMemberIDsKey + groupID
} }
func (g *GroupCache) getGroupMemberInfoKey(groupID, userID string) string { func (g *GroupCacheRedis) getGroupMemberInfoKey(groupID, userID string) string {
return groupMemberInfoKey + groupID + "-" + userID return groupMemberInfoKey + groupID + "-" + userID
} }
func (g *GroupCache) getGroupMemberNumKey(groupID string) string { func (g *GroupCacheRedis) getGroupMemberNumKey(groupID string) string {
return groupMemberNumKey + groupID return groupMemberNumKey + groupID
} }
// / groupInfo // / groupInfo
func (g *GroupCache) GetGroupsInfo(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error) { func (g *GroupCacheRedis) GetGroupsInfo(ctx context.Context, groupIDs []string) (groups []*relation.Group, err error) {
for _, groupID := range groupIDs { for _, groupID := range groupIDs {
group, err := g.GetGroupInfo(ctx, groupID) group, err := g.GetGroupInfo(ctx, groupID)
if err != nil { if err != nil {
@ -96,7 +96,7 @@ func (g *GroupCache) GetGroupsInfo(ctx context.Context, groupIDs []string) (grou
return groups, nil return groups, nil
} }
func (g *GroupCache) GetGroupInfo(ctx context.Context, groupID string) (group *relation.GroupGorm, err error) { func (g *GroupCacheRedis) GetGroupInfo(ctx context.Context, groupID string) (group *relation.GroupGorm, err error) {
getGroup := func() (string, error) { getGroup := func() (string, error) {
groupInfo, err := g.group.Take(ctx, groupID) groupInfo, err := g.group.Take(ctx, groupID)
if err != nil { if err != nil {
@ -120,14 +120,14 @@ func (g *GroupCache) GetGroupInfo(ctx context.Context, groupID string) (group *r
return group, utils.Wrap(err, "") return group, utils.Wrap(err, "")
} }
func (g *GroupCache) DelGroupInfo(ctx context.Context, groupID string) (err error) { func (g *GroupCacheRedis) DelGroupInfo(ctx context.Context, groupID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID)
}() }()
return g.rcClient.TagAsDeleted(g.getGroupInfoKey(groupID)) return g.rcClient.TagAsDeleted(g.getGroupInfoKey(groupID))
} }
func (g *GroupCache) DelGroupsInfo(ctx context.Context, groupIDs []string) error { func (g *GroupCacheRedis) DelGroupsInfo(ctx context.Context, groupIDs []string) error {
for _, groupID := range groupIDs { for _, groupID := range groupIDs {
if err := g.DelGroupInfo(ctx, groupID); err != nil { if err := g.DelGroupInfo(ctx, groupID); err != nil {
return err return err
@ -137,7 +137,7 @@ func (g *GroupCache) DelGroupsInfo(ctx context.Context, groupIDs []string) error
} }
// userJoinSuperGroup // userJoinSuperGroup
func (g *GroupCache) BatchDelJoinedSuperGroupIDs(ctx context.Context, userIDs []string) (err error) { func (g *GroupCacheRedis) BatchDelJoinedSuperGroupIDs(ctx context.Context, userIDs []string) (err error) {
for _, userID := range userIDs { for _, userID := range userIDs {
if err := g.DelJoinedSuperGroupIDs(ctx, userID); err != nil { if err := g.DelJoinedSuperGroupIDs(ctx, userID); err != nil {
return err return err
@ -146,14 +146,14 @@ func (g *GroupCache) BatchDelJoinedSuperGroupIDs(ctx context.Context, userIDs []
return nil return nil
} }
func (g *GroupCache) DelJoinedSuperGroupIDs(ctx context.Context, userID string) (err error) { func (g *GroupCacheRedis) DelJoinedSuperGroupIDs(ctx context.Context, userID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID)
}() }()
return g.rcClient.TagAsDeleted(g.getJoinedSuperGroupsIDKey(userID)) return g.rcClient.TagAsDeleted(g.getJoinedSuperGroupsIDKey(userID))
} }
func (g *GroupCache) GetJoinedSuperGroupIDs(ctx context.Context, userID string) (joinedSuperGroupIDs []string, err error) { func (g *GroupCacheRedis) GetJoinedSuperGroupIDs(ctx context.Context, userID string) (joinedSuperGroupIDs []string, err error) {
getJoinedSuperGroupIDList := func() (string, error) { getJoinedSuperGroupIDList := func() (string, error) {
userToSuperGroup, err := g.mongoDB.GetSuperGroupByUserID(ctx, userID) userToSuperGroup, err := g.mongoDB.GetSuperGroupByUserID(ctx, userID)
if err != nil { if err != nil {
@ -177,7 +177,7 @@ func (g *GroupCache) GetJoinedSuperGroupIDs(ctx context.Context, userID string)
} }
// groupMembersHash // groupMembersHash
func (g *GroupCache) GetGroupMembersHash(ctx context.Context, groupID string) (hashCodeUint64 uint64, err error) { func (g *GroupCacheRedis) GetGroupMembersHash(ctx context.Context, groupID string) (hashCodeUint64 uint64, err error) {
generateHash := func() (string, error) { generateHash := func() (string, error) {
groupInfo, err := g.GetGroupInfo(ctx, groupID) groupInfo, err := g.GetGroupInfo(ctx, groupID)
if err != nil { if err != nil {
@ -210,7 +210,7 @@ func (g *GroupCache) GetGroupMembersHash(ctx context.Context, groupID string) (h
return uint64(hashCode), err return uint64(hashCode), err
} }
func (g *GroupCache) DelGroupMembersHash(ctx context.Context, groupID string) (err error) { func (g *GroupCacheRedis) DelGroupMembersHash(ctx context.Context, groupID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID)
}() }()
@ -219,7 +219,7 @@ func (g *GroupCache) DelGroupMembersHash(ctx context.Context, groupID string) (e
// groupMemberIDs // groupMemberIDs
// from redis // from redis
func (g *GroupCache) GetGroupMemberIDs(ctx context.Context, groupID string) (groupMemberIDs []string, err error) { func (g *GroupCacheRedis) GetGroupMemberIDs(ctx context.Context, groupID string) (groupMemberIDs []string, err error) {
f := func() (string, error) { f := func() (string, error) {
groupInfo, err := g.GetGroupInfo(ctx, groupID) groupInfo, err := g.GetGroupInfo(ctx, groupID)
if err != nil { if err != nil {
@ -255,7 +255,7 @@ func (g *GroupCache) GetGroupMemberIDs(ctx context.Context, groupID string) (gro
return groupMemberIDs, nil return groupMemberIDs, nil
} }
func (g *GroupCache) DelGroupMemberIDs(ctx context.Context, groupID string) (err error) { func (g *GroupCacheRedis) DelGroupMemberIDs(ctx context.Context, groupID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID)
}() }()
@ -263,7 +263,7 @@ func (g *GroupCache) DelGroupMemberIDs(ctx context.Context, groupID string) (err
} }
// JoinedGroups // JoinedGroups
func (g *GroupCache) GetJoinedGroupIDs(ctx context.Context, userID string) (joinedGroupIDs []string, err error) { func (g *GroupCacheRedis) GetJoinedGroupIDs(ctx context.Context, userID string) (joinedGroupIDs []string, err error) {
getJoinedGroupIDList := func() (string, error) { getJoinedGroupIDList := func() (string, error) {
joinedGroupList, err := relation.GetJoinedGroupIDListByUserID(userID) joinedGroupList, err := relation.GetJoinedGroupIDListByUserID(userID)
if err != nil { if err != nil {
@ -286,7 +286,7 @@ func (g *GroupCache) GetJoinedGroupIDs(ctx context.Context, userID string) (join
return joinedGroupIDs, utils.Wrap(err, "") return joinedGroupIDs, utils.Wrap(err, "")
} }
func (g *GroupCache) DelJoinedGroupIDs(ctx context.Context, userID string) (err error) { func (g *GroupCacheRedis) DelJoinedGroupIDs(ctx context.Context, userID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "userID", userID)
}() }()
@ -294,7 +294,7 @@ func (g *GroupCache) DelJoinedGroupIDs(ctx context.Context, userID string) (err
} }
// GetGroupMemberInfo // GetGroupMemberInfo
func (g *GroupCache) GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relation.GroupMember, err error) { func (g *GroupCacheRedis) GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relation.GroupMember, err error) {
getGroupMemberInfo := func() (string, error) { getGroupMemberInfo := func() (string, error) {
groupMemberInfo, err := relation.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) groupMemberInfo, err := relation.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID)
if err != nil { if err != nil {
@ -318,7 +318,7 @@ func (g *GroupCache) GetGroupMemberInfo(ctx context.Context, groupID, userID str
return groupMember, utils.Wrap(err, "") return groupMember, utils.Wrap(err, "")
} }
func (g *GroupCache) GetGroupMembersInfo(ctx context.Context, count, offset int32, groupID string) (groupMembers []*relation.GroupMember, err error) { func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, count, offset int32, groupID string) (groupMembers []*relation.GroupMember, err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "count", count, "offset", offset, "groupID", groupID, "groupMember", groupMembers) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "count", count, "offset", offset, "groupID", groupID, "groupMember", groupMembers)
}() }()
@ -363,7 +363,7 @@ func (g *GroupCache) GetGroupMembersInfo(ctx context.Context, count, offset int3
return groupMemberList, nil return groupMemberList, nil
} }
func (g *GroupCache) DelGroupMemberInfo(ctx context.Context, groupID, userID string) (err error) { func (g *GroupCacheRedis) DelGroupMemberInfo(ctx context.Context, groupID, userID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID, "userID", userID)
}() }()
@ -371,7 +371,7 @@ func (g *GroupCache) DelGroupMemberInfo(ctx context.Context, groupID, userID str
} }
// groupMemberNum // groupMemberNum
func (g *GroupCache) GetGroupMemberNum(ctx context.Context, groupID string) (num int, err error) { func (g *GroupCacheRedis) GetGroupMemberNum(ctx context.Context, groupID string) (num int, err error) {
getGroupMemberNum := func() (string, error) { getGroupMemberNum := func() (string, error) {
num, err := relation.GetGroupMemberNumByGroupID(groupID) num, err := relation.GetGroupMemberNumByGroupID(groupID)
if err != nil { if err != nil {
@ -389,7 +389,7 @@ func (g *GroupCache) GetGroupMemberNum(ctx context.Context, groupID string) (num
return strconv.Atoi(groupMember) return strconv.Atoi(groupMember)
} }
func (g *GroupCache) DelGroupMemberNum(ctx context.Context, groupID string) (err error) { func (g *GroupCacheRedis) DelGroupMemberNum(ctx context.Context, groupID string) (err error) {
defer func() { defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID) tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "groupID", groupID)
}() }()

View File

@ -20,28 +20,36 @@ import (
) )
const ( const (
accountTempCode = "ACCOUNT_TEMP_CODE" userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq
resetPwdTempCode = "RESET_PWD_TEMP_CODE" appleDeviceToken = "DEVICE_TOKEN"
userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq userMinSeq = "REDIS_USER_MIN_SEQ:"
appleDeviceToken = "DEVICE_TOKEN" uidPidToken = "UID_PID_TOKEN_STATUS:"
userMinSeq = "REDIS_USER_MIN_SEQ:" getuiToken = "GETUI_TOKEN"
uidPidToken = "UID_PID_TOKEN_STATUS:" getuiTaskID = "GETUI_TASK_ID"
conversationReceiveMessageOpt = "CON_RECV_MSG_OPT:" messageCache = "MESSAGE_CACHE:"
getuiToken = "GETUI_TOKEN" signalCache = "SIGNAL_CACHE:"
getuiTaskID = "GETUI_TASK_ID" signalListCache = "SIGNAL_LIST_CACHE:"
messageCache = "MESSAGE_CACHE:" FcmToken = "FCM_TOKEN:"
SignalCache = "SIGNAL_CACHE:" groupUserMinSeq = "GROUP_USER_MIN_SEQ:"
SignalListCache = "SIGNAL_LIST_CACHE:" groupMaxSeq = "GROUP_MAX_SEQ:"
GlobalMsgRecvOpt = "GLOBAL_MSG_RECV_OPT" groupMinSeq = "GROUP_MIN_SEQ:"
FcmToken = "FCM_TOKEN:" sendMsgFailedFlag = "SEND_MSG_FAILED_FLAG:"
groupUserMinSeq = "GROUP_USER_MIN_SEQ:" userBadgeUnreadCountSum = "USER_BADGE_UNREAD_COUNT_SUM:"
groupMaxSeq = "GROUP_MAX_SEQ:" exTypeKeyLocker = "EX_LOCK:"
groupMinSeq = "GROUP_MIN_SEQ:"
sendMsgFailedFlag = "SEND_MSG_FAILED_FLAG:"
userBadgeUnreadCountSum = "USER_BADGE_UNREAD_COUNT_SUM:"
exTypeKeyLocker = "EX_LOCK:"
) )
type Cache interface {
IncrUserSeq(uid string) (uint64, error)
GetUserMaxSeq(uid string) (uint64, error)
SetUserMaxSeq(uid string, maxSeq uint64) error
SetUserMinSeq(uid string, minSeq uint32) (err error)
GetUserMinSeq(uid string) (uint64, error)
SetGroupUserMinSeq(groupID, userID string, minSeq uint64) (err error)
GetGroupUserMinSeq(groupID, userID string) (uint64, error)
}
// native redis operate
type RedisClient struct { type RedisClient struct {
rdb redis.UniversalClient rdb redis.UniversalClient
} }
@ -86,25 +94,6 @@ func NewRedisClient(rdb redis.UniversalClient) *RedisClient {
return &RedisClient{rdb: rdb} return &RedisClient{rdb: rdb}
} }
func (r *RedisClient) JudgeAccountEXISTS(account string) (bool, error) {
key := accountTempCode + account
n, err := r.rdb.Exists(context.Background(), key).Result()
if n > 0 {
return true, err
} else {
return false, err
}
}
func (r *RedisClient) SetAccountCode(account string, code, ttl int) (err error) {
key := accountTempCode + account
return r.rdb.Set(context.Background(), key, code, time.Duration(ttl)*time.Second).Err()
}
func (r *RedisClient) GetAccountCode(account string) (string, error) {
key := accountTempCode + account
return r.rdb.Get(context.Background(), key).Result()
}
//Perform seq auto-increment operation of user messages //Perform seq auto-increment operation of user messages
func (r *RedisClient) IncrUserSeq(uid string) (uint64, error) { func (r *RedisClient) IncrUserSeq(uid string) (uint64, error) {
key := userIncrSeq + uid key := userIncrSeq + uid
@ -195,36 +184,12 @@ func (r *RedisClient) SetTokenMapByUidPid(userID string, platformID int, m map[s
} }
return r.rdb.HSet(context.Background(), key, mm).Err() return r.rdb.HSet(context.Background(), key, mm).Err()
} }
func (r *RedisClient) DeleteTokenByUidPid(userID string, platformID int, fields []string) error { func (r *RedisClient) DeleteTokenByUidPid(userID string, platformID int, fields []string) error {
key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID)
return r.rdb.HDel(context.Background(), key, fields...).Err() return r.rdb.HDel(context.Background(), key, fields...).Err()
} }
func (r *RedisClient) SetSingleConversationRecvMsgOpt(userID, conversationID string, opt int32) error {
key := conversationReceiveMessageOpt + userID
return r.rdb.HSet(context.Background(), key, conversationID, opt).Err()
}
func (r *RedisClient) GetSingleConversationRecvMsgOpt(userID, conversationID string) (int, error) {
key := conversationReceiveMessageOpt + userID
result, err := r.rdb.HGet(context.Background(), key, conversationID).Result()
return utils.StringToInt(result), err
}
func (r *RedisClient) SetUserGlobalMsgRecvOpt(userID string, opt int32) error {
key := conversationReceiveMessageOpt + userID
return r.rdb.HSet(context.Background(), key, GlobalMsgRecvOpt, opt).Err()
}
func (r *RedisClient) GetUserGlobalMsgRecvOpt(userID string) (int, error) {
key := conversationReceiveMessageOpt + userID
result, err := r.rdb.HGet(context.Background(), key, GlobalMsgRecvOpt).Result()
if err != nil {
if err == redis.Nil {
return 0, nil
} else {
return 0, err
}
}
return utils.StringToInt(result), err
}
func (r *RedisClient) GetMessageListBySeq(userID string, seqList []uint32, operationID string) (seqMsg []*pbCommon.MsgData, failedSeqList []uint32, errResult error) { func (r *RedisClient) GetMessageListBySeq(userID string, seqList []uint32, operationID string) (seqMsg []*pbCommon.MsgData, failedSeqList []uint32, errResult error) {
for _, v := range seqList { for _, v := range seqList {
//MESSAGE_CACHE:169.254.225.224_reliability1653387820_0_1 //MESSAGE_CACHE:169.254.225.224_reliability1653387820_0_1
@ -336,7 +301,7 @@ func (r *RedisClient) HandleSignalInfo(operationID string, msg *pbCommon.MsgData
if err != nil { if err != nil {
return false, err return false, err
} }
keyList := SignalListCache + userID keyList := signalListCache + userID
err = r.rdb.LPush(context.Background(), keyList, msg.ClientMsgID).Err() err = r.rdb.LPush(context.Background(), keyList, msg.ClientMsgID).Err()
if err != nil { if err != nil {
return false, err return false, err
@ -345,7 +310,7 @@ func (r *RedisClient) HandleSignalInfo(operationID string, msg *pbCommon.MsgData
if err != nil { if err != nil {
return false, err return false, err
} }
key := SignalCache + msg.ClientMsgID key := signalCache + msg.ClientMsgID
err = r.rdb.Set(context.Background(), key, msg.Content, time.Duration(timeout)*time.Second).Err() err = r.rdb.Set(context.Background(), key, msg.Content, time.Duration(timeout)*time.Second).Err()
if err != nil { if err != nil {
return false, err return false, err
@ -356,7 +321,7 @@ func (r *RedisClient) HandleSignalInfo(operationID string, msg *pbCommon.MsgData
} }
func (r *RedisClient) GetSignalInfoFromCacheByClientMsgID(clientMsgID string) (invitationInfo *pbRtc.SignalInviteReq, err error) { func (r *RedisClient) GetSignalInfoFromCacheByClientMsgID(clientMsgID string) (invitationInfo *pbRtc.SignalInviteReq, err error) {
key := SignalCache + clientMsgID key := signalCache + clientMsgID
invitationInfo = &pbRtc.SignalInviteReq{} invitationInfo = &pbRtc.SignalInviteReq{}
bytes, err := r.rdb.Get(context.Background(), key).Bytes() bytes, err := r.rdb.Get(context.Background(), key).Bytes()
if err != nil { if err != nil {
@ -378,7 +343,7 @@ func (r *RedisClient) GetSignalInfoFromCacheByClientMsgID(clientMsgID string) (i
} }
func (r *RedisClient) GetAvailableSignalInvitationInfo(userID string) (invitationInfo *pbRtc.SignalInviteReq, err error) { func (r *RedisClient) GetAvailableSignalInvitationInfo(userID string) (invitationInfo *pbRtc.SignalInviteReq, err error) {
keyList := SignalListCache + userID keyList := signalListCache + userID
result := r.rdb.LPop(context.Background(), keyList) result := r.rdb.LPop(context.Background(), keyList)
if err = result.Err(); err != nil { if err = result.Err(); err != nil {
return nil, utils.Wrap(err, "GetAvailableSignalInvitationInfo failed") return nil, utils.Wrap(err, "GetAvailableSignalInvitationInfo failed")
@ -400,7 +365,7 @@ func (r *RedisClient) GetAvailableSignalInvitationInfo(userID string) (invitatio
} }
func (r *RedisClient) DelUserSignalList(userID string) error { func (r *RedisClient) DelUserSignalList(userID string) error {
keyList := SignalListCache + userID keyList := signalListCache + userID
err := r.rdb.Del(context.Background(), keyList).Err() err := r.rdb.Del(context.Background(), keyList).Err()
return err return err
} }
@ -516,17 +481,19 @@ func (r *RedisClient) SetMessageReactionExpire(clientMsgID string, sessionType i
key := getMessageReactionExPrefix(clientMsgID, sessionType) key := getMessageReactionExPrefix(clientMsgID, sessionType)
return r.rdb.Expire(context.Background(), key, expiration).Result() return r.rdb.Expire(context.Background(), key, expiration).Result()
} }
func (r *RedisClient) GetMessageTypeKeyValue(clientMsgID string, sessionType int32, typeKey string) (string, error) { func (r *RedisClient) GetMessageTypeKeyValue(clientMsgID string, sessionType int32, typeKey string) (string, error) {
key := getMessageReactionExPrefix(clientMsgID, sessionType) key := getMessageReactionExPrefix(clientMsgID, sessionType)
result, err := r.rdb.HGet(context.Background(), key, typeKey).Result() result, err := r.rdb.HGet(context.Background(), key, typeKey).Result()
return result, err return result, err
} }
func (r *RedisClient) SetMessageTypeKeyValue(clientMsgID string, sessionType int32, typeKey, value string) error { func (r *RedisClient) SetMessageTypeKeyValue(clientMsgID string, sessionType int32, typeKey, value string) error {
key := getMessageReactionExPrefix(clientMsgID, sessionType) key := getMessageReactionExPrefix(clientMsgID, sessionType)
return r.rdb.HSet(context.Background(), key, typeKey, value).Err() return r.rdb.HSet(context.Background(), key, typeKey, value).Err()
} }
func (r *RedisClient) LockMessageTypeKey(clientMsgID string, TypeKey string) error { func (r *RedisClient) LockMessageTypeKey(clientMsgID string, TypeKey string) error {
key := exTypeKeyLocker + clientMsgID + "_" + TypeKey key := exTypeKeyLocker + clientMsgID + "_" + TypeKey
return r.rdb.SetNX(context.Background(), key, 1, time.Minute).Err() return r.rdb.SetNX(context.Background(), key, 1, time.Minute).Err()
@ -537,7 +504,7 @@ func (r *RedisClient) UnLockMessageTypeKey(clientMsgID string, TypeKey string) e
} }
func getMessageReactionExPrefix(clientMsgID string, sessionType int32) string { func (r *RedisClient) getMessageReactionExPrefix(clientMsgID string, sessionType int32) string {
switch sessionType { switch sessionType {
case constant.SingleChatType: case constant.SingleChatType:
return "EX_SINGLE_" + clientMsgID return "EX_SINGLE_" + clientMsgID

View File

@ -3,7 +3,7 @@ package cache
import ( import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
pbChat "Open_IM/pkg/proto/msg" pbChat "Open_IM/pkg/proto/msg"
server_api_params "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
"context" "context"
"flag" "flag"
"fmt" "fmt"
@ -11,6 +11,8 @@ import (
"testing" "testing"
) )
var DB RedisClient
func Test_SetTokenMapByUidPid(t *testing.T) { func Test_SetTokenMapByUidPid(t *testing.T) {
m := make(map[string]int, 0) m := make(map[string]int, 0)
m["test1"] = 1 m["test1"] = 1
@ -35,7 +37,7 @@ func Test_GetKeyTTL(t *testing.T) {
ctx := context.Background() ctx := context.Background()
key := flag.String("key", "key", "key value") key := flag.String("key", "key", "key value")
flag.Parse() flag.Parse()
ttl, err := DB.RDB.TTL(ctx, *key).Result() ttl, err := DB.GetClient().TTL(ctx, *key).Result()
assert.Nil(t, err) assert.Nil(t, err)
fmt.Println(ttl) fmt.Println(ttl)
} }
@ -43,7 +45,7 @@ func Test_HGetAll(t *testing.T) {
ctx := context.Background() ctx := context.Background()
key := flag.String("key", "key", "key value") key := flag.String("key", "key", "key value")
flag.Parse() flag.Parse()
ttl, err := DB.RDB.TTL(ctx, *key).Result() ttl, err := DB.GetClient().TTL(ctx, *key).Result()
assert.Nil(t, err) assert.Nil(t, err)
fmt.Println(ttl) fmt.Println(ttl)
} }
@ -51,14 +53,14 @@ func Test_HGetAll(t *testing.T) {
func Test_NewSetMessageToCache(t *testing.T) { func Test_NewSetMessageToCache(t *testing.T) {
var msg pbChat.MsgDataToMQ var msg pbChat.MsgDataToMQ
m := make(map[string]bool) m := make(map[string]bool)
var offlinePush server_api_params.OfflinePushInfo var offlinePush common.OfflinePushInfo
offlinePush.Title = "3" offlinePush.Title = "3"
offlinePush.Ex = "34" offlinePush.Ex = "34"
offlinePush.IOSPushSound = "+1" offlinePush.IOSPushSound = "+1"
offlinePush.IOSBadgeCount = true offlinePush.IOSBadgeCount = true
m[constant.IsPersistent] = true m[constant.IsPersistent] = true
m[constant.IsHistory] = true m[constant.IsHistory] = true
var data server_api_params.MsgData var data common.MsgData
uid := "test_uid" uid := "test_uid"
data.Seq = 11 data.Seq = 11
data.ClientMsgID = "23jwhjsdf" data.ClientMsgID = "23jwhjsdf"
@ -77,7 +79,7 @@ func Test_NewSetMessageToCache(t *testing.T) {
} }
func Test_NewGetMessageListBySeq(t *testing.T) { func Test_NewGetMessageListBySeq(t *testing.T) {
var msg pbChat.MsgDataToMQ var msg pbChat.MsgDataToMQ
var data server_api_params.MsgData var data common.MsgData
uid := "test_uid" uid := "test_uid"
data.Seq = 11 data.Seq = 11
data.ClientMsgID = "23jwhjsdf" data.ClientMsgID = "23jwhjsdf"
@ -88,37 +90,7 @@ func Test_NewGetMessageListBySeq(t *testing.T) {
fmt.Println(seqMsg, failedSeqList) fmt.Println(seqMsg, failedSeqList)
} }
func Test_SetUserGlobalMsgRecvOpt(t *testing.T) {
var opt int32
uid := "test_uid"
opt = 1
err := DB.SetUserGlobalMsgRecvOpt(uid, opt)
assert.Nil(t, err)
}
func Test_GetUserGlobalMsgRecvOpt(t *testing.T) {
uid := "test_uid"
opt, err := DB.GetUserGlobalMsgRecvOpt(uid)
assert.Nil(t, err)
fmt.Println("get opt", opt)
}
func Test_JudgeAccountEXISTS(t *testing.T) {
uid := "test_uid"
b, err := DB.JudgeAccountEXISTS(uid)
assert.Nil(t, err)
fmt.Println(b)
}
func Test_SetAccountCode(t *testing.T) {
uid := "test_uid"
code := 666666
err := DB.SetAccountCode(uid, code, 100)
assert.Nil(t, err)
}
func Test_GetAccountCode(t *testing.T) {
uid := "test_uid"
code, err := DB.GetAccountCode(uid)
assert.Nil(t, err)
fmt.Println(code)
}
func Test_SetFcmToken(t *testing.T) { func Test_SetFcmToken(t *testing.T) {
uid := "test_uid" uid := "test_uid"
token := "dfnWBtOjSj-XIZnUvDlegv:APA91bG09XTtiXfpE6U7gUVMOhnKcUkNCv4WHn0UZr2clUi-tS1jEH-HiCEW8GIAhjLIGcfUJ6NIKteC023ZxDH7J0PJ5sTxoup3fHDUPLU7KgQoZS4tPyFqCbZ6bRB7esDPEnD1n_s0" token := "dfnWBtOjSj-XIZnUvDlegv:APA91bG09XTtiXfpE6U7gUVMOhnKcUkNCv4WHn0UZr2clUi-tS1jEH-HiCEW8GIAhjLIGcfUJ6NIKteC023ZxDH7J0PJ5sTxoup3fHDUPLU7KgQoZS4tPyFqCbZ6bRB7esDPEnD1n_s0"
@ -133,10 +105,3 @@ func Test_GetFcmToken(t *testing.T) {
assert.Nil(t, err) assert.Nil(t, err)
fmt.Println("token is :", token) fmt.Println("token is :", token)
} }
//func Test_GetGroupMemberList(t *testing.T) {
// groupID := "3791742301"
// list, err := DB.GetGroupMemberIDListFromCache(groupID)
// assert.Nil(t, err)
// fmt.Println(list)
//}

View File

@ -604,35 +604,3 @@ func DelConversationFromCache(ctx context.Context, ownerUserID, conversationID s
}() }()
return utils.Wrap(db.DB.Rc.TagAsDeleted(conversationCache+ownerUserID+":"+conversationID), "DelConversationFromCache err") return utils.Wrap(db.DB.Rc.TagAsDeleted(conversationCache+ownerUserID+":"+conversationID), "DelConversationFromCache err")
} }
func GetExtendMsg(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, firstModifyTime int64) (extendMsg *mongoDB.ExtendMsg, err error) {
getExtendMsg := func() (string, error) {
extendMsg, err := db.DB.GetExtendMsg(sourceID, sessionType, clientMsgID, firstModifyTime)
if err != nil {
return "", utils.Wrap(err, "GetExtendMsgList failed")
}
bytes, err := json.Marshal(extendMsg)
if err != nil {
return "", utils.Wrap(err, "Marshal failed")
}
return string(bytes), nil
}
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "sourceID", sourceID, "sessionType",
sessionType, "clientMsgID", clientMsgID, "firstModifyTime", firstModifyTime, "extendMsg", extendMsg)
}()
extendMsgStr, err := db.DB.Rc.Fetch(extendMsgCache+clientMsgID, time.Second*30*60, getExtendMsg)
if err != nil {
return nil, utils.Wrap(err, "Fetch failed")
}
extendMsg = &mongoDB.ExtendMsg{}
err = json.Unmarshal([]byte(extendMsgStr), extendMsg)
return extendMsg, utils.Wrap(err, "Unmarshal failed")
}
func DelExtendMsg(ctx context.Context, clientMsgID string) (err error) {
defer func() {
tracelog.SetCtxDebug(ctx, utils.GetFuncName(1), err, "clientMsgID", clientMsgID)
}()
return utils.Wrap(db.DB.Rc.TagAsDeleted(extendMsgCache+clientMsgID), "DelExtendMsg err")
}

View File

@ -4,8 +4,8 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/cache" "Open_IM/pkg/common/db/cache"
"Open_IM/pkg/common/db/relation" "Open_IM/pkg/common/db/relation"
relation2 "Open_IM/pkg/common/db/table/relation" relationTb "Open_IM/pkg/common/db/table/relation"
unrelation2 "Open_IM/pkg/common/db/table/unrelation" unrelationTb "Open_IM/pkg/common/db/table/unrelation"
"Open_IM/pkg/common/db/unrelation" "Open_IM/pkg/common/db/unrelation"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
@ -20,31 +20,31 @@ import (
//type GroupInterface GroupDataBaseInterface //type GroupInterface GroupDataBaseInterface
type GroupInterface interface { type GroupInterface interface {
CreateGroup(ctx context.Context, groups []*relation2.GroupModel, groupMembers []*relation2.GroupMemberModel) error CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error
TakeGroup(ctx context.Context, groupID string) (group *relation2.GroupModel, err error) TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error)
FindGroup(ctx context.Context, groupIDs []string) (groups []*relation2.GroupModel, err error) FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error)
SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relation2.GroupModel, error) SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupModel, error)
UpdateGroup(ctx context.Context, groupID string, data map[string]any) error UpdateGroup(ctx context.Context, groupID string, data map[string]any) error
DismissGroup(ctx context.Context, groupID string) error // 解散群,并删除群成员 DismissGroup(ctx context.Context, groupID string) error // 解散群,并删除群成员
// GroupMember // GroupMember
TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relation2.GroupMemberModel, err error) TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relationTb.GroupMemberModel, err error)
TakeGroupOwner(ctx context.Context, groupID string) (*relation2.GroupMemberModel, error) TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error)
FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relation2.GroupMemberModel, error) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error)
PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error)
SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error)
HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relation2.GroupMemberModel) error HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relationTb.GroupMemberModel) error
DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error
MapGroupMemberUserID(ctx context.Context, groupIDs []string) (map[string][]string, error) MapGroupMemberUserID(ctx context.Context, groupIDs []string) (map[string][]string, error)
MapGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]uint32, error) MapGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]uint32, error)
TransferGroupOwner(ctx context.Context, groupID string, oldOwnerUserID, newOwnerUserID string, roleLevel int32) error // 转让群 TransferGroupOwner(ctx context.Context, groupID string, oldOwnerUserID, newOwnerUserID string, roleLevel int32) error // 转让群
UpdateGroupMember(ctx context.Context, groupID, userID string, data map[string]any) error UpdateGroupMember(ctx context.Context, groupID, userID string, data map[string]any) error
// GroupRequest // GroupRequest
CreateGroupRequest(ctx context.Context, requests []*relation2.GroupRequestModel) error CreateGroupRequest(ctx context.Context, requests []*relationTb.GroupRequestModel) error
TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relation2.GroupRequestModel, error) TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relationTb.GroupRequestModel, error)
PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relation2.GroupRequestModel, error) PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupRequestModel, error)
// SuperGroup // SuperGroup
FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelation2.SuperGroupModel, error) FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelationTb.SuperGroupModel, error)
FindJoinSuperGroup(ctx context.Context, userID string) (superGroup *unrelation2.UserToSuperGroupModel, err error) FindJoinSuperGroup(ctx context.Context, userID string) (superGroup *unrelationTb.UserToSuperGroupModel, err error)
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
DeleteSuperGroup(ctx context.Context, groupID string) error DeleteSuperGroup(ctx context.Context, groupID string) error
DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
@ -53,27 +53,27 @@ type GroupInterface interface {
var _ GroupInterface = (*GroupController)(nil) var _ GroupInterface = (*GroupController)(nil)
func NewGroupInterface(database GroupDataBaseInterface) GroupInterface { func NewGroupInterface(db *gorm.DB, rdb redis.UniversalClient, mgoClient *mongo.Client) GroupInterface {
return &GroupController{database: database} return &GroupController{database: NewGroupDatabase(db, rdb, mgoClient)}
} }
type GroupController struct { type GroupController struct {
database GroupDataBaseInterface database GroupDataBaseInterface
} }
func (g *GroupController) CreateGroup(ctx context.Context, groups []*relation2.GroupModel, groupMembers []*relation2.GroupMemberModel) error { func (g *GroupController) CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error {
return g.database.CreateGroup(ctx, groups, groupMembers) return g.database.CreateGroup(ctx, groups, groupMembers)
} }
func (g *GroupController) TakeGroup(ctx context.Context, groupID string) (group *relation2.GroupModel, err error) { func (g *GroupController) TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error) {
return g.TakeGroup(ctx, groupID) return g.TakeGroup(ctx, groupID)
} }
func (g *GroupController) FindGroup(ctx context.Context, groupIDs []string) (groups []*relation2.GroupModel, err error) { func (g *GroupController) FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error) {
return g.database.FindGroup(ctx, groupIDs) return g.database.FindGroup(ctx, groupIDs)
} }
func (g *GroupController) SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relation2.GroupModel, error) { func (g *GroupController) SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupModel, error) {
return g.database.SearchGroup(ctx, keyword, pageNumber, showNumber) return g.database.SearchGroup(ctx, keyword, pageNumber, showNumber)
} }
@ -85,27 +85,27 @@ func (g *GroupController) DismissGroup(ctx context.Context, groupID string) erro
return g.database.DismissGroup(ctx, groupID) return g.database.DismissGroup(ctx, groupID)
} }
func (g *GroupController) TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relation2.GroupMemberModel, err error) { func (g *GroupController) TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relationTb.GroupMemberModel, err error) {
return g.database.TakeGroupMember(ctx, groupID, userID) return g.database.TakeGroupMember(ctx, groupID, userID)
} }
func (g *GroupController) TakeGroupOwner(ctx context.Context, groupID string) (*relation2.GroupMemberModel, error) { func (g *GroupController) TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error) {
return g.database.TakeGroupOwner(ctx, groupID) return g.database.TakeGroupOwner(ctx, groupID)
} }
func (g *GroupController) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relation2.GroupMemberModel, error) { func (g *GroupController) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error) {
return g.database.FindGroupMember(ctx, groupIDs, userIDs, roleLevels) return g.database.FindGroupMember(ctx, groupIDs, userIDs, roleLevels)
} }
func (g *GroupController) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) { func (g *GroupController) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) {
return g.database.PageGroupMember(ctx, groupIDs, userIDs, roleLevels, pageNumber, showNumber) return g.database.PageGroupMember(ctx, groupIDs, userIDs, roleLevels, pageNumber, showNumber)
} }
func (g *GroupController) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) { func (g *GroupController) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) {
return g.database.SearchGroupMember(ctx, keyword, groupIDs, userIDs, roleLevels, pageNumber, showNumber) return g.database.SearchGroupMember(ctx, keyword, groupIDs, userIDs, roleLevels, pageNumber, showNumber)
} }
func (g *GroupController) HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relation2.GroupMemberModel) error { func (g *GroupController) HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relationTb.GroupMemberModel) error {
return g.database.HandlerGroupRequest(ctx, groupID, userID, handledMsg, handleResult, member) return g.database.HandlerGroupRequest(ctx, groupID, userID, handledMsg, handleResult, member)
} }
@ -129,26 +129,26 @@ func (g *GroupController) UpdateGroupMember(ctx context.Context, groupID, userID
return g.database.UpdateGroupMember(ctx, groupID, userID, data) return g.database.UpdateGroupMember(ctx, groupID, userID, data)
} }
func (g *GroupController) CreateGroupRequest(ctx context.Context, requests []*relation2.GroupRequestModel) error { func (g *GroupController) CreateGroupRequest(ctx context.Context, requests []*relationTb.GroupRequestModel) error {
return g.database.CreateGroupRequest(ctx, requests) return g.database.CreateGroupRequest(ctx, requests)
} }
func (g *GroupController) TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relation2.GroupRequestModel, error) { func (g *GroupController) TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relationTb.GroupRequestModel, error) {
return g.database.TakeGroupRequest(ctx, groupID, userID) return g.database.TakeGroupRequest(ctx, groupID, userID)
} }
func (g *GroupController) PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relation2.GroupRequestModel, error) { func (g *GroupController) PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupRequestModel, error) {
return g.database.PageGroupRequestUser(ctx, userID, pageNumber, showNumber) return g.database.PageGroupRequestUser(ctx, userID, pageNumber, showNumber)
} }
// func (g *GroupController) TakeSuperGroup(ctx context.Context, groupID string) (superGroup *unrelation2.SuperGroupModel, err error) { // func (g *GroupController) TakeSuperGroup(ctx context.Context, groupID string) (superGroup *unrelationTb.SuperGroupModel, err error) {
// return g.database.TakeSuperGroup(ctx, groupID) // return g.database.TakeSuperGroup(ctx, groupID)
// } // }
func (g *GroupController) FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelation2.SuperGroupModel, error) { func (g *GroupController) FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelationTb.SuperGroupModel, error) {
return g.database.FindSuperGroup(ctx, groupIDs) return g.database.FindSuperGroup(ctx, groupIDs)
} }
func (g *GroupController) FindJoinSuperGroup(ctx context.Context, userID string) (*unrelation2.UserToSuperGroupModel, error) { func (g *GroupController) FindJoinSuperGroup(ctx context.Context, userID string) (*unrelationTb.UserToSuperGroupModel, error) {
return g.database.FindJoinSuperGroup(ctx, userID) return g.database.FindJoinSuperGroup(ctx, userID)
} }
@ -169,31 +169,31 @@ func (g *GroupController) CreateSuperGroupMember(ctx context.Context, groupID st
} }
type GroupDataBaseInterface interface { type GroupDataBaseInterface interface {
CreateGroup(ctx context.Context, groups []*relation2.GroupModel, groupMembers []*relation2.GroupMemberModel) error CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error
TakeGroup(ctx context.Context, groupID string) (group *relation2.GroupModel, err error) TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error)
FindGroup(ctx context.Context, groupIDs []string) (groups []*relation2.GroupModel, err error) FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error)
SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relation2.GroupModel, error) SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupModel, error)
UpdateGroup(ctx context.Context, groupID string, data map[string]any) error UpdateGroup(ctx context.Context, groupID string, data map[string]any) error
DismissGroup(ctx context.Context, groupID string) error // 解散群,并删除群成员 DismissGroup(ctx context.Context, groupID string) error // 解散群,并删除群成员
// GroupMember // GroupMember
TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relation2.GroupMemberModel, err error) TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relationTb.GroupMemberModel, err error)
TakeGroupOwner(ctx context.Context, groupID string) (*relation2.GroupMemberModel, error) TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error)
FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relation2.GroupMemberModel, error) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error)
PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error)
SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error)
HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relation2.GroupMemberModel) error HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relationTb.GroupMemberModel) error
DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error
MapGroupMemberUserID(ctx context.Context, groupIDs []string) (map[string][]string, error) MapGroupMemberUserID(ctx context.Context, groupIDs []string) (map[string][]string, error)
MapGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]uint32, error) MapGroupMemberNum(ctx context.Context, groupIDs []string) (map[string]uint32, error)
TransferGroupOwner(ctx context.Context, groupID string, oldOwnerUserID, newOwnerUserID string, roleLevel int32) error // 转让群 TransferGroupOwner(ctx context.Context, groupID string, oldOwnerUserID, newOwnerUserID string, roleLevel int32) error // 转让群
UpdateGroupMember(ctx context.Context, groupID, userID string, data map[string]any) error UpdateGroupMember(ctx context.Context, groupID, userID string, data map[string]any) error
// GroupRequest // GroupRequest
CreateGroupRequest(ctx context.Context, requests []*relation2.GroupRequestModel) error CreateGroupRequest(ctx context.Context, requests []*relationTb.GroupRequestModel) error
TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relation2.GroupRequestModel, error) TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relationTb.GroupRequestModel, error)
PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relation2.GroupRequestModel, error) PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupRequestModel, error)
// SuperGroup // SuperGroup
FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelation2.SuperGroupModel, error) FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelationTb.SuperGroupModel, error)
FindJoinSuperGroup(ctx context.Context, userID string) (*unrelation2.UserToSuperGroupModel, error) FindJoinSuperGroup(ctx context.Context, userID string) (*unrelationTb.UserToSuperGroupModel, error)
CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error
DeleteSuperGroup(ctx context.Context, groupID string) error DeleteSuperGroup(ctx context.Context, groupID string) error
DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
@ -225,16 +225,16 @@ func NewGroupDatabase(db *gorm.DB, rdb redis.UniversalClient, mgoClient *mongo.C
var _ GroupDataBaseInterface = (*GroupDataBase)(nil) var _ GroupDataBaseInterface = (*GroupDataBase)(nil)
type GroupDataBase struct { type GroupDataBase struct {
groupDB relation2.GroupModelInterface groupDB relationTb.GroupModelInterface
groupMemberDB relation2.GroupMemberModelInterface groupMemberDB relationTb.GroupMemberModelInterface
groupRequestDB relation2.GroupRequestModelInterface groupRequestDB relationTb.GroupRequestModelInterface
db *gorm.DB db *gorm.DB
cache *cache.GroupCache cache *cache.GroupCache
mongoDB *unrelation.SuperGroupMongoDriver mongoDB *unrelation.SuperGroupMongoDriver
} }
func (g *GroupDataBase) CreateGroup(ctx context.Context, groups []*relation2.GroupModel, groupMembers []*relation2.GroupMemberModel) error { func (g *GroupDataBase) CreateGroup(ctx context.Context, groups []*relationTb.GroupModel, groupMembers []*relationTb.GroupMemberModel) error {
if len(groups) > 0 && len(groupMembers) > 0 { if len(groups) > 0 && len(groupMembers) > 0 {
return g.db.Transaction(func(tx *gorm.DB) error { return g.db.Transaction(func(tx *gorm.DB) error {
if err := g.groupDB.Create(ctx, groups, tx); err != nil { if err := g.groupDB.Create(ctx, groups, tx); err != nil {
@ -252,15 +252,15 @@ func (g *GroupDataBase) CreateGroup(ctx context.Context, groups []*relation2.Gro
return nil return nil
} }
func (g *GroupDataBase) TakeGroup(ctx context.Context, groupID string) (group *relation2.GroupModel, err error) { func (g *GroupDataBase) TakeGroup(ctx context.Context, groupID string) (group *relationTb.GroupModel, err error) {
return g.groupDB.Take(ctx, groupID) return g.groupDB.Take(ctx, groupID)
} }
func (g *GroupDataBase) FindGroup(ctx context.Context, groupIDs []string) (groups []*relation2.GroupModel, err error) { func (g *GroupDataBase) FindGroup(ctx context.Context, groupIDs []string) (groups []*relationTb.GroupModel, err error) {
return g.groupDB.Find(ctx, groupIDs) return g.groupDB.Find(ctx, groupIDs)
} }
func (g *GroupDataBase) SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relation2.GroupModel, error) { func (g *GroupDataBase) SearchGroup(ctx context.Context, keyword string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupModel, error) {
return g.groupDB.Search(ctx, keyword, pageNumber, showNumber) return g.groupDB.Search(ctx, keyword, pageNumber, showNumber)
} }
@ -277,27 +277,27 @@ func (g *GroupDataBase) DismissGroup(ctx context.Context, groupID string) error
}) })
} }
func (g *GroupDataBase) TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relation2.GroupMemberModel, err error) { func (g *GroupDataBase) TakeGroupMember(ctx context.Context, groupID string, userID string) (groupMember *relationTb.GroupMemberModel, err error) {
return g.groupMemberDB.Take(ctx, groupID, userID) return g.groupMemberDB.Take(ctx, groupID, userID)
} }
func (g *GroupDataBase) TakeGroupOwner(ctx context.Context, groupID string) (*relation2.GroupMemberModel, error) { func (g *GroupDataBase) TakeGroupOwner(ctx context.Context, groupID string) (*relationTb.GroupMemberModel, error) {
return g.groupMemberDB.TakeOwner(ctx, groupID) return g.groupMemberDB.TakeOwner(ctx, groupID)
} }
func (g *GroupDataBase) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relation2.GroupMemberModel, error) { func (g *GroupDataBase) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error) {
return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels) return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels)
} }
func (g *GroupDataBase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) { func (g *GroupDataBase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) {
return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber) return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber)
} }
func (g *GroupDataBase) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relation2.GroupMemberModel, error) { func (g *GroupDataBase) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) {
return g.groupMemberDB.SearchMember(ctx, keyword, groupIDs, userIDs, roleLevels, pageNumber, showNumber) return g.groupMemberDB.SearchMember(ctx, keyword, groupIDs, userIDs, roleLevels, pageNumber, showNumber)
} }
func (g *GroupDataBase) HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relation2.GroupMemberModel) error { func (g *GroupDataBase) HandlerGroupRequest(ctx context.Context, groupID string, userID string, handledMsg string, handleResult int32, member *relationTb.GroupMemberModel) error {
if member == nil { if member == nil {
return g.groupRequestDB.UpdateHandler(ctx, groupID, userID, handledMsg, handleResult) return g.groupRequestDB.UpdateHandler(ctx, groupID, userID, handledMsg, handleResult)
} }
@ -305,7 +305,7 @@ func (g *GroupDataBase) HandlerGroupRequest(ctx context.Context, groupID string,
if err := g.groupRequestDB.UpdateHandler(ctx, groupID, userID, handledMsg, handleResult, tx); err != nil { if err := g.groupRequestDB.UpdateHandler(ctx, groupID, userID, handledMsg, handleResult, tx); err != nil {
return err return err
} }
return g.groupMemberDB.Create(ctx, []*relation2.GroupMemberModel{member}, tx) return g.groupMemberDB.Create(ctx, []*relationTb.GroupMemberModel{member}, tx)
}) })
} }
@ -345,46 +345,46 @@ func (g *GroupDataBase) UpdateGroupMember(ctx context.Context, groupID, userID s
return g.groupMemberDB.Update(ctx, groupID, userID, data) return g.groupMemberDB.Update(ctx, groupID, userID, data)
} }
func (g *GroupDataBase) CreateGroupRequest(ctx context.Context, requests []*relation2.GroupRequestModel) error { func (g *GroupDataBase) CreateGroupRequest(ctx context.Context, requests []*relationTb.GroupRequestModel) error {
return g.groupRequestDB.Create(ctx, requests) return g.groupRequestDB.Create(ctx, requests)
} }
func (g *GroupDataBase) TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relation2.GroupRequestModel, error) { func (g *GroupDataBase) TakeGroupRequest(ctx context.Context, groupID string, userID string) (*relationTb.GroupRequestModel, error) {
return g.groupRequestDB.Take(ctx, groupID, userID) return g.groupRequestDB.Take(ctx, groupID, userID)
} }
func (g *GroupDataBase) PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relation2.GroupRequestModel, error) { func (g *GroupDataBase) PageGroupRequestUser(ctx context.Context, userID string, pageNumber, showNumber int32) (uint32, []*relationTb.GroupRequestModel, error) {
return g.groupRequestDB.Page(ctx, userID, pageNumber, showNumber) return g.groupRequestDB.Page(ctx, userID, pageNumber, showNumber)
} }
func (g *GroupDataBase) FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelation2.SuperGroupModel, error) { func (g *GroupDataBase) FindSuperGroup(ctx context.Context, groupIDs []string) ([]*unrelationTb.SuperGroupModel, error) {
return g.mongoDB.FindSuperGroup(ctx, groupIDs) return g.mongoDB.FindSuperGroup(ctx, groupIDs)
} }
func (g *GroupDataBase) FindJoinSuperGroup(ctx context.Context, userID string) (*unrelation2.UserToSuperGroupModel, error) { func (g *GroupDataBase) FindJoinSuperGroup(ctx context.Context, userID string) (*unrelationTb.UserToSuperGroupModel, error) {
return g.mongoDB.GetSuperGroupByUserID(ctx, userID) return g.mongoDB.GetSuperGroupByUserID(ctx, userID)
} }
func (g *GroupDataBase) CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error { func (g *GroupDataBase) CreateSuperGroup(ctx context.Context, groupID string, initMemberIDList []string) error {
return g.mongoDB.Transaction(ctx, func(s unrelation2.SuperGroupModelInterface, tx any) error { return g.mongoDB.Transaction(ctx, func(s unrelationTb.SuperGroupModelInterface, tx any) error {
return s.CreateSuperGroup(ctx, groupID, initMemberIDList, tx) return s.CreateSuperGroup(ctx, groupID, initMemberIDList, tx)
}) })
} }
func (g *GroupDataBase) DeleteSuperGroup(ctx context.Context, groupID string) error { func (g *GroupDataBase) DeleteSuperGroup(ctx context.Context, groupID string) error {
return g.mongoDB.Transaction(ctx, func(s unrelation2.SuperGroupModelInterface, tx any) error { return g.mongoDB.Transaction(ctx, func(s unrelationTb.SuperGroupModelInterface, tx any) error {
return s.DeleteSuperGroup(ctx, groupID, tx) return s.DeleteSuperGroup(ctx, groupID, tx)
}) })
} }
func (g *GroupDataBase) DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error { func (g *GroupDataBase) DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error {
return g.mongoDB.Transaction(ctx, func(s unrelation2.SuperGroupModelInterface, tx any) error { return g.mongoDB.Transaction(ctx, func(s unrelationTb.SuperGroupModelInterface, tx any) error {
return s.RemoverUserFromSuperGroup(ctx, groupID, userIDs, tx) return s.RemoverUserFromSuperGroup(ctx, groupID, userIDs, tx)
}) })
} }
func (g *GroupDataBase) CreateSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error { func (g *GroupDataBase) CreateSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error {
return g.mongoDB.Transaction(ctx, func(s unrelation2.SuperGroupModelInterface, tx any) error { return g.mongoDB.Transaction(ctx, func(s unrelationTb.SuperGroupModelInterface, tx any) error {
return s.AddUserToSuperGroup(ctx, groupID, userIDs, tx) return s.AddUserToSuperGroup(ctx, groupID, userIDs, tx)
}) })
} }

View File

@ -3,24 +3,24 @@ package controller
import ( import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/db/relation" "Open_IM/pkg/common/db/relation"
relation2 "Open_IM/pkg/common/db/table/relation" relationTb "Open_IM/pkg/common/db/table/relation"
"context" "context"
"gorm.io/gorm" "gorm.io/gorm"
) )
type UserInterface interface { type UserInterface interface {
//获取指定用户的信息 如有userID未找到 也返回错误 //获取指定用户的信息 如有userID未找到 也返回错误
FindWithError(ctx context.Context, userIDs []string) (users []*relation2.UserModel, err error) FindWithError(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error)
//获取指定用户的信息 如有userID未找到 不返回错误 //获取指定用户的信息 如有userID未找到 不返回错误
Find(ctx context.Context, userIDs []string) (users []*relation2.UserModel, err error) Find(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error)
//插入多条 外部保证userID 不重复 且在db中不存在 //插入多条 外部保证userID 不重复 且在db中不存在
Create(ctx context.Context, users []*relation2.UserModel) (err error) Create(ctx context.Context, users []*relationTb.UserModel) (err error)
//更新(非零值) 外部保证userID存在 //更新(非零值) 外部保证userID存在
Update(ctx context.Context, users []*relation2.UserModel) (err error) Update(ctx context.Context, users []*relationTb.UserModel) (err error)
//更新(零值) 外部保证userID存在 //更新(零值) 外部保证userID存在
UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error)
//如果没找到,不返回错误 //如果没找到,不返回错误
Page(ctx context.Context, pageNumber, showNumber int32) (users []*relation2.UserModel, count int64, err error) Page(ctx context.Context, pageNumber, showNumber int32) (users []*relationTb.UserModel, count int64, err error)
//只要有一个存在就为true //只要有一个存在就为true
IsExist(ctx context.Context, userIDs []string) (exist bool, err error) IsExist(ctx context.Context, userIDs []string) (exist bool, err error)
} }
@ -29,21 +29,21 @@ type UserController struct {
database UserDatabaseInterface database UserDatabaseInterface
} }
func (u *UserController) Find(ctx context.Context, userIDs []string) (users []*relation2.UserModel, err error) { func (u *UserController) Find(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error) {
return u.database.Find(ctx, userIDs) return u.database.Find(ctx, userIDs)
} }
func (u *UserController) Create(ctx context.Context, users []*relation2.UserModel) error { func (u *UserController) Create(ctx context.Context, users []*relationTb.UserModel) error {
return u.database.Create(ctx, users) return u.database.Create(ctx, users)
} }
func (u *UserController) Update(ctx context.Context, users []*relation2.UserModel) (err error) { func (u *UserController) Update(ctx context.Context, users []*relationTb.UserModel) (err error) {
return u.database.Update(ctx, users) return u.database.Update(ctx, users)
} }
func (u *UserController) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) { func (u *UserController) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) {
return u.database.UpdateByMap(ctx, userID, args) return u.database.UpdateByMap(ctx, userID, args)
} }
func (u *UserController) Get(ctx context.Context, pageNumber, showNumber int32) (users []*relation2.UserModel, count int64, err error) { func (u *UserController) Get(ctx context.Context, pageNumber, showNumber int32) (users []*relationTb.UserModel, count int64, err error) {
return u.database.Get(ctx, pageNumber, showNumber) return u.database.Get(ctx, pageNumber, showNumber)
} }
@ -56,11 +56,11 @@ func NewUserController(db *gorm.DB) *UserController {
} }
type UserDatabaseInterface interface { type UserDatabaseInterface interface {
Find(ctx context.Context, userIDs []string) (users []*relation2.UserModel, err error) Find(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error)
Create(ctx context.Context, users []*relation2.UserModel) error Create(ctx context.Context, users []*relationTb.UserModel) error
Update(ctx context.Context, users []*relation2.UserModel) (err error) Update(ctx context.Context, users []*relationTb.UserModel) (err error)
UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error) UpdateByMap(ctx context.Context, userID string, args map[string]interface{}) (err error)
Get(ctx context.Context, pageNumber, showNumber int32) (users []*relation2.UserModel, count int64, err error) Get(ctx context.Context, pageNumber, showNumber int32) (users []*relationTb.UserModel, count int64, err error)
IsExist(ctx context.Context, userIDs []string) (exist bool, err error) IsExist(ctx context.Context, userIDs []string) (exist bool, err error)
} }
@ -77,7 +77,7 @@ func newUserDatabase(db *gorm.DB) *UserDatabase {
} }
// 获取指定用户的信息 如有userID未找到 也返回错误 // 获取指定用户的信息 如有userID未找到 也返回错误
func (u *UserDatabase) Find(ctx context.Context, userIDs []string) (users []*relation2.UserModel, err error) { func (u *UserDatabase) Find(ctx context.Context, userIDs []string) (users []*relationTb.UserModel, err error) {
users, err = u.user.Find(ctx, userIDs) users, err = u.user.Find(ctx, userIDs)
if err != nil { if err != nil {
return return
@ -89,12 +89,12 @@ func (u *UserDatabase) Find(ctx context.Context, userIDs []string) (users []*rel
} }
// 插入多条 外部保证userID 不重复 且在db中不存在 // 插入多条 外部保证userID 不重复 且在db中不存在
func (u *UserDatabase) Create(ctx context.Context, users []*relation2.UserModel) (err error) { func (u *UserDatabase) Create(ctx context.Context, users []*relationTb.UserModel) (err error) {
return u.user.Create(ctx, users) return u.user.Create(ctx, users)
} }
// 更新(非零值) 外部保证userID存在 // 更新(非零值) 外部保证userID存在
func (u *UserDatabase) Update(ctx context.Context, users []*relation2.UserModel) (err error) { func (u *UserDatabase) Update(ctx context.Context, users []*relationTb.UserModel) (err error) {
return u.user.Update(ctx, users) return u.user.Update(ctx, users)
} }
@ -104,7 +104,7 @@ func (u *UserDatabase) UpdateByMap(ctx context.Context, userID string, args map[
} }
// 获取,如果没找到,不返回错误 // 获取,如果没找到,不返回错误
func (u *UserDatabase) Get(ctx context.Context, showNumber, pageNumber int32) (users []*relation2.UserModel, count int64, err error) { func (u *UserDatabase) Get(ctx context.Context, showNumber, pageNumber int32) (users []*relationTb.UserModel, count int64, err error) {
return u.user.Get(ctx, showNumber, pageNumber) return u.user.Get(ctx, showNumber, pageNumber)
} }

View File

@ -7,7 +7,7 @@ import (
) )
type ConversationLocalCacheInterface interface { type ConversationLocalCacheInterface interface {
GetRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string) []string GetRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string) ([]string, error)
} }
type ConversationLocalCache struct { type ConversationLocalCache struct {
@ -23,7 +23,7 @@ func NewConversationLocalCache(client discoveryRegistry.SvcDiscoveryRegistry) Co
} }
} }
func (g *ConversationLocalCache) GetRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string) []string { func (g *ConversationLocalCache) GetRecvMsgNotNotifyUserIDs(ctx context.Context, groupID string) ([]string, error) {
g.client.GetConn() g.client.GetConn()
return []string{} return []string{}
} }

View File

@ -1,7 +1,7 @@
package unrelation package unrelation
import ( import (
commonPb "Open_IM/pkg/proto/sdk_ws" common "Open_IM/pkg/proto/sdk_ws"
"context" "context"
"strconv" "strconv"
"strings" "strings"
@ -13,7 +13,7 @@ const (
ExtendMsgMaxNum = 100 ExtendMsgMaxNum = 100
) )
type ExtendMsgSet struct { type ExtendMsgSetModel struct {
SourceID string `bson:"source_id" json:"sourceID"` SourceID string `bson:"source_id" json:"sourceID"`
SessionType int32 `bson:"session_type" json:"sessionType"` SessionType int32 `bson:"session_type" json:"sessionType"`
ExtendMsgs map[string]ExtendMsg `bson:"extend_msgs" json:"extendMsgs"` ExtendMsgs map[string]ExtendMsg `bson:"extend_msgs" json:"extendMsgs"`
@ -22,33 +22,33 @@ type ExtendMsgSet struct {
MaxMsgUpdateTime int64 `bson:"max_msg_update_time" json:"maxMsgUpdateTime"` // index find msg MaxMsgUpdateTime int64 `bson:"max_msg_update_time" json:"maxMsgUpdateTime"` // index find msg
} }
type KeyValue struct { type KeyValueModel struct {
TypeKey string `bson:"type_key" json:"typeKey"` TypeKey string `bson:"type_key" json:"typeKey"`
Value string `bson:"value" json:"value"` Value string `bson:"value" json:"value"`
LatestUpdateTime int64 `bson:"latest_update_time" json:"latestUpdateTime"` LatestUpdateTime int64 `bson:"latest_update_time" json:"latestUpdateTime"`
} }
type ExtendMsg struct { type ExtendMsg struct {
ReactionExtensionList map[string]KeyValue `bson:"reaction_extension_list" json:"reactionExtensionList"` ReactionExtensionList map[string]KeyValueModel `bson:"reaction_extension_list" json:"reactionExtensionList"`
ClientMsgID string `bson:"client_msg_id" json:"clientMsgID"` ClientMsgID string `bson:"client_msg_id" json:"clientMsgID"`
MsgFirstModifyTime int64 `bson:"msg_first_modify_time" json:"msgFirstModifyTime"` // this extendMsg create time MsgFirstModifyTime int64 `bson:"msg_first_modify_time" json:"msgFirstModifyTime"` // this extendMsg create time
AttachedInfo string `bson:"attached_info" json:"attachedInfo"` AttachedInfo string `bson:"attached_info" json:"attachedInfo"`
Ex string `bson:"ex" json:"ex"` Ex string `bson:"ex" json:"ex"`
} }
func (ExtendMsgSet) TableName() string { func (ExtendMsgSetModel) TableName() string {
return CExtendMsgSet return CExtendMsgSet
} }
func (ExtendMsgSet) GetExtendMsgMaxNum() int32 { func (ExtendMsgSetModel) GetExtendMsgMaxNum() int32 {
return ExtendMsgMaxNum return ExtendMsgMaxNum
} }
func (ExtendMsgSet) GetSourceID(ID string, index int32) string { func (ExtendMsgSetModel) GetSourceID(ID string, index int32) string {
return ID + ":" + strconv.Itoa(int(index)) return ID + ":" + strconv.Itoa(int(index))
} }
func (e *ExtendMsgSet) SplitSourceIDAndGetIndex() int32 { func (e *ExtendMsgSetModel) SplitSourceIDAndGetIndex() int32 {
l := strings.Split(e.SourceID, ":") l := strings.Split(e.SourceID, ":")
index, _ := strconv.Atoi(l[len(l)-1]) index, _ := strconv.Atoi(l[len(l)-1])
return int32(index) return int32(index)
@ -59,11 +59,11 @@ type GetAllExtendMsgSetOpts struct {
} }
type ExtendMsgSetInterface interface { type ExtendMsgSetInterface interface {
CreateExtendMsgSet(ctx context.Context, set *ExtendMsgSet) error CreateExtendMsgSet(ctx context.Context, set *ExtendMsgSetModel) error
GetAllExtendMsgSet(ctx context.Context, ID string, opts *GetAllExtendMsgSetOpts) (sets []*ExtendMsgSet, err error) GetAllExtendMsgSet(ctx context.Context, ID string, opts *GetAllExtendMsgSetOpts) (sets []*ExtendMsgSetModel, err error)
GetExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, maxMsgUpdateTime int64) (*ExtendMsgSet, error) GetExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, maxMsgUpdateTime int64) (*ExtendMsgSetModel, error)
InsertExtendMsg(ctx context.Context, sourceID string, sessionType int32, msg *ExtendMsg) error InsertExtendMsg(ctx context.Context, sourceID string, sessionType int32, msg *ExtendMsg) error
InsertOrUpdateReactionExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList map[string]*commonPb.KeyValue) error InsertOrUpdateReactionExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList map[string]*common.KeyValue) error
DeleteReactionExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList map[string]*commonPb.KeyValue) error DeleteReactionExtendMsgSet(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList map[string]*common.KeyValue) error
GetExtendMsg(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, maxMsgUpdateTime int64) (extendMsg *ExtendMsg, err error) GetExtendMsg(ctx context.Context, sourceID string, sessionType int32, clientMsgID string, maxMsgUpdateTime int64) (extendMsg *ExtendMsg, err error)
} }

View File

@ -1,4 +1,4 @@
package token_verify package tokenverify
import ( import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"

View File

@ -1,4 +1,4 @@
package token_verify package tokenverify
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"

View File

@ -3,7 +3,7 @@ package utils
import ( import (
"Open_IM/pkg/common/config" "Open_IM/pkg/common/config"
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/tokenverify"
"testing" "testing"
"time" "time"
@ -14,7 +14,7 @@ func Test_BuildClaims(t *testing.T) {
uid := "1" uid := "1"
platform := "PC" platform := "PC"
ttl := int64(-1) ttl := int64(-1)
claim := token_verify.BuildClaims(uid, platform, ttl) claim := tokenverify.BuildClaims(uid, platform, ttl)
now := time.Now().Unix() now := time.Now().Unix()
assert.Equal(t, claim.UID, uid, "uid should equal") assert.Equal(t, claim.UID, uid, "uid should equal")
@ -26,7 +26,7 @@ func Test_BuildClaims(t *testing.T) {
ttl = int64(60) ttl = int64(60)
now = time.Now().Unix() now = time.Now().Unix()
claim = token_verify.BuildClaims(uid, platform, ttl) claim = tokenverify.BuildClaims(uid, platform, ttl)
// time difference within 1s // time difference within 1s
assert.Equal(t, claim.RegisteredClaims.ExpiresAt, int64(60)+now, "StandardClaims.ExpiresAt should be equal") assert.Equal(t, claim.RegisteredClaims.ExpiresAt, int64(60)+now, "StandardClaims.ExpiresAt should be equal")
assert.Equal(t, claim.RegisteredClaims.IssuedAt, now, "StandardClaims.IssuedAt should be equal") assert.Equal(t, claim.RegisteredClaims.IssuedAt, now, "StandardClaims.IssuedAt should be equal")
@ -38,7 +38,7 @@ func Test_CreateToken(t *testing.T) {
platform := int32(1) platform := int32(1)
now := time.Now().Unix() now := time.Now().Unix()
tokenString, expiresAt, err := token_verify.CreateToken(uid, int(platform)) tokenString, expiresAt, err := tokenverify.CreateToken(uid, int(platform))
assert.NotEmpty(t, tokenString) assert.NotEmpty(t, tokenString)
assert.Equal(t, expiresAt, 604800+now) assert.Equal(t, expiresAt, 604800+now)
@ -48,26 +48,26 @@ func Test_CreateToken(t *testing.T) {
func Test_VerifyToken(t *testing.T) { func Test_VerifyToken(t *testing.T) {
uid := "1" uid := "1"
platform := int32(1) platform := int32(1)
tokenString, _, _ := token_verify.CreateToken(uid, int(platform)) tokenString, _, _ := tokenverify.CreateToken(uid, int(platform))
result, _ := token_verify.VerifyToken(tokenString, uid) result, _ := tokenverify.VerifyToken(tokenString, uid)
assert.True(t, result) assert.True(t, result)
result, _ = token_verify.VerifyToken(tokenString, "2") result, _ = tokenverify.VerifyToken(tokenString, "2")
assert.False(t, result) assert.False(t, result)
} }
func Test_ParseRedisInterfaceToken(t *testing.T) { func Test_ParseRedisInterfaceToken(t *testing.T) {
uid := "1" uid := "1"
platform := int32(1) platform := int32(1)
tokenString, _, _ := token_verify.CreateToken(uid, int(platform)) tokenString, _, _ := tokenverify.CreateToken(uid, int(platform))
claims, err := token_verify.ParseRedisInterfaceToken([]uint8(tokenString)) claims, err := tokenverify.ParseRedisInterfaceToken([]uint8(tokenString))
assert.Nil(t, err) assert.Nil(t, err)
assert.Equal(t, claims.UID, uid) assert.Equal(t, claims.UID, uid)
// timeout // timeout
config.Config.TokenPolicy.AccessExpire = -80 config.Config.TokenPolicy.AccessExpire = -80
tokenString, _, _ = token_verify.CreateToken(uid, int(platform)) tokenString, _, _ = tokenverify.CreateToken(uid, int(platform))
claims, err = token_verify.ParseRedisInterfaceToken([]uint8(tokenString)) claims, err = tokenverify.ParseRedisInterfaceToken([]uint8(tokenString))
assert.Equal(t, err, constant.ExpiredToken) assert.Equal(t, err, constant.ExpiredToken)
assert.Nil(t, claims) assert.Nil(t, claims)
} }
@ -75,15 +75,15 @@ func Test_ParseRedisInterfaceToken(t *testing.T) {
func Test_ParseToken(t *testing.T) { func Test_ParseToken(t *testing.T) {
uid := "1" uid := "1"
platform := int32(1) platform := int32(1)
tokenString, _, _ := token_verify.CreateToken(uid, int(platform)) tokenString, _, _ := tokenverify.CreateToken(uid, int(platform))
claims, err := token_verify.ParseToken(tokenString, "") claims, err := tokenverify.ParseToken(tokenString, "")
if err == nil { if err == nil {
assert.Equal(t, claims.UID, uid) assert.Equal(t, claims.UID, uid)
} }
} }
func Test_GetClaimFromToken(t *testing.T) { func Test_GetClaimFromToken(t *testing.T) {
token := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiJvcGVuSU0xMjM0NTYiLCJQbGF0Zm9ybSI6IiIsImV4cCI6MTYzODg0NjQ3NiwibmJmIjoxNjM4MjQxNjc2LCJpYXQiOjE2MzgyNDE2NzZ9.W8RZB7ec5ySFj-rGE2Aho2z32g3MprQMdCyPiQu_C2I" token := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiJvcGVuSU0xMjM0NTYiLCJQbGF0Zm9ybSI6IiIsImV4cCI6MTYzODg0NjQ3NiwibmJmIjoxNjM4MjQxNjc2LCJpYXQiOjE2MzgyNDE2NzZ9.W8RZB7ec5ySFj-rGE2Aho2z32g3MprQMdCyPiQu_C2I"
c, err := token_verify.GetClaimFromToken(token) c, err := tokenverify.GetClaimFromToken(token)
assert.Nil(t, c) assert.Nil(t, c)
assert.Nil(t, err) assert.Nil(t, err)
} }