AusweisApp2
WorkflowContext.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "CardConnection.h"
10#include "ECardApiResult.h"
11#include "GlobalStatus.h"
12#include "ReaderInfo.h"
14
15#include <QElapsedTimer>
16#include <QSharedPointer>
17#include <QString>
18
19namespace governikus
20{
21defineEnumType(Action,
22 AUTH,
23 SELF,
24 PIN,
26 REMOTE_SERVICE)
27
28class WorkflowContext
29 : public QObject
30{
31 Q_OBJECT
32
33 private:
34 const Action mAction;
35 bool mStateApproved;
36 bool mWorkflowKilled;
37 QString mCurrentState;
38 QVector<ReaderManagerPlugInType> mReaderPlugInTypes;
39 QString mReaderName;
40 QSharedPointer<CardConnection> mCardConnection;
41 int mCardVanishedDuringPacePinCount;
42 QElapsedTimer mCardVanishedDuringPacePinTimer;
43 QString mCan;
44 QString mPin;
45 QString mPuk;
46 PacePasswordId mEstablishPaceChannelType;
47 QScopedPointer<EstablishPaceChannelOutput> mPaceOutputData;
48 ReaderInfo mExpectedReader;
49 CardReturnCode mLastPaceResult;
50 GlobalStatus mStatus;
51 ECardApiResult mStartPaosResult;
52 bool mErrorReportedToUser;
53 bool mPaceResultReportedToUser;
54 bool mWorkflowFinished;
55 bool mWorkflowCancelled;
56 bool mWorkflowCancelledInState;
57 bool mNextWorkflowPending;
58 bool mCurrentReaderHasEidCardButInsufficientApduLength;
59 bool mSkipStartScan;
60 int mProgressValue;
61 QString mProgressMessage;
62 bool mShowRemoveCardFeedback;
63 QString mClaimedBy;
64
65 private Q_SLOTS:
66 void onWorkflowCancelled();
67
68 Q_SIGNALS:
69 void fireStateApprovedChanged(bool pApproved);
70 void fireStateChanged(const QString& pNewState);
71 void fireReaderPlugInTypesChanged();
72 void fireReaderInfoChanged();
73 void fireReaderNameChanged();
74 void fireCardConnectionChanged();
75 void fireIsSmartCardAllowedChanged();
76 void fireCanChanged();
77 void firePinChanged();
78 void firePukChanged();
79 void firePaceResultUpdated();
80 void fireResultChanged();
81 void fireCanAllowedModeChanged();
82 void firePasswordTypeChanged();
83 void fireProgressChanged();
84 void fireRemoveCardFeedbackChanged();
85
86 void fireCancelWorkflow();
87
88 void fireNextWorkflowPending();
89
90 public:
91 explicit WorkflowContext(const Action mAction);
92 ~WorkflowContext() override;
93
94 [[nodiscard]] Action getAction() const
95 {
96 return mAction;
97 }
98
99
100 [[nodiscard]] bool wasClaimed() const;
101 void claim(const QObject* pClaimant);
102
103 [[nodiscard]] bool isErrorReportedToUser() const;
104 void setErrorReportedToUser(bool pErrorReportedToUser = true);
105
106 [[nodiscard]] bool isPaceResultReportedToUser() const;
107 void setPaceResultReportedToUser(bool pReported = true);
108
109 void setStateApproved(bool pApproved = true);
110 [[nodiscard]] bool isStateApproved() const;
111
113 [[nodiscard]] bool isWorkflowKilled() const;
114
115 [[nodiscard]] const QString& getCurrentState() const;
116 void setCurrentState(const QString& pNewState);
117
118 [[nodiscard]] bool isSmartCardUsed() const;
119
120 [[nodiscard]] const QVector<ReaderManagerPlugInType>& getReaderPlugInTypes() const;
121 void setReaderPlugInTypes(const QVector<ReaderManagerPlugInType>& pReaderPlugInTypes);
122
123 [[nodiscard]] const QString& getReaderName() const;
124 void setReaderName(const QString& pReaderName);
125
126 [[nodiscard]] const QSharedPointer<CardConnection>& getCardConnection() const;
127 void setCardConnection(const QSharedPointer<CardConnection>& pCardConnection);
128 void resetCardConnection();
129
130 [[nodiscard]] bool isNpaRepositioningRequired() const;
131 void setNpaPositionVerified();
132 void handleWrongNpaPosition();
133
134 [[nodiscard]] virtual bool isRequestTransportPin() const;
135
136 [[nodiscard]] const QString& getPuk() const;
137 void setPuk(const QString& pPuk);
138
139 [[nodiscard]] const QString& getCan() const;
140 void setCan(const QString& pCan);
141
142 [[nodiscard]] const QString& getPin() const;
143 void setPin(const QString& pPin);
144
145 [[nodiscard]] PacePasswordId getEstablishPaceChannelType() const;
146 void setEstablishPaceChannelType(PacePasswordId pType);
147
148 virtual void resetPacePasswords();
149
150 [[nodiscard]] EstablishPaceChannelOutput* getPaceOutputData() const;
151 void setPaceOutputData(const EstablishPaceChannelOutput& pPaceOutputData);
152
153 bool isPinBlocked();
154 [[nodiscard]] CardReturnCode getLastPaceResult() const;
155 void setLastPaceResult(CardReturnCode pLastPaceResult);
156 void resetLastPaceResult();
157
158 void rememberReader();
159 [[nodiscard]] bool remembersReader() const;
160 [[nodiscard]] bool isExpectedReader() const;
161 [[nodiscard]] const ReaderInfo& getExpectedReader() const;
162
163 [[nodiscard]] int getExpectedRetryCounter() const;
164 void setExpectedRetryCounter(int pExpectedRetryCounter);
165
166 [[nodiscard]] const GlobalStatus& getStatus() const;
167 void setStatus(const GlobalStatus& pResult);
168
169 [[nodiscard]] const ECardApiResult& getStartPaosResult() const;
170 void setStartPaosResult(const ECardApiResult& pStartPaosResult);
171
172 [[nodiscard]] bool isWorkflowFinished() const;
173 void setWorkflowFinished(bool pWorkflowFinished);
174
175 [[nodiscard]] bool isWorkflowCancelled() const;
176 [[nodiscard]] bool isWorkflowCancelledInState() const;
177 void setWorkflowCancelledInState();
178
179 [[nodiscard]] virtual bool isCanAllowedMode() const;
180
181 [[nodiscard]] bool hasNextWorkflowPending() const;
182 void setNextWorkflowPending(bool pNextWorkflowPending);
183
184 [[nodiscard]] bool currentReaderHasEidCardButInsufficientApduLength() const;
185 void setCurrentReaderHasEidCardButInsufficientApduLength(bool pState);
186
187 [[nodiscard]] bool skipStartScan() const;
188 void setSkipStartScan(bool pState);
189
190 [[nodiscard]] int getProgressValue() const
191 {
192 return mProgressValue;
193 }
194
195
196 [[nodiscard]] const QString& getProgressMessage() const
197 {
198 return mProgressMessage;
199 }
200
201
202 void setProgress(int pValue, const QString& pMessage);
203
204 [[nodiscard]] bool showRemoveCardFeedback() const
205 {
206 return mShowRemoveCardFeedback;
207 }
208
209
210 void setRemoveCardFeedback(bool pEnabled);
211
212 [[nodiscard]] virtual QVector<AcceptedEidType> getAcceptedEidTypes() const = 0;
213
214 bool isPhysicalCardRequired() const;
215};
216
217} // namespace governikus
Code
Definition: GlobalStatus.h:26
A simple template renderer.
Definition: ActivationContext.h:15
PERSONALIZATION
Definition: MsgTypes.h:31
AUTH
Definition: MsgTypes.h:30
defineEnumType(ActivationType, UNKNOWN, SHOWUI, STATUS, TCTOKENURL) defineEnumType(StatusFormat
Format types for status responses.