File: outlookpasswordrequester.h

package info (click to toggle)
kdepim-runtime 4%3A24.12.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 24,012 kB
  • sloc: cpp: 90,562; xml: 1,020; javascript: 60; sh: 58; makefile: 13
file content (36 lines) | stat: -rw-r--r-- 952 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
    SPDX-FileCopyrightText: 2024 Daniel Vrátil <dvratil@kde.org>

    SPDX-License-Identifier: LGPL-2.0-or-later
*/

#pragma once

#include "passwordrequesterinterface.h"

namespace MailTransport
{
class OutlookOAuthTokenRequester;
class TokenResult;
}

class ImapResourceBase;

class OutlookPasswordRequester : public XOAuthPasswordRequester
{
    Q_OBJECT
public:
    explicit OutlookPasswordRequester(ImapResourceBase *resource, QObject *parent = nullptr);
    ~OutlookPasswordRequester() override;

    void requestPassword(RequestType request, const QString &serverError) override;
    void cancelPasswordRequests() override;

private:
    void onTokenRequestFinished(const MailTransport::TokenResult &result);
    void storeResultToWallet(const MailTransport::TokenResult &result);

    ImapResourceBase *const mResource;
    std::unique_ptr<MailTransport::OutlookOAuthTokenRequester> mTokenRequester;
    bool mRequestInProgress = false;
};