PolkitQt-1

polkitqt1-agent-session.h
1 /*
2  This file is part of the PolKit1-qt project
3  SPDX-FileCopyrightText: 2009 Radek Novacek <[email protected]>
4 
5  SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #ifndef POLKITQT1_AGENT_SESSION_H
9 #define POLKITQT1_AGENT_SESSION_H
10 
11 #include <QObject>
12 #include "polkitqt1-identity.h"
13 #include "polkitqt1-agent-export.h"
14 
15 typedef struct _GSimpleAsyncResult GSimpleAsyncResult;
16 typedef struct _PolkitAgentSession PolkitAgentSession;
17 
18 namespace PolkitQt1
19 {
20 
21 /**
22  * \namespace Agent Agent
23  *
24  * \brief Namespace wrapping Polkit-Qt Agent classes
25  *
26  * This namespace wraps all Polkit-Qt Agent classes.
27  */
28 
29 namespace Agent
30 {
31 
32 /**
33  * \internal
34  * \brief Encapsulation of GSimpleAsyncResult to QObject class
35  */
36 class POLKITQT1_AGENT_EXPORT AsyncResult
37 {
38 public:
39  explicit AsyncResult(GSimpleAsyncResult *result);
40  virtual ~AsyncResult();
41 
42  /**
43  * \brief Mark the action that is tied to this result as completed.
44  */
45  void setCompleted();
46 
47  /**
48  * \brief Sets an error for the asynchronous result.
49  * Method complete() must be called anyway.
50  *
51  * \param text text of the error message
52  */
53  void setError(const QString &text);
54 
55 private:
56  class Private;
57  Private * const d;
58 };
59 
60 /**
61  * \class Session polkitqt1-agent-session.h Session
62  * \author Radek Novacek <[email protected]>
63  *
64  * This class is interface for interacting with native
65  * authentication system for obtaining authorizations.
66  *
67  */
68 class POLKITQT1_AGENT_EXPORT Session : public QObject
69 {
70  Q_OBJECT
71  Q_DISABLE_COPY(Session)
72 public:
73  /**
74  * Create a new authentication session.
75  *
76  * \param identity The identity to authenticate
77  * \param cookie The cookie obtained from the PolicyKit daemon
78  * \param result Result of the authentication action. Must be finished using complete() method.
79  * \param parent
80  */
81  Session(const PolkitQt1::Identity& identity, const QString &cookie, AsyncResult *result = nullptr, QObject *parent = nullptr);
82 
83  /**
84  * Create a new authentication session from PolkitAgentSession object
85  *
86  * \warning Use this only if you are completely aware of what are you doing!
87  *
88  * \param pkAgentSession PolkitAgentSession object
89  * \param parent
90  */
91  explicit Session(PolkitAgentSession *pkAgentSession, QObject *parent = nullptr);
92 
93  /**
94  * Destroy authentication session.
95  */
96  ~Session() override;
97 
98  /**
99  * Initiate the authentication session.
100  *
101  * Use cancel() to cancel the session.
102  */
103  void initiate();
104 
105  /**
106  * Method for providing response to requests received via request signal.
107  *
108  * \param response Response from the user, typically a password
109  */
110  void setResponse(const QString &response);
111 
112  /**
113  * Cancel the authentication session.
114  * This will emit the completed() signal.
115  */
116  void cancel();
117 
118  /**
119  * Get AsyncResult that can be used to finish authentication operation
120  *
121  * \return AsyncResult object or NULL if it is not set
122  */
123  AsyncResult *result();
124 
125 Q_SIGNALS:
126  /**
127  * This signal will be emitted when the authentication
128  * polkitqt1-agent-session.has been completed or cancelled.
129  *
130  * \param gainedAuthorization \c True if authorization was successfully obtained.
131  */
132  void completed(bool gainedAuthorization);
133 
134  /**
135  * This signal will be emitted when user is requested to answer a question.
136  *
137  * \param request The request to show the user, e.g. "name: " or "password: ".
138  * \param echo \c True if the response to the request SHOULD be echoed on the screen,
139  * \c False if the response MUST NOT be echoed to the screen.
140  */
141  void request(const QString &request, bool echo);
142 
143  /**
144  * This signal will be emitted when there is information
145  * related to an error condition to be displayed to the user.
146  *
147  * \param text An error string to display to the user.
148  */
149  void showError(const QString &text);
150 
151  /**
152  * This signal will be emitted when there is information
153  * to be displayed to the user.
154  *
155  * \param text A string to be displayed to the user.
156  */
157  void showInfo(const QString &text);
158 
159 private:
160  class Private;
161  Private * const d;
162 };
163 
164 }
165 
166 }
167 
168 #endif // SESSION_H
Abstract class representing identities.
Encapsulation of GSimpleAsyncResult to QObject class.
Namespace wrapping Polkit-Qt Agent classes.
Namespace wrapping Polkit-Qt classes.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sun Jun 26 2022 04:06:09 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.