MM-55295: Improve DB performance of some (Take 2) (#25865)
* Revert "Revert "MM-55295: Improve DB performance of some APIs (#25318)" (#25852)"
This reverts commit 077221a940.
* Fix the issue
```release-note
NONE
```
* lint fix
```release-note
NONE
```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
43cca04f04
Коммит
1d879ed0f4
@@ -83,7 +83,6 @@ func (a *App) SessionHasPermissionToChannel(c request.CTX, session model.Session
|
||||
}
|
||||
|
||||
ids, err := a.Srv().Store().Channel().GetAllChannelMembersForUser(session.UserId, true, true)
|
||||
|
||||
var channelRoles []string
|
||||
if err == nil {
|
||||
if roles, ok := ids[channelID]; ok {
|
||||
@@ -260,17 +259,22 @@ func (a *App) HasPermissionToChannel(c request.CTX, askingUserId string, channel
|
||||
return false
|
||||
}
|
||||
|
||||
channelMember, err := a.GetChannelMember(c, channelID, askingUserId)
|
||||
// We call GetAllChannelMembersForUser instead of just getting
|
||||
// a single member from the DB, because it's cache backed
|
||||
// and this is a very frequent call.
|
||||
ids, err := a.Srv().Store().Channel().GetAllChannelMembersForUser(askingUserId, true, true)
|
||||
var channelRoles []string
|
||||
if err == nil {
|
||||
roles := channelMember.GetRoles()
|
||||
if a.RolesGrantPermission(roles, permission.Id) {
|
||||
return true
|
||||
if roles, ok := ids[channelID]; ok {
|
||||
channelRoles = strings.Fields(roles)
|
||||
if a.RolesGrantPermission(channelRoles, permission.Id) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var channel *model.Channel
|
||||
channel, err = a.GetChannel(c, channelID)
|
||||
if err == nil {
|
||||
channel, appErr := a.GetChannel(c, channelID)
|
||||
if appErr == nil {
|
||||
return a.HasPermissionToTeam(c, askingUserId, channel.TeamId, permission)
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user