diff options
Diffstat (limited to 'include/libaccess/nsuser.h')
-rw-r--r-- | include/libaccess/nsuser.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/include/libaccess/nsuser.h b/include/libaccess/nsuser.h new file mode 100644 index 00000000..fbc51ba3 --- /dev/null +++ b/include/libaccess/nsuser.h @@ -0,0 +1,70 @@ +/** BEGIN COPYRIGHT BLOCK + * Copyright 2001 Sun Microsystems, Inc. + * Portions copyright 1999, 2001-2003 Netscape Communications Corporation. + * All rights reserved. + * END COPYRIGHT BLOCK **/ +#ifndef __nsuser_h +#define __nsuser_h + +/* + * Description (nsuser.h) + * + * This file describes the interface to user information stored in + * a Netscape user database. Information about a user is provided + * to the caller in the form of a user object (UserObj_t), defined + * in nsauth.h. This interface provides only read access to user + * information. The interface for managing the user database is + * described in nsumgmt.h. + */ + +#include "nserror.h" /* error frame list support */ +#include "nsautherr.h" /* authentication error codes */ +#include "nsauth.h" /* authentication types */ + +/* Begin private definitions */ +#ifdef __PRIVATE_NSUSER + +#include "nsdb.h" + +/* + * Define structure used to communicate between userEnumerate() and + * userEnumHelp(). + */ + +typedef struct UserEnumArgs_s UserEnumArgs_t; +struct UserEnumArgs_s { + void * userdb; /* user database handle */ + int flags; /* userEnumerate() flags */ + int (*func)(NSErr_t * ferrp, void * parg, + UserObj_t * uoptr); /* user function pointer */ + void * user; /* user's argp pointer */ +}; + +/* Define attribute tags for user DB records */ +#define UAT_PASSWORD 0x40 /* password (NTS) */ +#define UAT_UID 0x41 /* user id (USI) */ +#define UAT_ACCFLAGS 0x42 /* account flags (USI) */ +#define UAT_REALNAME 0x43 /* real name (NTS) */ +#define UAT_GROUPS 0x44 /* list of groups (USI...) */ + +#endif /* __PRIVATE_NSUSER */ + +/* Begin public definitions */ + +/* Define flags for userEnumerate() */ +#define UOF_ENUMKEEP 0x1 /* don't free user objects */ + +NSPR_BEGIN_EXTERN_C + +/* User information retrieval operations in nsuser.c */ +extern UserObj_t * userDecode(NTS_t name, int ureclen, ATR_t urecptr); +extern int userEnumerate(NSErr_t * errp, void * userdb, int flags, void * argp, + int (*func)(NSErr_t * ferrp, + void * parg, UserObj_t * uoptr)); +extern UserObj_t * userFindByName(NSErr_t * errp, void * userdb, NTS_t name); +extern UserObj_t * userFindByUid(NSErr_t * errp, void * userdb, USI_t uid); +NSAPI_PUBLIC extern void userFree(UserObj_t * uoptr); + +NSPR_END_EXTERN_C + +#endif /* __nsuser_h */ |