2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #ifndef AFSCLASS_USER_H
11 #define AFSCLASS_USER_H
13 #include <WINNT/afsclass.h>
14 #include <WINNT/c_svc.h>
18 * USER CLASS _________________________________________________________________
22 typedef struct USERSTATUS
32 BOOL fCanChangePassword;
33 BOOL fCanReusePasswords;
34 SYSTEMTIME timeExpires;
35 SYSTEMTIME timeLastPwChange;
36 SYSTEMTIME timeLastMod;
38 LONG csecTicketLifetime;
44 LONG csecFailLoginLock;
49 LONG cgroupCreationQuota;
54 TCHAR szOwner[ cchNAME ];
55 TCHAR szCreator[ cchNAME ];
56 ACCOUNTACCESS aaListStatus;
57 ACCOUNTACCESS aaGroupsOwned;
58 ACCOUNTACCESS aaMembership;
61 } USERSTATUS, *LPUSERSTATUS;
68 friend class PTSGROUP;
72 void Invalidate (void);
73 BOOL RefreshStatus (BOOL fNotify = TRUE, ULONG *pStatus = NULL);
77 LPIDENT GetIdentifier (void);
78 LPCELL OpenCell (ULONG *pStatus = NULL);
79 void GetName (LPTSTR pszPrincipal, LPTSTR pszInstance = NULL);
81 BOOL GetStatus (LPUSERSTATUS lpus, BOOL fNotify = TRUE, ULONG *pStatus = NULL);
83 PVOID GetUserParam (void);
84 void SetUserParam (PVOID pUserParam);
88 BOOL GetOwnerOf (LPTSTR *ppmsz, ULONG *pStatus = NULL);
89 BOOL GetMemberOf (LPTSTR *ppmsz, ULONG *pStatus = NULL);
91 static void SplitUserName (LPCTSTR pszFull, LPTSTR pszName, LPTSTR pszInstance);
92 static BOOL IsMachineAccount (LPCTSTR pszName);
95 USER (LPCELL lpCellParent, LPTSTR pszPrincipal, LPTSTR pszInstance);
97 void SendDeleteNotifications (void);
101 TCHAR m_szPrincipal[ cchNAME ];
102 TCHAR m_szInstance[ cchNAME ];
106 BOOL m_fStatusOutOfDate;
110 LPTSTR m_mszMemberOf;
114 #endif // AFSCLASS_USER_H