00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef KUSER_H
00025
#define KUSER_H
00026
00027
#include "ksharedptr.h"
00028
00029
class KUserGroup;
00030
class QString;
00031
class QStringList;
00032
class KUserPrivate;
00033
struct passwd;
00034
template <
class T>
class QValueList;
00035
00047 class KUser {
00048
00049
public:
00050
00051 enum UIDMode {
00052
UseEffectiveUID,
00053
UseRealUserID
00054 };
00055
00066
00067
KUser(UIDMode mode = UseEffectiveUID);
00068
00074
00075
KUser(
long uid);
00076
00083
00084
KUser(
const QString& name);
00085
00092
00093
KUser(
const char *name);
00094
00101
00102
KUser(
struct passwd *p);
00103
00108
KUser(
const KUser & user);
00109
00115
KUser&
operator =(
const KUser& user);
00116
00121
bool operator ==(
const KUser& user)
const;
00122
00127
bool operator !=(
const KUser &user)
const;
00128
00134
bool isValid() const;
00135
00140
long uid() const;
00141
00142
00147
long gid() const;
00148
00153
bool isSuperUser() const;
00154
00159
QString loginName() const;
00160
00165
QString fullName() const;
00166
00172
QString roomNumber() const;
00173
00179
QString workPhone() const;
00180
00186
QString homePhone() const;
00187
00193
QString homeDir() const;
00194
00200
QString shell() const;
00201
00206
QValueList<
KUserGroup> groups() const;
00207
00212
QStringList groupNames() const;
00213
00214
00218 ~
KUser();
00219
00224 static
QValueList<
KUser> allUsers();
00225
00230 static
QStringList allUserNames();
00231
00232 private:
00233
KSharedPtr<KUserPrivate> d;
00234
void fillPasswd(struct passwd* p);
00235
void fillName(const
char* name);
00236 };
00237
00238 class KUserGroupPrivate;
00239
00240 struct group;
00241
00253 class
KUserGroup {
00254
00255
public:
00256
00265
explicit KUserGroup(KUser::UIDMode mode = KUser::UseEffectiveUID);
00266
00272
explicit KUserGroup(
long gid);
00273
00279
explicit KUserGroup(
const QString& name);
00280
00286
explicit KUserGroup(
const char *name);
00287
00293
explicit KUserGroup(
struct group *g);
00294
00299 KUserGroup(
const KUserGroup & group);
00300
00306 KUserGroup&
operator =(
const KUserGroup& group);
00307
00313
bool operator ==(
const KUserGroup& group)
const;
00314
00320
bool operator !=(
const KUserGroup& group)
const;
00321
00328
bool isValid()
const;
00329
00334
long gid()
const;
00335
00340
QString name()
const;
00341
00346
const QValueList<KUser>& users()
const;
00347
00352
QStringList userNames()
const;
00353
00354
00358 ~KUserGroup();
00359
00363
static QValueList<KUserGroup> allGroups();
00364
00368
static QStringList allGroupNames();
00369
00370
private:
00371
KSharedPtr<KUserGroupPrivate> d;
00372
void fillGroup(
struct group* g);
00373
void fillName(
const char* name);
00374 };
00375
00376
00377
#endif