🐛 Fix cannot do message action in channel related realm
This commit is contained in:
@ -42,11 +42,11 @@ func GetChannelWithAlias(alias string, realmId ...uint) (models.Channel, error)
|
||||
return channel, nil
|
||||
}
|
||||
|
||||
func GetAvailableChannelWithAlias(alias string, user models.Account) (models.Channel, models.ChannelMember, error) {
|
||||
func GetAvailableChannelWithAlias(alias string, user models.Account, realmId ...uint) (models.Channel, models.ChannelMember, error) {
|
||||
var err error
|
||||
var member models.ChannelMember
|
||||
var channel models.Channel
|
||||
if channel, err = GetChannelWithAlias(alias); err != nil {
|
||||
if channel, err = GetChannelWithAlias(alias, realmId...); err != nil {
|
||||
return channel, member, err
|
||||
}
|
||||
|
||||
@ -93,16 +93,22 @@ func ListChannel(realmId ...uint) ([]models.Channel, error) {
|
||||
return channels, nil
|
||||
}
|
||||
|
||||
func ListChannelWithUser(user models.Account) ([]models.Channel, error) {
|
||||
func ListChannelWithUser(user models.Account, realmId ...uint) ([]models.Channel, error) {
|
||||
var channels []models.Channel
|
||||
if err := database.C.Where(&models.Channel{AccountID: user.ID}).Find(&channels).Error; err != nil {
|
||||
tx := database.C.Where(&models.Channel{AccountID: user.ID})
|
||||
if len(realmId) > 0 {
|
||||
tx = tx.Where("realm_id = ?", realmId)
|
||||
} else {
|
||||
tx = tx.Where("realm_id IS NULL")
|
||||
}
|
||||
if err := tx.Find(&channels).Error; err != nil {
|
||||
return channels, err
|
||||
}
|
||||
|
||||
return channels, nil
|
||||
}
|
||||
|
||||
func ListChannelIsAvailable(user models.Account) ([]models.Channel, error) {
|
||||
func ListAvailableChannel(user models.Account, realmId ...uint) ([]models.Channel, error) {
|
||||
var channels []models.Channel
|
||||
var members []models.ChannelMember
|
||||
if err := database.C.Where(&models.ChannelMember{
|
||||
@ -115,7 +121,13 @@ func ListChannelIsAvailable(user models.Account) ([]models.Channel, error) {
|
||||
return item.ChannelID
|
||||
})
|
||||
|
||||
if err := database.C.Where("id IN ?", idx).Find(&channels).Error; err != nil {
|
||||
tx := database.C.Where("id IN ?", idx)
|
||||
if len(realmId) > 0 {
|
||||
tx = tx.Where("realm_id = ?", realmId)
|
||||
} else {
|
||||
tx = tx.Where("realm_id IS NULL")
|
||||
}
|
||||
if err := tx.Find(&channels).Error; err != nil {
|
||||
return channels, err
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user