summaryrefslogtreecommitdiffstats
path: root/core/polkit-tqt-identity.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/polkit-tqt-identity.h')
-rw-r--r--core/polkit-tqt-identity.h217
1 files changed, 217 insertions, 0 deletions
diff --git a/core/polkit-tqt-identity.h b/core/polkit-tqt-identity.h
new file mode 100644
index 000000000..230bd9216
--- /dev/null
+++ b/core/polkit-tqt-identity.h
@@ -0,0 +1,217 @@
+/*
+ * This file is part of the Polkit-tqt project
+ * Copyright (C) 2009 Lukas Tinkl <ltinkl@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef POLKIT_TQT_IDENTITY_H
+#define POLKIT_TQT_IDENTITY_H
+
+#include "polkit-tqt-export.h"
+
+#include <unistd.h>
+
+typedef struct _PolkitIdentity PolkitIdentity;
+typedef struct _PolkitUnixUser PolkitUnixUser;
+typedef struct _PolkitUnixGroup PolkitUnixGroup;
+
+class TQString;
+template<typename> class TQValueList;
+
+
+/**
+ * \namespace PolkitTQt PolkitTQt
+ *
+ * \brief Namespace wrapping Polkit-TQt classes
+ *
+ * This namespace wraps all Polkit-TQt classes.
+ */
+namespace PolkitTQt
+{
+
+/**
+ * \class Identity polkit-tqt-identity.h Identity
+ * \author Lukas Tinkl <ltinkl@redhat.com>
+ *
+ * This class encapsulates the PolkitIdentity interface.
+ *
+ * \brief Abstract class representing identities
+ *
+ * \see UnixGroup
+ * \see UnixUser
+ */
+class POLKIT_TQT_EXPORT Identity
+{
+ public:
+ typedef TQValueList<Identity> List;
+
+ Identity();
+ Identity(const Identity &other);
+ ~Identity();
+
+ /**
+ * Creates an Identity object from PolkitIdentity
+ *
+ * \warning It shouldn't be used directly unless you are completely aware of what are you doing
+ *
+ * \param pkIdentity PolkitIdentity object
+ */
+ explicit Identity(PolkitIdentity *pkIdentity);
+
+ Identity& operator=(const Identity &other);
+
+ /**
+ * Check whether an identity is valid
+ *
+ * \return true is the identity is valid
+ */
+ bool isValid() const;
+
+ /**
+ * Serialization of object to the string
+ *
+ * \return Serialized Identity object
+ */
+ TQString toString() const;
+
+ /**
+ * Creates the Identity object from string representation
+ *
+ * \param string string representation of the object
+ *
+ * \return the new Identity instance
+ */
+ static Identity fromString(const TQString &string);
+
+ /**
+ * Gets PolkitIdentity object.
+ *
+ * \warning It shouldn't be used directly unless you are completely aware of what are you doing
+ *
+ * \return Pointer to PolkitIdentity instance
+ */
+ PolkitIdentity* identity() const;
+
+ void setIdentity(PolkitIdentity *identity);
+
+ private:
+ class Data;
+ Data *d;
+};
+
+/**
+ * \class UnixUserIdentity polkit-tqt-identity.h Identity
+ *
+ * An object representing a user identity on a UNIX system.
+ *
+ * \brief UNIX user identity
+ * \sa Identity
+ */
+class POLKIT_TQT_EXPORT UnixUserIdentity : public Identity
+{
+ public:
+ /**
+ * Creates UnixUser object by UID of the user
+ *
+ * \param uid user id
+ */
+ explicit UnixUserIdentity(uid_t uid);
+
+ /**
+ * Creates UnixUser object by unix name of the user
+ *
+ * \param name Unix name
+ */
+ explicit UnixUserIdentity(const TQString &name);
+
+ /**
+ * Creates UnixUser object from PolkitUnixUser object
+ *
+ * \warning Use this only if you are completely aware of what are you doing!
+ *
+ * \param pkUnixUser The PolkitUnixUser object
+ */
+ explicit UnixUserIdentity(PolkitUnixUser *pkUnixUser);
+
+ /**
+ * Gets an user id
+ *
+ * \return user id
+ */
+ uid_t uid() const;
+
+ /**
+ * Sets the id of user
+ *
+ * \param uid user id
+ */
+ void setUid(uid_t uid);
+};
+
+/**
+ * \class UnixGroupIdentity polkit-tqt-identity.h Identity
+ *
+ * An object representing a group identity on a UNIX system.
+ *
+ * \brief UNIX group identity
+ * \sa Identity
+ */
+class POLKIT_TQT_EXPORT UnixGroupIdentity : public Identity
+{
+ public:
+ /**
+ * Creates UnixGroup object by GID of the group
+ *
+ * \param gid group id
+ */
+ explicit UnixGroupIdentity(gid_t gid);
+
+ /**
+ * Creates UnixGroup object by unix name of the group
+ *
+ * \param name group name
+ */
+ explicit UnixGroupIdentity(const TQString &name);
+
+ /**
+ * Creates UnixGroup object from PolkitUnixGroup object
+ *
+ * \warning Use this only if you are completely aware of what are you doing!
+ *
+ * \param pkUnixGroup The PolkitUnixGroup object
+ */
+ explicit UnixGroupIdentity(PolkitUnixGroup *pkUnixGroup);
+
+ /**
+ * Gets a group id
+ *
+ * \return group id
+ */
+ gid_t gid() const;
+
+ /**
+ * Sets the id of group
+ *
+ * \param gid group id
+ */
+ void setGid(gid_t gid);
+};
+
+}
+
+#endif
+