/*
 * UserTool - A Tool for managing users in a MuFS environment.
 *
 * $VER: parse.h 37.1 (10.1.94)
 */

#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif /* EXEC_LISTS_H */
#ifndef _STDIO_H
#include <stdio.h>
#endif /* _STDIO_H */
#ifndef LIBRARIES_MULTIUSER_H
#include <libraries/multiuser.h>
#endif /* LIBRARIES_MULTIUSER_H */

typedef struct _UserStruct {
	struct Node us_Node;
	UWORD us_NodePad; /* This long word aligns the start of us_UserName */
	struct List us_Groups;
	UBYTE us_UserName[muUSERIDSIZE];
	UBYTE us_Password[32];
	ULONG us_UserID;
	ULONG us_GroupID;
	UBYTE us_RealName[muUSERNAMESIZE];
	UBYTE us_HomeDir[muHOMEDIRSIZE];
	UBYTE us_Port[32];
} UserStruct;

typedef struct _GroupStruct {
	struct Node gs_Node;
	UWORD gs_NodePad; /* This long word aligns the start of us_UserName */
	UBYTE gs_GroupID[muGROUPIDSIZE];
	ULONG gs_GID;
	ULONG gs_MgrID;
	UBYTE gs_Name[muGROUPNAMESIZE];
} GroupStruct;

VOID FreeUserList( struct List * );
VOID FreeGroupList( struct List * );
struct List *ParsePasswdFile( VOID );
struct List *ParseGroupFile( VOID );
VOID WritePasswdFile( UserStruct * );
LONG AddGroupToUser( LONG, LONG );
LONG RemoveGroupFromUser( LONG, LONG );
UserStruct *UserWithID( LONG );
VOID WriteGroupFile( VOID );
