forked from MirrorHub/mautrix-whatsapp
Add power level to Matrix user if they're admin
This commit is contained in:
parent
f78fb72622
commit
0d45b5b857
2 changed files with 12 additions and 4 deletions
13
portal.go
13
portal.go
|
@ -128,16 +128,17 @@ func (portal *Portal) SyncParticipants(metadata *whatsappExt.GroupInfo) {
|
||||||
for _, participant := range metadata.Participants {
|
for _, participant := range metadata.Participants {
|
||||||
puppet := portal.user.GetPuppetByJID(participant.JID)
|
puppet := portal.user.GetPuppetByJID(participant.JID)
|
||||||
puppet.Intent().EnsureJoined(portal.MXID)
|
puppet.Intent().EnsureJoined(portal.MXID)
|
||||||
level := levels.GetUserLevel(puppet.MXID)
|
|
||||||
expectedLevel := 0
|
expectedLevel := 0
|
||||||
if participant.IsSuperAdmin {
|
if participant.IsSuperAdmin {
|
||||||
expectedLevel = 95
|
expectedLevel = 95
|
||||||
} else if participant.IsAdmin {
|
} else if participant.IsAdmin {
|
||||||
expectedLevel = 50
|
expectedLevel = 50
|
||||||
}
|
}
|
||||||
if level != expectedLevel {
|
changed = levels.EnsureUserLevel(puppet.MXID, expectedLevel) || changed
|
||||||
levels.SetUserLevel(puppet.MXID, expectedLevel)
|
|
||||||
changed = true
|
if participant.JID == portal.user.JID() {
|
||||||
|
changed = levels.EnsureUserLevel(portal.user.ID, expectedLevel) || changed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if changed {
|
if changed {
|
||||||
|
@ -278,6 +279,10 @@ func (portal *Portal) ChangeAdminStatus(jids []string, setAdmin bool) {
|
||||||
for _, jid := range jids {
|
for _, jid := range jids {
|
||||||
puppet := portal.user.GetPuppetByJID(jid)
|
puppet := portal.user.GetPuppetByJID(jid)
|
||||||
changed = levels.EnsureUserLevel(puppet.MXID, newLevel) || changed
|
changed = levels.EnsureUserLevel(puppet.MXID, newLevel) || changed
|
||||||
|
|
||||||
|
if jid == portal.user.JID() {
|
||||||
|
changed = levels.EnsureUserLevel(portal.user.ID, newLevel) || changed
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if changed {
|
if changed {
|
||||||
portal.MainIntent().SetPowerLevels(portal.MXID, levels)
|
portal.MainIntent().SetPowerLevels(portal.MXID, levels)
|
||||||
|
|
|
@ -118,6 +118,9 @@ func (cud *ChatUpdateData) UnmarshalJSON(data []byte) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cud.NameChange.SetBy = strings.Replace(cud.NameChange.SetBy, OldUserSuffix, NewUserSuffix, 1)
|
cud.NameChange.SetBy = strings.Replace(cud.NameChange.SetBy, OldUserSuffix, NewUserSuffix, 1)
|
||||||
|
for index, jid := range cud.PermissionChange.JIDs {
|
||||||
|
cud.PermissionChange.JIDs[index] = strings.Replace(jid, OldUserSuffix, NewUserSuffix, 1)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue