Fix wrong value of status.can_be_edited.

This commit is contained in:
levlam 2022-07-18 21:14:04 +03:00
parent 8673d30109
commit 903236bf78
2 changed files with 10 additions and 0 deletions

View File

@ -14297,6 +14297,12 @@ void ContactsManager::on_update_channel_participant(ChannelId channel_id, UserId
<< new_dialog_participant;
return;
}
if (new_dialog_participant.status_.is_administrator() && user_id == get_my_id() &&
!new_dialog_participant.status_.can_be_edited()) {
LOG(ERROR) << "Fix wrong can_be_edited in " << new_dialog_participant << " from " << channel_id << " changed from "
<< old_dialog_participant;
new_dialog_participant.status_.toggle_can_be_edited();
}
if (old_dialog_participant.dialog_id_ == DialogId(get_my_id()) && old_dialog_participant.status_.is_administrator() &&
!new_dialog_participant.status_.is_administrator()) {

View File

@ -360,6 +360,10 @@ class DialogParticipantStatus {
return (flags_ & CAN_BE_EDITED) != 0;
}
void toggle_can_be_edited() {
flags_ ^= CAN_BE_EDITED;
}
bool can_send_messages() const {
return get_restricted_rights().can_send_messages();
}