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 TQString;
00029 class TQStringList;
00030 class KUserPrivate;
00031 struct passwd;
00032 template <class T> class TQValueList;
00033
00045 class TDECORE_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 TQString& 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 TQString loginName() const;
00163
00168 TQString fullName() const;
00169
00175 TQString roomNumber() const;
00176
00182 TQString workPhone() const;
00183
00189 TQString homePhone() const;
00190
00196 TQString homeDir() const;
00197
00203 TQString shell() const;
00204
00209 TQValueList<KUserGroup> groups() const;
00210
00215 TQStringList groupNames() const;
00216
00217
00221 ~KUser();
00222
00227 static TQValueList<KUser> allUsers();
00228
00233 static TQStringList allUserNames();
00234
00235 private:
00236 TDESharedPtr<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 TDECORE_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 TQString& 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 TQString name() const;
00348
00353 const TQValueList<KUser>& users() const;
00354
00359 TQStringList userNames() const;
00360
00361
00365 ~KUserGroup();
00366
00370 static TQValueList<KUserGroup> allGroups();
00371
00375 static TQStringList allGroupNames();
00376
00377 private:
00378 TDESharedPtr<KUserGroupPrivate> d;
00379 void fillGroup(struct group* g);
00380 void fillName(const char* name);
00381 };
00382
00383
00384 #endif