00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef KUSER_H
00023
#define KUSER_H
00024
00025
#include "ksharedptr.h"
00026
00027
class KUserGroup;
00028
class QString;
00029
class QStringList;
00030
class KUserPrivate;
00031
struct passwd;
00032
template <
class T>
class QValueList;
00033
00045 class KDECORE_EXPORT KUser {
00046
00047
public:
00048
00049 enum UIDMode {
00050 UseEffectiveUID,
00051 UseRealUserID
00052 };
00053
00067
00068 KUser(UIDMode mode = UseEffectiveUID);
00069
00075
00076 KUser(
long uid);
00077
00084
00085 KUser(
const QString& name);
00086
00093
00094 KUser(
const char *name);
00095
00102
00103 KUser(
struct passwd *p);
00104
00109 KUser(
const KUser & user);
00110
00116 KUser& operator =(
const KUser& user);
00117
00122
bool operator ==(
const KUser& user)
const;
00123
00128
bool operator !=(
const KUser &user)
const;
00129
00135
bool isValid() const;
00136
00141
00142
long uid() const;
00143
00144
00149
00150
long gid() const;
00151
00156
bool isSuperUser() const;
00157
00162
QString loginName() const;
00163
00168
QString fullName() const;
00169
00175
QString roomNumber() const;
00176
00182
QString workPhone() const;
00183
00189
QString homePhone() const;
00190
00196
QString homeDir() const;
00197
00203
QString shell() const;
00204
00209
QValueList<
KUserGroup> groups() const;
00210
00215
QStringList groupNames() const;
00216
00217
00221 ~KUser();
00222
00227 static
QValueList<KUser> allUsers();
00228
00233 static
QStringList allUserNames();
00234
00235 private:
00236
KSharedPtr<KUserPrivate> d;
00237
void fillPasswd(struct passwd* p);
00238
void fillName(const
char* name);
00239 };
00240
00241 class KUserGroupPrivate;
00242
00243 struct group;
00244
00256 class KDECORE_EXPORT
KUserGroup {
00257
00258
public:
00259
00270
explicit KUserGroup(KUser::UIDMode mode = KUser::UseEffectiveUID);
00271
00277
00278
explicit KUserGroup(
long gid);
00279
00285
explicit KUserGroup(
const QString& name);
00286
00292
explicit KUserGroup(
const char *name);
00293
00299
explicit KUserGroup(
struct group *g);
00300
00305 KUserGroup(
const KUserGroup & group);
00306
00312 KUserGroup& operator =(
const KUserGroup& group);
00313
00319
bool operator ==(
const KUserGroup& group)
const;
00320
00326
bool operator !=(
const KUserGroup& group)
const;
00327
00334
bool isValid()
const;
00335
00340
00341
long gid()
const;
00342
00347
QString name()
const;
00348
00353
const QValueList<KUser>& users()
const;
00354
00359
QStringList userNames()
const;
00360
00361
00365 ~KUserGroup();
00366
00370
static QValueList<KUserGroup> allGroups();
00371
00375
static QStringList allGroupNames();
00376
00377
private:
00378
KSharedPtr<KUserGroupPrivate> d;
00379
void fillGroup(
struct group* g);
00380
void fillName(
const char* name);
00381 };
00382
00383
00384
#endif