libzypp  17.35.11
reporthelper.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_NG_REPORTHELPER_INCLUDED
13 #define ZYPP_NG_REPORTHELPER_INCLUDED
14 
15 #include <zypp/PublicKey.h>
16 #include <zypp/KeyContext.h>
17 #include <zypp/KeyRing.h>
18 #include <zypp/Digest.h>
19 #include <zypp-core/base/Gettext.h>
22 #include <zypp/ng/context.h>
24 
25 #include <zypp/ZYppCallbacks.h>
26 
27 namespace zyppng {
28 
29  ZYPP_FWD_DECL_REFS (Context);
30 
31  namespace detail {
32  template <typename ContextRefType, typename Report>
33  class ReportHolder;
34 
35  template <typename Report>
36  class ReportHolder<ContextRef, Report>
37  {};
38 
39  template <typename Report>
40  class ReportHolder<SyncContextRef, Report>
41  {
42  public:
43  ReportHolder() : _d( std::make_shared<zypp::callback::SendReport<Report>>() ){}
44 
45  ReportHolder(const ReportHolder &) = default;
46  ReportHolder(ReportHolder &&) = default;
47  ReportHolder &operator=(const ReportHolder &) = default;
48  ReportHolder &operator=(ReportHolder &&) = default;
49 
50  auto &operator->() {
51  return *_d;
52  }
53 
54  std::shared_ptr<zypp::callback::SendReport<Report>> _d;
55  };
56  }
57 
58  template<typename ZyppContextRef>
60  public:
61  BasicReportHelper(const BasicReportHelper &) = default;
63  BasicReportHelper &operator=(const BasicReportHelper &) = default;
65 
66  const ZyppContextRef &zyppContext() {
67  return _ctx;
68  }
69 
70  static constexpr bool async () {
71  return std::is_same<ZyppContextRef, ContextRef>();
72  }
73 
74  protected:
75  BasicReportHelper( ZyppContextRef &&ctx );
76  ZyppContextRef _ctx;
77  };
78 
79  template<typename ZyppContextRef>
80  class DigestReportHelper : public BasicReportHelper<ZyppContextRef> {
81  public:
83 
84  DigestReportHelper(ZyppContextRef r)
85  : BasicReportHelper<ZyppContextRef>(std::move(r)) {}
86 
87  DigestReportHelper(const DigestReportHelper &) = default;
91 
92  bool askUserToAcceptNoDigest ( const zypp::Pathname &file );
93  bool askUserToAccepUnknownDigest ( const zypp::Pathname &file, const std::string &name );
94  bool askUserToAcceptWrongDigest ( const zypp::Pathname &file, const std::string &requested, const std::string &found );
95 
96  private:
98  };
99 
100  template<typename ZyppContextRef>
101  class KeyRingReportHelper : public BasicReportHelper<ZyppContextRef> {
102  public:
104 
105  KeyRingReportHelper(ZyppContextRef r)
106  : BasicReportHelper<ZyppContextRef>(std::move(r)) {}
107 
108  KeyRingReportHelper(const KeyRingReportHelper &) = default;
112 
113  // -- Key Ring reports -- //
114 
115  bool askUserToAcceptUnsignedFile( const std::string &file, const zypp::KeyContext &keycontext = {} );
116 
118 
119  bool askUserToAcceptPackageKey( const zypp::PublicKey &key_r, const zypp::KeyContext &keycontext_r = {} );
120 
121  void infoVerify( const std::string & file_r, const zypp::PublicKeyData & keyData_r, const zypp::KeyContext &keycontext = {} );
122 
123  void reportAutoImportKey( const std::list<zypp::PublicKeyData> & keyDataList_r, const zypp::PublicKeyData & keySigning_r, const zypp::KeyContext &keyContext_r );
124 
125  bool askUserToAcceptVerificationFailed( const std::string &file, const zypp::PublicKey &key, const zypp::KeyContext &keycontext = {} );
126 
127  bool askUserToAcceptUnknownKey( const std::string &file, const std::string &id, const zypp::KeyContext &keycontext = {} );
128 
129  private:
131 
132  };
133 
134  template<typename ZyppContextRef>
135  class JobReportHelper : public BasicReportHelper<ZyppContextRef> {
136  public:
138 
139  JobReportHelper(ZyppContextRef r)
140  : BasicReportHelper<ZyppContextRef>(std::move(r)) {}
141 
142  JobReportHelper(const JobReportHelper &) = default;
143  JobReportHelper(JobReportHelper &&) = default;
144  JobReportHelper &operator=(const JobReportHelper &) = default;
146 
148  bool debug( std::string msg_r, UserData userData_r = UserData() );
149 
151  bool info( std::string msg_r, UserData userData_r = UserData() );
152 
154  bool warning( std::string msg_r, UserData userData_r = UserData() );
155 
157  bool error( std::string msg_r, UserData userData_r = UserData() );
158 
160  bool important( std::string msg_r, UserData userData_r = UserData() );
161 
163  bool data( std::string msg_r, UserData userData_r = UserData() );
164 
165  };
166 }
167 
168 
169 #endif //ZYPP_NG_REPORTHELPER_INCLUDED
static constexpr bool async()
Definition: reporthelper.h:70
bool debug(std::string msg_r, UserData userData_r=UserData())
send debug message text
KeyRingReportHelper(ZyppContextRef r)
Definition: reporthelper.h:105
bool warning(std::string msg_r, UserData userData_r=UserData())
send warning text
DigestReportHelper & operator=(const DigestReportHelper &)=default
void reportAutoImportKey(const std::list< zypp::PublicKeyData > &keyDataList_r, const zypp::PublicKeyData &keySigning_r, const zypp::KeyContext &keyContext_r)
Class representing one GPG Public Keys data.
Definition: PublicKey.h:207
const ZyppContextRef & zyppContext()
Definition: reporthelper.h:66
ZYPP_FWD_DECL_REFS(Context)
BasicReportHelper(const BasicReportHelper &)=default
Definition: Arch.h:363
bool askUserToAcceptNoDigest(const zypp::Pathname &file)
Definition: reporthelper.cc:23
bool askUserToAcceptPackageKey(const zypp::PublicKey &key_r, const zypp::KeyContext &keycontext_r={})
std::shared_ptr< zypp::callback::SendReport< Report > > _d
Definition: reporthelper.h:54
bool data(std::string msg_r, UserData userData_r=UserData())
send data message
bool askUserToAcceptVerificationFailed(const std::string &file, const zypp::PublicKey &key, const zypp::KeyContext &keycontext={})
DigestReportHelper(ZyppContextRef r)
Definition: reporthelper.h:84
bool info(std::string msg_r, UserData userData_r=UserData())
send message text
KeyTrust
User reply options for the askUserToTrustKey callback.
Definition: KeyRing.h:51
JobReportHelper & operator=(const JobReportHelper &)=default
zypp::callback::UserData UserData
Definition: userrequest.h:18
detail::ReportHolder< ZyppContextRef, zypp::DigestReport > _report
Definition: reporthelper.h:97
detail::ReportHolder< ZyppContextRef, zypp::KeyRingReport > _report
Definition: reporthelper.h:130
zypp::KeyRingReport::KeyTrust askUserToAcceptKey(const zypp::PublicKey &key, const zypp::KeyContext &keycontext={})
Definition: reporthelper.cc:86
bool askUserToAccepUnknownDigest(const zypp::Pathname &file, const std::string &name)
Definition: reporthelper.cc:36
bool askUserToAcceptUnsignedFile(const std::string &file, const zypp::KeyContext &keycontext={})
Definition: reporthelper.cc:62
bool askUserToAcceptUnknownKey(const std::string &file, const std::string &id, const zypp::KeyContext &keycontext={})
void infoVerify(const std::string &file_r, const zypp::PublicKeyData &keyData_r, const zypp::KeyContext &keycontext={})
Class representing one GPG Public Key (PublicKeyData + ASCII armored in a tempfile).
Definition: PublicKey.h:364
bool error(std::string msg_r, UserData userData_r=UserData())
send error text
BasicReportHelper & operator=(const BasicReportHelper &)=default
Typesafe passing of user data via callbacks.
Definition: UserData.h:39
JobReportHelper(ZyppContextRef r)
Definition: reporthelper.h:139
Easy-to use interface to the ZYPP dependency resolver.
Definition: Application.cc:19
bool askUserToAcceptWrongDigest(const zypp::Pathname &file, const std::string &requested, const std::string &found)
Definition: reporthelper.cc:49
bool important(std::string msg_r, UserData userData_r=UserData())
send important message text
KeyRingReportHelper & operator=(const KeyRingReportHelper &)=default