You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
218 lines
5.0 KiB
218 lines
5.0 KiB
/*
|
|
* 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
|
|
|