diff options
author | George Hazan <george.hazan@gmail.com> | 2024-01-15 12:53:52 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2024-01-15 12:53:52 +0300 |
commit | 17944741957b032d6ab360d78ab4fc26a0467706 (patch) | |
tree | 9744d465c83e56cfab8439f3e414ed89b108794b /protocols/Discord/src/options.cpp | |
parent | ad952090c27086537f8c407a228e8d609a22b0fc (diff) |
fixes #4120 (Discord: второй фактор запрашивается при каждом выходе в онлайн)
Diffstat (limited to 'protocols/Discord/src/options.cpp')
-rw-r--r-- | protocols/Discord/src/options.cpp | 16 |
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();
|