♻️ Optimize user join channel logic
This commit is contained in:
@ -53,9 +53,11 @@ func GetChannelMember(user authm.Account, channelId uint) (models.ChannelMember,
|
||||
return member, nil
|
||||
}
|
||||
|
||||
func AddChannelMemberWithCheck(user authm.Account, target models.Channel) error {
|
||||
if err := authkit.EnsureUserPermGranted(gap.Nx, user.ID, target.AccountID, "ChannelAdd", true); err != nil {
|
||||
return fmt.Errorf("unable to add user into your channel due to access denied: %v", err)
|
||||
func AddChannelMemberWithCheck(user, op authm.Account, target models.Channel) error {
|
||||
if user.ID != op.ID {
|
||||
if err := authkit.EnsureUserPermGranted(gap.Nx, user.ID, op.ID, "ChannelAdd", true); err != nil {
|
||||
return fmt.Errorf("unable to add user into your channel due to access denied: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
member := models.ChannelMember{
|
||||
|
@ -184,7 +184,7 @@ func ListChannel(user *authm.Account, realmId ...uint) ([]models.Channel, error)
|
||||
var idRange []uint
|
||||
if user != nil {
|
||||
if err := database.C.Where("account_id = ?", user.ID).Find(&identities).Error; err != nil {
|
||||
return nil, fmt.Errorf("unabkle to get identities: %v", err)
|
||||
return nil, fmt.Errorf("unable to get identities: %v", err)
|
||||
}
|
||||
for _, identity := range identities {
|
||||
idRange = append(idRange, identity.ChannelID)
|
||||
|
Reference in New Issue
Block a user