MM-45994 ensure database operations return their errors (#20857)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
c72e9131f4
Коммит
eb37139f16
@@ -1664,7 +1664,7 @@ func (us SqlUserStore) GetEtagForProfilesNotInTeam(teamId string) string {
|
||||
return fmt.Sprintf("%v.%v", model.CurrentVersion, etag)
|
||||
}
|
||||
|
||||
func (us SqlUserStore) ClearAllCustomRoleAssignments() error {
|
||||
func (us SqlUserStore) ClearAllCustomRoleAssignments() (err error) {
|
||||
builtInRoles := model.MakeDefaultRoles()
|
||||
lastUserId := strings.Repeat("0", 26)
|
||||
|
||||
@@ -1675,7 +1675,7 @@ func (us SqlUserStore) ClearAllCustomRoleAssignments() error {
|
||||
if transaction, err = us.GetMasterX().Beginx(); err != nil {
|
||||
return errors.Wrap(err, "begin_transaction")
|
||||
}
|
||||
defer finalizeTransactionX(transaction)
|
||||
defer finalizeTransactionX(transaction, &err)
|
||||
|
||||
users := []*model.User{}
|
||||
if err := transaction.Select(&users, "SELECT * from Users WHERE Id > ? ORDER BY Id LIMIT 1000", lastUserId); err != nil {
|
||||
@@ -1728,7 +1728,7 @@ func (us SqlUserStore) InferSystemInstallDate() (int64, error) {
|
||||
|
||||
func (us SqlUserStore) GetUsersBatchForIndexing(startTime int64, startFileID string, limit int) ([]*model.UserForIndexing, error) {
|
||||
users := []*model.User{}
|
||||
usersQuery, args, _ := us.usersQuery.
|
||||
usersQuery, args, err := us.usersQuery.
|
||||
Where(sq.Or{
|
||||
sq.Gt{"u.CreateAt": startTime},
|
||||
sq.And{
|
||||
@@ -1739,7 +1739,11 @@ func (us SqlUserStore) GetUsersBatchForIndexing(startTime int64, startFileID str
|
||||
OrderBy("u.CreateAt ASC, u.Id ASC").
|
||||
Limit(uint64(limit)).
|
||||
ToSql()
|
||||
err := us.GetSearchReplicaX().Select(&users, usersQuery, args...)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetUsersBatchForIndexing_ToSql1")
|
||||
}
|
||||
|
||||
err = us.GetSearchReplicaX().Select(&users, usersQuery, args...)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to find Users")
|
||||
}
|
||||
@@ -1750,7 +1754,7 @@ func (us SqlUserStore) GetUsersBatchForIndexing(startTime int64, startFileID str
|
||||
}
|
||||
|
||||
channelMembers := []*model.ChannelMember{}
|
||||
channelMembersQuery, args, _ := us.getQueryBuilder().
|
||||
channelMembersQuery, args, err := us.getQueryBuilder().
|
||||
Select(`
|
||||
cm.ChannelId,
|
||||
cm.UserId,
|
||||
@@ -1769,17 +1773,25 @@ func (us SqlUserStore) GetUsersBatchForIndexing(startTime int64, startFileID str
|
||||
Join("Channels c ON cm.ChannelId = c.Id").
|
||||
Where(sq.Eq{"c.Type": model.ChannelTypeOpen, "cm.UserId": userIds}).
|
||||
ToSql()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetUsersBatchForIndexing_ToSql2")
|
||||
}
|
||||
|
||||
err = us.GetSearchReplicaX().Select(&channelMembers, channelMembersQuery, args...)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to find ChannelMembers")
|
||||
}
|
||||
|
||||
teamMembers := []*model.TeamMember{}
|
||||
teamMembersQuery, args, _ := us.getQueryBuilder().
|
||||
Select("TeamId, UserId, Roles, DeleteAt, CreateAt, (SchemeGuest IS NOT NULL AND SchemeGuest) as SchemeGuest, SchemeUser, SchemeAdmin").
|
||||
teamMembersQuery, args, err := us.getQueryBuilder().
|
||||
Select("TeamId, UserId, Roles, DeleteAt, (SchemeGuest IS NOT NULL AND SchemeGuest) as SchemeGuest, SchemeUser, SchemeAdmin").
|
||||
From("TeamMembers").
|
||||
Where(sq.Eq{"UserId": userIds, "DeleteAt": 0}).
|
||||
ToSql()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetUsersBatchForIndexing_ToSql3")
|
||||
}
|
||||
|
||||
err = us.GetSearchReplicaX().Select(&teamMembers, teamMembersQuery, args...)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to find TeamMembers")
|
||||
@@ -1896,12 +1908,12 @@ func applyViewRestrictionsFilter(query sq.SelectBuilder, restrictions *model.Vie
|
||||
return resultQuery
|
||||
}
|
||||
|
||||
func (us SqlUserStore) PromoteGuestToUser(userId string) error {
|
||||
func (us SqlUserStore) PromoteGuestToUser(userId string) (err error) {
|
||||
transaction, err := us.GetMasterX().Beginx()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "begin_transaction")
|
||||
}
|
||||
defer finalizeTransactionX(transaction)
|
||||
defer finalizeTransactionX(transaction, &err)
|
||||
|
||||
user, err := us.Get(context.Background(), userId)
|
||||
if err != nil {
|
||||
@@ -1965,12 +1977,12 @@ func (us SqlUserStore) PromoteGuestToUser(userId string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (us SqlUserStore) DemoteUserToGuest(userID string) (*model.User, error) {
|
||||
func (us SqlUserStore) DemoteUserToGuest(userID string) (_ *model.User, err error) {
|
||||
transaction, err := us.GetMasterX().Beginx()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "begin_transaction")
|
||||
}
|
||||
defer finalizeTransactionX(transaction)
|
||||
defer finalizeTransactionX(transaction, &err)
|
||||
|
||||
user, err := us.Get(context.Background(), userID)
|
||||
if err != nil {
|
||||
@@ -2070,14 +2082,18 @@ func (us SqlUserStore) AutocompleteUsersInChannel(teamId, channelId, term string
|
||||
// direct and group channels.
|
||||
func (us SqlUserStore) GetKnownUsers(userId string) ([]string, error) {
|
||||
userIds := []string{}
|
||||
usersQuery, args, _ := us.getQueryBuilder().
|
||||
usersQuery, args, err := us.getQueryBuilder().
|
||||
Select("DISTINCT ocm.UserId").
|
||||
From("ChannelMembers AS cm").
|
||||
Join("ChannelMembers AS ocm ON ocm.ChannelId = cm.ChannelId").
|
||||
Where(sq.NotEq{"ocm.UserId": userId}).
|
||||
Where(sq.Eq{"cm.UserId": userId}).
|
||||
ToSql()
|
||||
err := us.GetSearchReplicaX().Select(&userIds, usersQuery, args...)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetKnownUsers_ToSql")
|
||||
}
|
||||
|
||||
err = us.GetSearchReplicaX().Select(&userIds, usersQuery, args...)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to find ChannelMembers")
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user