summaryrefslogtreecommitdiff
path: root/protocols/Discord/src/options.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-01-15 12:53:52 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-01-15 12:53:52 +0300
commit17944741957b032d6ab360d78ab4fc26a0467706 (patch)
tree9744d465c83e56cfab8439f3e414ed89b108794b /protocols/Discord/src/options.cpp
parentad952090c27086537f8c407a228e8d609a22b0fc (diff)
fixes #4120 (Discord: второй фактор запрашивается при каждом выходе в онлайн)
Diffstat (limited to 'protocols/Discord/src/options.cpp')
-rw-r--r--protocols/Discord/src/options.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/protocols/Discord/src/options.cpp b/protocols/Discord/src/options.cpp
index dc4a6d60b5..11c73c64d0 100644
--- a/protocols/Discord/src/options.cpp
+++ b/protocols/Discord/src/options.cpp
@@ -21,13 +21,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
class CDiscardAccountOptions : public CDiscordDlgBase
{
- CCtrlCheck chkUseChats, chkHideChats, chkUseGroups, chkDeleteMsgs;
- CCtrlEdit m_edGroup, m_edUserName, m_edPassword;
ptrW m_wszOldGroup;
+ CCtrlEdit m_edGroup, m_edUserName, m_edPassword;
+ CCtrlCheck chkUseChats, chkHideChats, chkUseGroups, chkDeleteMsgs;
+ CCtrlButton btnLogout;
public:
CDiscardAccountOptions(CDiscordProto *ppro, int iDlgID, bool bFullDlg) :
CDiscordDlgBase(ppro, iDlgID),
+ btnLogout(this, IDC_LOGOUT),
m_edGroup(this, IDC_GROUP),
m_edUserName(this, IDC_USERNAME),
m_edPassword(this, IDC_PASSWORD),
@@ -37,6 +39,8 @@ public:
chkDeleteMsgs(this, IDC_DELETE_MSGS),
m_wszOldGroup(mir_wstrdup(ppro->m_wszDefaultGroup))
{
+ btnLogout.OnClick = Callback(this, &CDiscardAccountOptions::onClick_Logout);
+
CreateLink(m_edGroup, ppro->m_wszDefaultGroup);
CreateLink(m_edUserName, ppro->m_wszEmail);
if (bFullDlg) {
@@ -51,6 +55,9 @@ public:
bool OnInitDialog() override
{
+ if (m_proto->getMStringA(DB_KEY_TOKEN).IsEmpty())
+ btnLogout.Disable();
+
ptrW buf(m_proto->getWStringA(DB_KEY_PASSWORD));
if (buf)
m_edPassword.SetText(buf);
@@ -67,6 +74,11 @@ public:
return true;
}
+ void onClick_Logout(CCtrlButton *)
+ {
+ m_proto->Push(new AsyncHttpRequest(m_proto, REQUEST_POST, "/auth/logout", &CDiscordProto::OnReceiveLogout));
+ }
+
void onChange_GroupChats(CCtrlCheck*)
{
bool bEnabled = chkUseChats.GetState();