mirror of
https://dev.narayana.im/narayana/telegabber.git
synced 2026-08-05 04:07:07 +00:00
Apply restrictions on muc#admin IQs
This commit is contained in:
parent
de74787a48
commit
3b57895237
1 changed files with 25 additions and 11 deletions
|
|
@ -1194,6 +1194,11 @@ func handleGetQueryMucAdmin(s xmpp.Sender, iq *stanza.IQ, query *extensions.Quer
|
||||||
}
|
}
|
||||||
item := query.Items[0]
|
item := query.Items[0]
|
||||||
|
|
||||||
|
if item.Role != "" && item.Affiliation != "" {
|
||||||
|
iqAnswerSetError(answer, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var membersList telegram.MembersList
|
var membersList telegram.MembersList
|
||||||
switch item.Role {
|
switch item.Role {
|
||||||
case "moderator":
|
case "moderator":
|
||||||
|
|
@ -1231,12 +1236,18 @@ func handleGetQueryMucAdmin(s xmpp.Sender, iq *stanza.IQ, query *extensions.Quer
|
||||||
if item.Affiliation != "" && affiliation != item.Affiliation {
|
if item.Affiliation != "" && affiliation != item.Affiliation {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
payload.Items = append(payload.Items, &extensions.QueryMucAdminItem{
|
newItem := extensions.QueryMucAdminItem{}
|
||||||
Jid: gateway.CHATJID(senderId, true),
|
if item.Affiliation == "" || item.Affiliation != "outcast" {
|
||||||
Nick: nickname,
|
newItem.Nick = nickname
|
||||||
Role: role,
|
}
|
||||||
Affiliation: affiliation,
|
if item.Role != "" {
|
||||||
})
|
newItem.Role = role
|
||||||
|
newItem.Jid = gateway.CHATJID(senderId, true)
|
||||||
|
} else {
|
||||||
|
newItem.Affiliation = affiliation
|
||||||
|
newItem.Jid = gateway.CHATJID(senderId, false)
|
||||||
|
}
|
||||||
|
payload.Items = append(payload.Items, &newItem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1798,6 +1809,14 @@ func handleSetQueryMucAdmin(s xmpp.Sender, iq *stanza.IQ, query *extensions.Quer
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.Role != "" && item.Affiliation != "") ||
|
||||||
|
(item.Role != "" && item.Nick == "") ||
|
||||||
|
(item.Affiliation != "" && item.Jid == "") {
|
||||||
|
iqAnswerSetError(answer, 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var userID int64
|
var userID int64
|
||||||
if item.Jid != "" {
|
if item.Jid != "" {
|
||||||
userID, _, _ = toToID(item.Jid)
|
userID, _, _ = toToID(item.Jid)
|
||||||
|
|
@ -1813,11 +1832,6 @@ func handleSetQueryMucAdmin(s xmpp.Sender, iq *stanza.IQ, query *extensions.Quer
|
||||||
|
|
||||||
var status telegram.ChatMemberStatus
|
var status telegram.ChatMemberStatus
|
||||||
|
|
||||||
if item.Role != "" && item.Affiliation != "" {
|
|
||||||
iqAnswerSetError(answer, 400)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
switch item.Role {
|
switch item.Role {
|
||||||
case "none":
|
case "none":
|
||||||
status = telegram.ChatMemberStatusKicked
|
status = telegram.ChatMemberStatusKicked
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue