AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
AccessRoleAndRight.h
gehe zur Dokumentation dieser Datei
1 
12 #pragma once
13 
14 #include "EnumHelper.h"
15 
16 #include <functional>
17 #include <QCoreApplication>
18 #include <QList>
19 #include <QString>
20 
21 
22 namespace governikus
23 {
24 
25 
26 defineTypedEnumType(AccessRight, uint,
27  WRITE_DG17 = 37,
28  WRITE_DG18 = 36,
29  WRITE_DG19 = 35,
30  WRITE_DG20 = 34,
31  WRITE_DG21 = 33,
32  RFU_32 = 32, /* Reserved for Future Use */
33  RFU_31 = 31, /* Reserved for Future Use */
34  RFU_30 = 30, /* Reserved for Future Use */
35  RFU_29 = 29, /* Reserved for Future Use */
36  READ_DG21 = 28,
37  READ_DG20 = 27,
38  READ_DG19 = 26,
39  READ_DG18 = 25,
40  READ_DG17 = 24,
41  READ_DG16 = 23,
42  READ_DG15 = 22,
43  READ_DG14 = 21,
44  READ_DG13 = 20,
45  READ_DG12 = 19,
46  READ_DG11 = 18,
47  READ_DG10 = 17,
48  READ_DG09 = 16,
49  READ_DG08 = 15,
50  READ_DG07 = 14,
51  READ_DG06 = 13,
52  READ_DG05 = 12,
53  READ_DG04 = 11,
54  READ_DG03 = 10,
55  READ_DG02 = 9,
56  READ_DG01 = 8,
57 
58  INSTALL_QUAL_CERT = 7,
59  INSTALL_CERT = 6,
60  PIN_MANAGEMENT = 5,
61  CAN_ALLOWED = 4,
62  PRIVILEGED_TERMINAL = 3,
63  RESTRICTED_IDENTIFICATION = 2,
64  COMMUNITY_ID_VERIFICATION = 1,
65  AGE_VERIFICATION = 0
66  )
67 
68 // do NOT change any key/value as this is used as an unique identifier!
69 #define TYPE(x) static_cast<std::underlying_type<AccessRight>::type>(x)
70 defineTypedEnumType(AccessRightNames, std::underlying_type<AccessRight>::type,
71  ResidencePermitII = TYPE(AccessRight::READ_DG20),
72  ResidencePermitI = TYPE(AccessRight::READ_DG19),
73  CommunityID = TYPE(AccessRight::READ_DG18),
74  Address = TYPE(AccessRight::READ_DG17),
75  BirthName = TYPE(AccessRight::READ_DG13),
76  Nationality = TYPE(AccessRight::READ_DG10),
77  PlaceOfBirth = TYPE(AccessRight::READ_DG09),
78  DateOfBirth = TYPE(AccessRight::READ_DG08),
79  DoctoralDegree = TYPE(AccessRight::READ_DG07),
80  ArtisticName = TYPE(AccessRight::READ_DG06),
81  FamilyName = TYPE(AccessRight::READ_DG05),
82  GivenNames = TYPE(AccessRight::READ_DG04),
83  ValidUntil = TYPE(AccessRight::READ_DG03),
84  IssuingCountry = TYPE(AccessRight::READ_DG02),
85  DocumentType = TYPE(AccessRight::READ_DG01),
86  Pseudonym = TYPE(AccessRight::RESTRICTED_IDENTIFICATION),
87  AddressVerification = TYPE(AccessRight::COMMUNITY_ID_VERIFICATION),
88  AgeVerification = TYPE(AccessRight::AGE_VERIFICATION)
89  )
90 #undef TYPE
91 
92 inline uint qHash(governikus::AccessRight pAccessRight)
93 {
94  return static_cast<uint>(pAccessRight);
95 }
96 
97 
98 defineEnumType(AccessRole,
99  CVCA = 3, DV_od = 2, DV_no_f = 1, AT = 0, UNKNOWN = -1
100  )
101 
102 
103 class AccessRoleAndRightsUtil
104 {
105  Q_DECLARE_TR_FUNCTIONS(governikus::AccessRoleAndRightsUtil)
106 
107  private:
108  static QList<AccessRight> mAllRights;
109  static QList<AccessRight> mAllDisplayedOrderedRights;
110  AccessRoleAndRightsUtil() = delete;
111 
112  public:
113  static const QList<AccessRight>& allDisplayedOrderedRights();
114  static const QList<AccessRight>& allRights();
115  static QString toDisplayText(AccessRight pRight);
116  static QLatin1String toTechnicalName(AccessRight pRight);
117  static bool fromTechnicalName(const char* pStr, const std::function<void(AccessRight)>& pFunc);
118 };
119 
120 }
121 
122 Q_DECLARE_TYPEINFO(governikus::AccessRight, Q_PRIMITIVE_TYPE);
PlaceOfBirth
Definition: AccessRoleAndRight.h:77
ASN1_OCTET_STRING CommunityID
Definition: AuthenticatedAuxiliaryData.cpp:22
FamilyName
Definition: AccessRoleAndRight.h:81
DoctoralDegree
Definition: AccessRoleAndRight.h:79
ArtisticName
Definition: AccessRoleAndRight.h:80
Nationality
Definition: AccessRoleAndRight.h:76
UNKNOWN
Definition: SelfAuthenticationData.h:32
DateOfBirth
Definition: AccessRoleAndRight.h:78
IssuingCountry
Definition: AccessRoleAndRight.h:84
AddressVerification
Definition: AccessRoleAndRight.h:87
Pseudonym
Definition: AccessRoleAndRight.h:86
DocumentType
Definition: AccessRoleAndRight.h:85
ValidUntil
Definition: AccessRoleAndRight.h:83
ResidencePermitII
Definition: AccessRoleAndRight.h:71
AgeVerification
Definition: AccessRoleAndRight.h:88
BirthName
Definition: AccessRoleAndRight.h:75
Q_DECLARE_TYPEINFO(governikus::AccessRight, Q_PRIMITIVE_TYPE)
uint qHash(const ReaderConfigurationInfo &info)
Definition: ReaderConfigurationInfo.h:91
defineEnumType(UiModule, CURRENT, DEFAULT, IDENTIFY, SETTINGS, PINMANAGEMENT) defineEnumType(StatusFormat
UI modules that can be requested to show.
#define TYPE(x)
Address
Definition: AccessRoleAndRight.h:74
ResidencePermitI
Definition: AccessRoleAndRight.h:72
GivenNames
Definition: AccessRoleAndRight.h:82
defineTypedEnumType(StatusCode, quint16, EMPTY=0x0000, INVALID=0x0001, SUCCESS=0x9000, NO_PKCS15_APP=0x6200, END_OF_FILE=0x6282, PIN_DEACTIVATED=0x6283, FCI_NO_ISO7816_4=0x6284, VERIFICATION_FAILED=0x6300, INPUT_TIMEOUT=0x6400, INPUT_CANCELLED=0x6401, PASSWORDS_DIFFER=0x6402, PASSWORD_OUTOF_RANGE=0x6403, CARD_EJECTED_AND_REINSERTED=0x64a2, EEPROM_CELL_DEFECT=0x6581, SECURITY_ENVIRONMENT=0x6600, WRONG_LENGTH=0x6700, NO_BINARY_FILE=0x6981, ACCESS_DENIED=0x6982, PASSWORD_COUNTER_EXPIRED=0x6983, DIRECTORY_OR_PASSWORD_LOCKED_OR_NOT_ALLOWED=0x6984, NO_PARENT_FILE=0x6985, NOT_YET_INITIALIZED=0x6985, NO_CURRENT_DIRECTORY_SELECTED=0x6986, DATAFIELD_EXPECTED=0x6987, INVALID_SM_OBJECTS=0x6988, COMMAND_NOT_ALLOWED=0x69f0, INVALID_DATAFIELD=0x6a80, ALGORITHM_ID=0x6a81, FILE_NOT_FOUND=0x6a82, RECORD_NOT_FOUND=0x6a83, INVALID_PARAMETER=0x6a86, LC_INCONSISTANT=0x6a87, PASSWORD_NOT_FOUND=0x6a88, ILLEGAL_OFFSET=0x6b00, UNSUPPORTED_CLA=0x6e00, CANT_DISPLAY=0x6410, INVALID_P1P2=0x6a00, UNSUPPORTED_INS=0x6d00, PIN_BLOCKED=0x63c0, PIN_SUSPENDED=0x63c1, PIN_RETRY_COUNT_2=0x63c2,) defineEnumType(SW1