summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/rtems_webserver/um.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/libnetworking/rtems_webserver/um.h')
-rw-r--r--c/src/libnetworking/rtems_webserver/um.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/c/src/libnetworking/rtems_webserver/um.h b/c/src/libnetworking/rtems_webserver/um.h
new file mode 100644
index 0000000000..d44fa28e91
--- /dev/null
+++ b/c/src/libnetworking/rtems_webserver/um.h
@@ -0,0 +1,184 @@
+/*
+ * um.h -- GoAhead User Management public header
+ *
+ * Copyright (c) GoAhead Software Inc., 1992-2000. All Rights Reserved.
+ *
+ * See the file "license.txt" for information on usage and redistribution
+ *
+ * $Id$
+ */
+
+#ifndef _h_UM
+#define _h_UM 1
+
+/******************************** Description *********************************/
+
+/*
+ * GoAhead User Management header. This defines the User Management
+ * public APIs. Include this header for files that contain access to
+ * user inquiry or management.
+ */
+
+/********************************* Includes ***********************************/
+
+#if ! UEMF
+ #include "basic/basic.h"
+ #include "emf/emf.h"
+#else
+ #include "uemf.h"
+#endif
+
+/********************************** Defines ***********************************/
+
+/*
+ * Error Return Flags
+ */
+#define UM_OK 0
+#define UM_ERR_GENERAL -1
+#define UM_ERR_NOT_FOUND -2
+#define UM_ERR_PROTECTED -3
+#define UM_ERR_DUPLICATE -4
+#define UM_ERR_IN_USE -5
+#define UM_ERR_BAD_NAME -6
+#define UM_ERR_BAD_PASSWORD -7
+
+/*
+ * Privilege Masks
+ */
+#define PRIV_NONE 0x00
+#define PRIV_READ 0x01
+#define PRIV_WRITE 0x02
+#define PRIV_ADMIN 0x04
+
+/*
+ * User classes
+ */
+typedef short bool_t;
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+typedef enum {
+ AM_NONE = 0,
+ AM_FULL,
+ AM_BASIC,
+ AM_DIGEST,
+ AM_INVALID
+} accessMeth_t;
+
+/********************************** Prototypes ********************************/
+
+/*
+ * umOpen() must be called before accessing User Management functions
+ */
+extern int umOpen();
+
+/*
+ * umClose() should be called before shutdown to free memory
+ */
+extern void umClose();
+
+/*
+ * umCommit() persists the user management database
+ */
+extern int umCommit(char_t *filename);
+
+/*
+ * umRestore() loads the user management database
+ */
+extern int umRestore(char_t *filename);
+
+/*
+ * umUser functions use a user ID for a key
+ */
+extern int umAddUser(char_t *user, char_t *password,
+ char_t *group, bool_t protect, bool_t disabled);
+
+extern int umDeleteUser(char_t *user);
+
+extern char_t *umGetFirstUser();
+extern char_t *umGetNextUser(char_t *lastUser);
+
+extern bool_t umUserExists(char_t *user);
+
+extern char_t *umGetUserPassword(char_t *user);
+extern int umSetUserPassword(char_t *user, char_t *password);
+
+extern char_t *umGetUserGroup(char_t *user);
+extern int umSetUserGroup(char_t *user, char_t *password);
+
+extern bool_t umGetUserEnabled(char_t *user);
+extern int umSetUserEnabled(char_t *user, bool_t enabled);
+
+extern bool_t umGetUserProtected(char_t *user);
+extern int umSetUserProtected(char_t *user, bool_t protect);
+
+/*
+ * umGroup functions use a group name for a key
+ */
+extern int umAddGroup(char_t *group, short privilege,
+ accessMeth_t am, bool_t protect, bool_t disabled);
+
+extern int umDeleteGroup(char_t *group);
+
+extern char_t *umGetFirstGroup();
+extern char_t *umGetNextGroup(char_t *lastUser);
+
+extern bool_t umGroupExists(char_t *group);
+extern bool_t umGetGroupInUse(char_t *group);
+
+extern accessMeth_t umGetGroupAccessMethod(char_t *group);
+extern int umSetGroupAccessMethod(char_t *group, accessMeth_t am);
+
+extern bool_t umGetGroupEnabled(char_t *group);
+extern int umSetGroupEnabled(char_t *group, bool_t enabled);
+
+extern short umGetGroupPrivilege(char_t *group);
+extern int umSetGroupPrivilege(char_t *group, short privileges);
+
+extern bool_t umGetGroupProtected(char_t *group);
+extern int umSetGroupProtected(char_t *group, bool_t protect);
+
+/*
+ * umAccessLimit functions use a URL as a key
+ */
+extern int umAddAccessLimit(char_t *url, accessMeth_t am,
+ short secure, char_t *group);
+
+extern int umDeleteAccessLimit(char_t *url);
+
+extern char_t *umGetFirstAccessLimit();
+extern char_t *umGetNextAccessLimit(char_t *lastUser);
+
+/*
+ * Returns the name of an ancestor access limit if
+ */
+extern char_t *umGetAccessLimit(char_t *url);
+
+extern bool_t umAccessLimitExists(char_t *url);
+
+extern accessMeth_t umGetAccessLimitMethod(char_t *url);
+extern int umSetAccessLimitMethod(char_t *url, accessMeth_t am);
+
+extern short umGetAccessLimitSecure(char_t *url);
+extern int umSetAccessLimitSecure(char_t *url, short secure);
+
+extern char_t *umGetAccessLimitGroup(char_t *url);
+extern int umSetAccessLimitGroup(char_t *url, char_t *group);
+
+/*
+ * Convenience Functions
+ */
+
+extern accessMeth_t umGetAccessMethodForURL(char_t *url);
+extern bool_t umUserCanAccessURL(char_t *user, char_t *url);
+
+#endif /* _h_UM */
+
+/******************************************************************************/
+