diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-09-01 10:57:21 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-09-01 10:57:21 +0000 |
commit | a6b4c0df5f74d1238337f41d1d13f4f168ad01f1 (patch) | |
tree | ae171319a76a707e9f3aa638b7c690e40c9f5d5e /c/src/libnetworking/rtems_webserver/um.h | |
parent | 2000-08-31 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-a6b4c0df5f74d1238337f41d1d13f4f168ad01f1.tar.bz2 |
2000-08-30 Joel Sherrill <joel@OARcorp.com>
* Merged version 2.1 of GoAhead webserver. This update
was submitted by Antti P Miettinen <antti.p.miettinen@nokia.com>.
* NOTES, base64.c, ejIntrn.h, emfdb.c, emfdb.h, md5.h, md5c.c,
um.c, um.h: New files.
* wbase64.c: Removed.
* Makefile.am, asp.c, balloc.c, default.c, ej.h, ejlex.c, ejparse.c,
form.c, h.c, handler.c, mime.c, misc.c, ringq.c, rom.c, security.c,
socket.c, sym.c, uemf.c, uemf.h, url.c, value.c, webcomp.c, webmain.c,
webpage.c, webrom.c, webs.c, webs.h, websuemf.c, wsIntrn.h: Modified.
Diffstat (limited to 'c/src/libnetworking/rtems_webserver/um.h')
-rw-r--r-- | c/src/libnetworking/rtems_webserver/um.h | 184 |
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 */ + +/******************************************************************************/ + |