Replace get_administrator_rights with AdministratorRights constructor.
This commit is contained in:
parent
665c1adc75
commit
4a50db52d8
@ -10505,8 +10505,8 @@ void ContactsManager::on_get_user_full(tl_object_ptr<telegram_api::userFull> &&u
|
||||
bool can_be_called = user->phone_calls_available_ && !user->phone_calls_private_;
|
||||
bool supports_video_calls = user->video_calls_available_ && !user->phone_calls_private_;
|
||||
bool has_private_calls = user->phone_calls_private_;
|
||||
auto group_administrator_rights = get_administrator_rights(std::move(user->bot_group_admin_rights_));
|
||||
auto broadcast_administrator_rights = get_administrator_rights(std::move(user->bot_broadcast_admin_rights_));
|
||||
AdministratorRights group_administrator_rights(user->bot_group_admin_rights_);
|
||||
AdministratorRights broadcast_administrator_rights(user->bot_broadcast_admin_rights_);
|
||||
if (user_full->can_be_called != can_be_called || user_full->supports_video_calls != supports_video_calls ||
|
||||
user_full->has_private_calls != has_private_calls ||
|
||||
user_full->private_forward_name != user->private_forward_name_ ||
|
||||
|
@ -18,18 +18,29 @@
|
||||
|
||||
namespace td {
|
||||
|
||||
AdministratorRights::AdministratorRights(
|
||||
const td_api::object_ptr<td_api::chatAdministratorRights> &administrator_rights) {
|
||||
if (administrator_rights == nullptr) {
|
||||
AdministratorRights::AdministratorRights(const tl_object_ptr<telegram_api::chatAdminRights> &rights) {
|
||||
if (rights == nullptr) {
|
||||
flags_ = 0;
|
||||
return;
|
||||
}
|
||||
*this = AdministratorRights(administrator_rights->is_anonymous_, administrator_rights->can_manage_chat_,
|
||||
administrator_rights->can_change_info_, administrator_rights->can_post_messages_,
|
||||
administrator_rights->can_edit_messages_, administrator_rights->can_delete_messages_,
|
||||
administrator_rights->can_invite_users_, administrator_rights->can_restrict_members_,
|
||||
administrator_rights->can_pin_messages_, administrator_rights->can_promote_members_,
|
||||
administrator_rights->can_manage_video_chats_);
|
||||
|
||||
if (!rights->other_) {
|
||||
LOG(ERROR) << "Receive wrong other flag in " << to_string(rights);
|
||||
}
|
||||
*this = AdministratorRights(rights->anonymous_, rights->other_, rights->change_info_, rights->post_messages_,
|
||||
rights->edit_messages_, rights->delete_messages_, rights->invite_users_,
|
||||
rights->ban_users_, rights->pin_messages_, rights->add_admins_, rights->manage_call_);
|
||||
}
|
||||
|
||||
AdministratorRights::AdministratorRights(const td_api::object_ptr<td_api::chatAdministratorRights> &rights) {
|
||||
if (rights == nullptr) {
|
||||
flags_ = 0;
|
||||
return;
|
||||
}
|
||||
*this = AdministratorRights(rights->is_anonymous_, rights->can_manage_chat_, rights->can_change_info_,
|
||||
rights->can_post_messages_, rights->can_edit_messages_, rights->can_delete_messages_,
|
||||
rights->can_invite_users_, rights->can_restrict_members_, rights->can_pin_messages_,
|
||||
rights->can_promote_members_, rights->can_manage_video_chats_);
|
||||
}
|
||||
|
||||
AdministratorRights::AdministratorRights(bool is_anonymous, bool can_manage_dialog, bool can_change_info,
|
||||
@ -341,8 +352,7 @@ DialogParticipantStatus::DialogParticipantStatus(bool can_be_edited,
|
||||
tl_object_ptr<telegram_api::chatAdminRights> &&admin_rights,
|
||||
string rank) {
|
||||
CHECK(admin_rights != nullptr);
|
||||
uint32 flags =
|
||||
::td::get_administrator_rights(std::move(admin_rights)).flags_ | AdministratorRights::CAN_MANAGE_DIALOG;
|
||||
uint32 flags = AdministratorRights(std::move(admin_rights)).flags_ | AdministratorRights::CAN_MANAGE_DIALOG;
|
||||
if (can_be_edited) {
|
||||
flags |= CAN_BE_EDITED;
|
||||
}
|
||||
@ -534,8 +544,8 @@ DialogParticipantStatus get_dialog_participant_status(const tl_object_ptr<td_api
|
||||
if (!clean_input_string(custom_title)) {
|
||||
custom_title.clear();
|
||||
}
|
||||
return DialogParticipantStatus::Administrator(::td::get_administrator_rights(st->rights_),
|
||||
std::move(custom_title), true /*st->can_be_edited_*/);
|
||||
return DialogParticipantStatus::Administrator(AdministratorRights(st->rights_), std::move(custom_title),
|
||||
true /*st->can_be_edited_*/);
|
||||
}
|
||||
case td_api::chatMemberStatusMember::ID:
|
||||
return DialogParticipantStatus::Member();
|
||||
@ -556,30 +566,6 @@ DialogParticipantStatus get_dialog_participant_status(const tl_object_ptr<td_api
|
||||
}
|
||||
}
|
||||
|
||||
AdministratorRights get_administrator_rights(tl_object_ptr<telegram_api::chatAdminRights> &&admin_rights) {
|
||||
if (admin_rights == nullptr) {
|
||||
return AdministratorRights();
|
||||
}
|
||||
|
||||
if (!admin_rights->other_) {
|
||||
LOG(ERROR) << "Receive wrong other flag in " << to_string(admin_rights);
|
||||
}
|
||||
return AdministratorRights(admin_rights->anonymous_, admin_rights->other_, admin_rights->change_info_,
|
||||
admin_rights->post_messages_, admin_rights->edit_messages_, admin_rights->delete_messages_,
|
||||
admin_rights->invite_users_, admin_rights->ban_users_, admin_rights->pin_messages_,
|
||||
admin_rights->add_admins_, admin_rights->manage_call_);
|
||||
}
|
||||
|
||||
AdministratorRights get_administrator_rights(const td_api::object_ptr<td_api::chatAdministratorRights> &rights) {
|
||||
if (rights == nullptr) {
|
||||
return AdministratorRights();
|
||||
}
|
||||
return AdministratorRights(rights->is_anonymous_, rights->can_manage_chat_, rights->can_change_info_,
|
||||
rights->can_post_messages_, rights->can_edit_messages_, rights->can_delete_messages_,
|
||||
rights->can_invite_users_, rights->can_restrict_members_, rights->can_pin_messages_,
|
||||
rights->can_promote_members_, rights->can_manage_video_chats_);
|
||||
}
|
||||
|
||||
RestrictedRights get_restricted_rights(tl_object_ptr<telegram_api::chatBannedRights> &&banned_rights) {
|
||||
if (banned_rights == nullptr) {
|
||||
return RestrictedRights(false, false, false, false, false, false, false, false, false, false, false);
|
||||
|
@ -50,6 +50,8 @@ class AdministratorRights {
|
||||
AdministratorRights() : flags_(0) {
|
||||
}
|
||||
|
||||
explicit AdministratorRights(const tl_object_ptr<telegram_api::chatAdminRights> &admin_rights);
|
||||
|
||||
explicit AdministratorRights(const td_api::object_ptr<td_api::chatAdministratorRights> &administrator_rights);
|
||||
|
||||
AdministratorRights(bool is_anonymous, bool can_manage_dialog, bool can_change_info, bool can_post_messages,
|
||||
@ -548,10 +550,6 @@ struct DialogParticipants {
|
||||
|
||||
DialogParticipantStatus get_dialog_participant_status(const tl_object_ptr<td_api::ChatMemberStatus> &status);
|
||||
|
||||
AdministratorRights get_administrator_rights(tl_object_ptr<telegram_api::chatAdminRights> &&admin_rights);
|
||||
|
||||
AdministratorRights get_administrator_rights(const td_api::object_ptr<td_api::chatAdministratorRights> &rights);
|
||||
|
||||
RestrictedRights get_restricted_rights(tl_object_ptr<telegram_api::chatBannedRights> &&banned_rights);
|
||||
|
||||
RestrictedRights get_restricted_rights(const td_api::object_ptr<td_api::chatPermissions> &permissions);
|
||||
|
Loading…
x
Reference in New Issue
Block a user