Allow editing my rank / other ranks.

This commit is contained in:
John Preston
2026-02-10 17:38:11 +04:00
parent 7969795a01
commit aa94491ad7
17 changed files with 437 additions and 116 deletions
@@ -405,7 +405,6 @@ private:
std::optional<bool> signatures;
std::optional<bool> signatureProfiles;
std::optional<bool> noForwards;
std::optional<bool> customRanks;
std::optional<bool> joinToWrite;
std::optional<bool> requestToJoin;
std::optional<ChannelData*> discussionLink;
@@ -466,7 +465,6 @@ private:
[[nodiscard]] bool validateAutotranslate(Saving &to) const;
[[nodiscard]] bool validateSignatures(Saving &to) const;
[[nodiscard]] bool validateForwards(Saving &to) const;
[[nodiscard]] bool validateCustomRanks(Saving &to) const;
[[nodiscard]] bool validateJoinToWrite(Saving &to) const;
[[nodiscard]] bool validateRequestToJoin(Saving &to) const;
@@ -482,7 +480,6 @@ private:
void saveAutotranslate();
void saveSignatures();
void saveForwards();
void saveCustomRanks();
void saveJoinToWrite();
void saveRequestToJoin();
void savePhoto();
@@ -1002,11 +999,6 @@ void Controller::fillPrivacyTypeButton() {
? _peer->asChannel()->usernames()
: std::vector<QString>()),
.noForwards = !_peer->allowsForwarding(),
.customRanks = (_peer->isChat()
? _peer->asChat()->customRanksEnabled()
: _peer->isChannel()
? _peer->asChannel()->customRanksEnabled()
: false),
.joinToWrite = (_peer->isMegagroup()
&& _peer->asChannel()->joinToWrite()),
.requestToJoin = (_peer->isMegagroup()
@@ -2104,7 +2096,6 @@ std::optional<Controller::Saving> Controller::validate() const {
&& validateAutotranslate(result)
&& validateSignatures(result)
&& validateForwards(result)
&& validateCustomRanks(result)
&& validateJoinToWrite(result)
&& validateRequestToJoin(result)) {
return result;
@@ -2227,14 +2218,6 @@ bool Controller::validateForwards(Saving &to) const {
return true;
}
bool Controller::validateCustomRanks(Saving &to) const {
if (!_typeDataSavedValue) {
return true;
}
to.customRanks = _typeDataSavedValue->customRanks;
return true;
}
bool Controller::validateJoinToWrite(Saving &to) const {
if (!_typeDataSavedValue) {
return true;
@@ -2270,7 +2253,6 @@ void Controller::save() {
pushSaveStage([=] { saveAutotranslate(); });
pushSaveStage([=] { saveSignatures(); });
pushSaveStage([=] { saveForwards(); });
pushSaveStage([=] { saveCustomRanks(); });
pushSaveStage([=] { saveJoinToWrite(); });
pushSaveStage([=] { saveRequestToJoin(); });
pushSaveStage([=] { savePhoto(); });
@@ -2779,32 +2761,6 @@ void Controller::saveForwards() {
}).send();
}
void Controller::saveCustomRanks() {
const auto isEnabled = _peer->isChat()
? _peer->asChat()->customRanksEnabled()
: _peer->isChannel()
? _peer->asChannel()->customRanksEnabled()
: false;
if (!_savingData.customRanks
|| *_savingData.customRanks == isEnabled) {
return continueSave();
}
_api.request(MTPmessages_ToggleChatCustomRanks(
_peer->input(),
MTP_bool(*_savingData.customRanks)
)).done([=](const MTPUpdates &result) {
_peer->session().api().applyUpdates(result);
continueSave();
}).fail([=](const MTP::Error &error) {
if (error.type() == u"CHAT_NOT_MODIFIED"_q) {
continueSave();
} else {
_navigation->showToast(error.type());
cancelSave();
}
}).send();
}
void Controller::saveJoinToWrite() {
const auto joinToWrite = _peer->isMegagroup()
&& _peer->asChannel()->joinToWrite();