summaryrefslogtreecommitdiffstats
path: root/include/libaccess/nsuser.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libaccess/nsuser.h')
-rw-r--r--include/libaccess/nsuser.h70
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 */