PolkitQt-1

polkitqt1-identity.h
1 /*
2  This file is part of the Polkit-qt project
3  SPDX-FileCopyrightText: 2009 Lukas Tinkl <[email protected]>
4 
5  SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #ifndef POLKITQT1_IDENTITY_H
9 #define POLKITQT1_IDENTITY_H
10 
11 #include "polkitqt1-core-export.h"
12 
13 #include <unistd.h>
14 
15 #include <QObject>
16 #include <QSharedData>
17 
18 typedef struct _PolkitIdentity PolkitIdentity;
19 typedef struct _PolkitUnixUser PolkitUnixUser;
20 typedef struct _PolkitUnixGroup PolkitUnixGroup;
21 
22 /**
23  * \namespace PolkitQt1 PolkitQt
24  *
25  * \brief Namespace wrapping Polkit-Qt classes
26  *
27  * This namespace wraps all Polkit-Qt classes.
28  */
29 namespace PolkitQt1
30 {
31 
32 class UnixUserIdentity;
33 class UnixGroupIdentity;
34 
35 /**
36  * \class Identity polkitqt1-identity.h Identity
37  * \author Lukas Tinkl <[email protected]>
38  *
39  * This class encapsulates the PolkitIdentity interface.
40  *
41  * \brief Abstract class representing identities
42  *
43  * \see UnixGroup
44  * \see UnixUser
45  */
46 class POLKITQT1_CORE_EXPORT Identity
47 {
48 public:
49  typedef QList< Identity > List;
50 
51  Identity();
52  explicit Identity(PolkitIdentity *polkitIdentity);
53  Identity(const Identity &other);
54 
55  ~Identity();
56 
57  Identity &operator=(const Identity &other);
58 
59  bool isValid() const;
60 
61  /**
62  * Serialization of object to the string
63  *
64  * \return Serialized Identity object
65  */
66  QString toString() const;
67 
68  /**
69  * Creates the Identity object from string representation
70  *
71  * \param string string representation of the object
72  *
73  * \return Pointer to new Identity instance
74  */
75  static Identity fromString(const QString &string);
76 
77  UnixUserIdentity toUnixUserIdentity();
78  UnixGroupIdentity toUnixGroupIdentity();
79 
80  /**
81  * Gets PolkitIdentity object.
82  *
83  * \warning It shouldn't be used directly unless you are completely aware of what are you doing
84  *
85  * \return Pointer to PolkitIdentity instance
86  */
87  PolkitIdentity *identity() const;
88 protected:
89  void setIdentity(PolkitIdentity *identity);
90 
91 private:
92  class Data;
94 };
95 
96 /**
97  * \class UnixUserIdentity polkitqt1-identity.h Identity
98  *
99  * An object representing a user identity on a UNIX system.
100  *
101  * \brief UNIX user identity
102  * \sa Identity
103  */
104 class POLKITQT1_CORE_EXPORT UnixUserIdentity : public Identity
105 {
106 public:
108  /**
109  * Creates UnixUser object by UID of the user
110  *
111  * \param uid user id
112  */
113  explicit UnixUserIdentity(uid_t uid);
114 
115  /**
116  * Creates UnixUser object by unix name of the user
117  *
118  * \param name Unix name
119  */
120  explicit UnixUserIdentity(const QString &name);
121 
122  /**
123  * Creates UnixUser object from PolkitUnixUser object
124  *
125  * \warning Use this only if you are completely aware of what are you doing!
126  *
127  * \param pkUnixUser The PolkitUnixUser object
128  */
129  explicit UnixUserIdentity(PolkitUnixUser *pkUnixUser);
130 
131  /**
132  * Gets an user id
133  *
134  * \return user id
135  */
136  uid_t uid() const;
137 
138  /**
139  * Sets the id of user
140  *
141  * \param uid user id
142  */
143  void setUid(uid_t uid);
144 };
145 
146 /**
147  * \class UnixGroupIdentity polkitqt1-identity.h Identity
148  *
149  * An object representing a group identity on a UNIX system.
150  *
151  * \brief UNIX group identity
152  * \sa Identity
153  */
154 class POLKITQT1_CORE_EXPORT UnixGroupIdentity : public Identity
155 {
156 public:
158  /**
159  * Creates UnixGroup object by GID of the group
160  *
161  * \param gid group id
162  */
163  explicit UnixGroupIdentity(gid_t gid);
164 
165  /**
166  * Creates UnixGroup object by unix name of the group
167  *
168  * \param name group name
169  */
170  explicit UnixGroupIdentity(const QString &name);
171 
172  /**
173  * Creates UnixGroup object from PolkitUnixGroup object
174  *
175  * \warning Use this only if you are completely aware of what are you doing!
176  *
177  * \param pkUnixGroup The PolkitUnixGroup object
178  */
179  explicit UnixGroupIdentity(PolkitUnixGroup *pkUnixGroup);
180 
181  /**
182  * Gets a group id
183  *
184  * \return group id
185  */
186  gid_t gid() const;
187 
188  /**
189  * Sets the id of group
190  *
191  * \param gid group id
192  */
193  void setGid(gid_t gid);
194 };
195 
196 }
197 
198 #endif // POLKIT_QT_IDENTITY_H
Abstract class representing identities.
Namespace wrapping Polkit-Qt classes.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Sep 27 2023 04:04:26 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.