mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-05 09:36:00 +08:00
feat: add rpc interface permission check (#3366)
* pb
* fix: Modifying other fields while setting IsPrivateChat does not take effect
* fix: quote message error revoke
* refactoring scheduled tasks
* refactoring scheduled tasks
* refactoring scheduled tasks
* refactoring scheduled tasks
* refactoring scheduled tasks
* refactoring scheduled tasks
* upgrading pkg tools
* fix
* fix
* optimize log output
* feat: support GetLastMessage
* feat: support GetLastMessage
* feat: s3 switch
* feat: s3 switch
* fix: GetUsersOnline
* feat: SendBusinessNotification supported configuration parameters
* feat: SendBusinessNotification supported configuration parameters
* feat: SendBusinessNotification supported configuration parameters
* feat: seq conversion failed without exiting
* fix: DeleteDoc crash
* fix: fill send time
* fix: fill send time
* fix: crash caused by withdrawing messages from users who have left the group
* fix: user msg timestamp
* seq read config
* seq read config
* fix: the source message of the reference is withdrawn, and the referenced message is deleted
* feat: optimize the default notification.yml
* fix: shouldPushOffline
* fix: the sorting is wrong after canceling the administrator in group settings
* feat: Sending messages supports returning fields modified by webhook
* feat: Sending messages supports returning fields modified by webhook
* feat: Sending messages supports returning fields modified by webhook
* fix: oss specifies content-type when uploading
* fix: the version number contains a line break
* fix: the version number contains a line break
* feat: GetConversationsHasReadAndMaxSeq support pinned
* feat: GetConversationsHasReadAndMaxSeq support pinned
* feat: GetConversationsHasReadAndMaxSeq support pinned
* fix: transferring the group owner to a muted member, incremental version error
* feat: unified conversion code
* feat: update gomake
* fix: in standalone mode, the user online status is wrong
* fix: add permission check
* fix: add permission check
(cherry picked from commit 748d783d36)
# Conflicts:
# internal/rpc/conversation/conversation.go
# internal/rpc/group/cache.go
# internal/rpc/group/statistics.go
# internal/rpc/msg/send.go
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/openimsdk/open-im-server/v3/pkg/authverify"
|
||||
cbapi "github.com/openimsdk/open-im-server/v3/pkg/callbackstruct"
|
||||
"github.com/openimsdk/protocol/constant"
|
||||
"github.com/openimsdk/protocol/msg"
|
||||
@@ -29,6 +30,9 @@ import (
|
||||
)
|
||||
|
||||
func (m *msgServer) GetConversationsHasReadAndMaxSeq(ctx context.Context, req *msg.GetConversationsHasReadAndMaxSeqReq) (*msg.GetConversationsHasReadAndMaxSeqResp, error) {
|
||||
if err := authverify.CheckAccess(ctx, req.UserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var conversationIDs []string
|
||||
if len(req.ConversationIDs) == 0 {
|
||||
var err error
|
||||
@@ -82,6 +86,9 @@ func (m *msgServer) GetConversationsHasReadAndMaxSeq(ctx context.Context, req *m
|
||||
}
|
||||
|
||||
func (m *msgServer) SetConversationHasReadSeq(ctx context.Context, req *msg.SetConversationHasReadSeqReq) (*msg.SetConversationHasReadSeqResp, error) {
|
||||
if err := authverify.CheckAccess(ctx, req.UserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
maxSeq, err := m.MsgDatabase.GetMaxSeq(ctx, req.ConversationID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -97,8 +104,8 @@ func (m *msgServer) SetConversationHasReadSeq(ctx context.Context, req *msg.SetC
|
||||
}
|
||||
|
||||
func (m *msgServer) MarkMsgsAsRead(ctx context.Context, req *msg.MarkMsgsAsReadReq) (*msg.MarkMsgsAsReadResp, error) {
|
||||
if len(req.Seqs) < 1 {
|
||||
return nil, errs.ErrArgs.WrapMsg("seqs must not be empty")
|
||||
if err := authverify.CheckAccess(ctx, req.UserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
maxSeq, err := m.MsgDatabase.GetMaxSeq(ctx, req.ConversationID)
|
||||
if err != nil {
|
||||
@@ -139,6 +146,9 @@ func (m *msgServer) MarkMsgsAsRead(ctx context.Context, req *msg.MarkMsgsAsReadR
|
||||
}
|
||||
|
||||
func (m *msgServer) MarkConversationAsRead(ctx context.Context, req *msg.MarkConversationAsReadReq) (*msg.MarkConversationAsReadResp, error) {
|
||||
if err := authverify.CheckAccess(ctx, req.UserID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
conversation, err := m.ConversationLocalCache.GetConversation(ctx, req.UserID, req.ConversationID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -216,5 +226,4 @@ func (m *msgServer) sendMarkAsReadNotification(ctx context.Context, conversation
|
||||
HasReadSeq: hasReadSeq,
|
||||
}
|
||||
m.notificationSender.NotificationWithSessionType(ctx, sendID, recvID, constant.HasReadReceipt, sessionType, tips)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user