AusweisApp2
SelfAuthenticationData.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "EnumHelper.h"
10 
11 #include <functional>
12 
13 #include <QCoreApplication>
14 #include <QDateTime>
15 #include <QJsonObject>
16 #include <QJsonValue>
17 #include <QMap>
18 #include <QPair>
19 #include <QSharedData>
20 #include <QString>
21 #include <QVector>
22 
23 namespace governikus
24 {
25 
26 defineEnumType(SelfAuthDataPermission,
27  UNKNOWN /* used for parser only */,
28  ALLOWED,
29  PROHIBITED,
30  NOTONCHIP)
31 
32 defineEnumType(SelfAuthData,
33  UNKNOWN, /* used for parser only */
37  GivenNames,
41  BirthName,
50  /* additional fields */
55  PlaceOfResidenceNoPlaceInfo)
56 
57 
59 {
60  public:
61  using OrderedSelfData = QVector<QPair<QString, QString>>;
62 
63  private:
64  class SelfData
65  : public QSharedData
66  {
67  Q_DECLARE_TR_FUNCTIONS(governikus::SelfData)
68 
69  private:
70  bool parse(const QByteArray& pData);
71  bool parseOperationsAllowedByUser(const QJsonObject& pObject);
72  bool parsePersonalData(const QJsonObject& pObject);
73  void parseStructuredPlace(const QJsonObject& pObjectm, SelfAuthDataPermission pPermission);
74  bool tryToInsertChild(const QJsonValue& pValue, SelfAuthData pAuthData);
75  void add(OrderedSelfData& pSelfData, const QString& pGroupName, const QString& pGroupValue) const;
76  void addAddress(OrderedSelfData& pSelfData) const;
77  static QString formatDate(const QString& pDate);
78 
79  public:
80  bool mValid;
81  const QDateTime mDateTime;
82  QMap<SelfAuthData, SelfAuthDataPermission> mOperationsAllowed;
83  QMap<SelfAuthData, QString> mSelfAuthData;
84 
85  explicit SelfData(const QByteArray& pData);
86  QString getValue(SelfAuthData pData) const;
87  OrderedSelfData getOrderedSelfInfo() const;
88  };
89 
90  QSharedDataPointer<SelfData> d;
91 
92  public:
93  explicit SelfAuthenticationData(const QByteArray& pData = QByteArray());
95 
99  [[nodiscard]] bool isValid() const;
100  [[nodiscard]] QString getValue(SelfAuthData pData) const;
101  [[nodiscard]] const QDateTime& getDateTime() const;
102  [[nodiscard]] OrderedSelfData getOrderedSelfData() const;
103 };
104 
105 } // namespace governikus
Definition: SelfAuthenticationData.h:59
QVector< QPair< QString, QString > > OrderedSelfData
Definition: SelfAuthenticationData.h:61
A simple template renderer.
Definition: ActivationContext.h:15
UNKNOWN
Definition: ResponseApdu.h:63
DateOfExpiry
Definition: SelfAuthenticationData.h:36
RestrictedID
Definition: SelfAuthenticationData.h:47
BirthName
Definition: AccessRoleAndRight.h:75
GivenNames
Definition: AccessRoleAndRight.h:82
IssuingState
Definition: SelfAuthenticationData.h:35
PlaceOfResidenceCity
Definition: SelfAuthenticationData.h:52
PlaceOfResidence
Definition: SelfAuthenticationData.h:44
PlaceOfResidenceCountry
Definition: SelfAuthenticationData.h:53
PlaceOfResidenceStreet
Definition: SelfAuthenticationData.h:51
DateOfBirth
Definition: AccessRoleAndRight.h:78
defineEnumType(ActivationType, UNKNOWN, SHOWUI, STATUS, TCTOKENURL) defineEnumType(StatusFormat
Format types for status responses.
FamilyNames
Definition: SelfAuthenticationData.h:38
ResidencePermitI
Definition: AccessRoleAndRight.h:72
AcademicTitle
Definition: SelfAuthenticationData.h:40
Nationality
Definition: AccessRoleAndRight.h:76
PlaceOfResidenceZipCode
Definition: SelfAuthenticationData.h:54
PlaceVerification
Definition: SelfAuthenticationData.h:49
DocumentType
Definition: AccessRoleAndRight.h:85
ArtisticName
Definition: AccessRoleAndRight.h:80
AgeVerification
Definition: AccessRoleAndRight.h:89
PlaceOfBirth
Definition: AccessRoleAndRight.h:77