/***************************************************************************** * * $Id$ * Purpose ...............: MBSE BBS Users Database structure * ***************************************************************************** * Copyright (C) 1997-2004 * * Michiel Broek FIDO: 2:280/2802 * Beekmansbos 10 * 1971 BV IJmuiden * the Netherlands * * This file is part of MBSE BBS. * * This BBS is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * MBSE BBS is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with MBSE BBS; see the file COPYING. If not, write to the Free * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *****************************************************************************/ #ifndef _USERRECS_H #define _USERRECS_H #define Max_passlen 14 /* Define maximum passwd length */ typedef enum {LINEEDIT, FSEDIT, EXTEDIT} MSGEDITOR; /************************************************************************ * * Other BBS structures * */ #ifndef _SECURITYSTRUCT #define _SECURITYSTRUCT /* * Security structure */ typedef struct _security { unsigned int level; /* Security level */ unsigned long flags; /* Access flags */ unsigned long notflags; /* No Access flags */ } securityrec; #endif /**************************************************************************** * * Datafile records structure in $MBSE_ROOT/etc * */ /* * Users Control Structures (users.data) */ struct userhdr { long hdrsize; /* Size of header */ long recsize; /* Size of records */ }; struct userrec { char sUserName[36]; /* User First and Last Name */ char Name[9]; /* Unix name */ unsigned long xPassword; char sVoicePhone[20]; /* Voice Number */ char sDataPhone[20]; /* Data/Business Number */ char sLocation[28]; /* Users Location */ char address[3][41]; /* Users address */ char sDateOfBirth[12]; /* Date of Birth */ time_t tFirstLoginDate; /* Date of First Login */ time_t tLastLoginDate; /* Date of Last Login */ securityrec Security; /* User Security Level */ char sComment[81]; /* User Comment */ char sExpiryDate[12]; /* User Expiry Date */ securityrec ExpirySec; /* Expiry Security Level */ char sSex[8]; /* Users Sex */ unsigned Hidden : 1; /* Hide User from Lists */ unsigned HotKeys : 1; /* Hot-Keys ON/OFF */ unsigned GraphMode : 1; /* ANSI Mode ON/OFF */ unsigned Deleted : 1; /* Deleted Status */ unsigned NeverDelete : 1; /* Never Delete User */ unsigned xChat : 1; unsigned LockedOut : 1; /* User is locked out */ unsigned DoNotDisturb : 1; /* DoNot disturb */ unsigned Cls : 1; /* CLS on/off */ unsigned More : 1; /* More prompt */ unsigned xFsMsged : 1; unsigned MailScan : 1; /* New Mail scan */ unsigned Guest : 1; /* Is guest account */ unsigned OL_ExtInfo : 1; /* OLR extended msg info */ int iTotalCalls; /* Total number of calls */ int iTimeLeft; /* Time left today */ int iConnectTime; /* Connect time this call */ int iTimeUsed; /* Time used today */ int iScreenLen; /* User Screen Length */ time_t tLastPwdChange; /* Date last password chg */ unsigned xHangUps; long Credit; /* Users credit */ int Paged; /* Times paged today */ int MsgEditor; /* Message Editor to use */ int LastPktNum; /* Todays Last packet number*/ char Archiver[6]; /* Archiver to use */ int iLastFileArea; /* Number of last file area */ int iLastFileGroup; /* Number of last file group*/ char sProtocol[21]; /* Users default protocol */ unsigned long Downloads; /* Total number of d/l's */ unsigned long Uploads; /* Total number of uploads */ unsigned long UploadK; /* Upload KiloBytes */ unsigned long DownloadK; /* Download KiloBytes */ long DownloadKToday; /* KB Downloaded today */ long UploadKToday; /* KB Uploaded today */ int iTransferTime; /* Last file transfer time */ int iLastMsgArea; /* Number of last msg area */ int iLastMsgGroup; /* Number of last msg group */ int iPosted; /* Number of msgs posted */ int iLanguage; /* Current Language */ char sHandle[36]; /* Users Handle */ int iStatus; /* WhosDoingWhat status */ int DownloadsToday; /* Downloads today */ int CrtDef; /* IEMSI Terminal emulation */ int Protocol; /* IEMSI protocol */ unsigned IEMSI : 1; /* Is this a IEMSI session */ unsigned ieMNU : 1; /* Can do ASCII download */ unsigned ieTAB : 1; /* Can handle TAB character */ unsigned ieASCII8 : 1; /* Can handle 8-bit IBM-PC */ unsigned ieNEWS : 1; /* Show bulletins */ unsigned ieFILE : 1; /* Check for new files */ unsigned Email : 1; /* Has private email box */ unsigned FSemacs : 1; /* FSedit uses emacs keys */ char Password[Max_passlen+1];/* Plain password */ int Charset; /* Character set */ }; struct userhdr usrconfighdr; /* Users database */ struct userrec usrconfig; struct userrec exitinfo; /* Users online data */ #endif