diff --git a/exec/load/sbbsdefs.js b/exec/load/sbbsdefs.js index 35f139f9a181b73e2c4ef72309d0c61068ced386..647de21927c5fef3d48e98497ade2d35a022028d 100644 --- a/exec/load/sbbsdefs.js +++ b/exec/load/sbbsdefs.js @@ -231,6 +231,7 @@ var UQ_NOCOMMAS =(1<<17); /* Do not require commas in location */ var UQ_NONETMAIL =(1<<18); /* Don't ask for e-mail/netmail address */ var UQ_NOUPRLWR =(1<<19); /* Don't force upper/lower case strings */ var UQ_COLORTERM =(1<<20); /* Ask if new user has color terminal */ +var UQ_DUPNETMAIL =(1<<21); /* Don't allow duplicate netmail address */ /********************************************/ /********************************************/ diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp index 9b4c60ecbd31d16a97ed609641e2ef8df82a8f6e..75483bc5aa0afb856201044e08ae2864110e69fa 100644 --- a/src/sbbs3/newuser.cpp +++ b/src/sbbs3/newuser.cpp @@ -322,8 +322,11 @@ BOOL sbbs_t::newuser() if(!online) return(FALSE); while(!(cfg.uq&UQ_NONETMAIL) && online && text[EnterNetMailAddress][0]) { bputs(text[EnterNetMailAddress]); - if(getstr(useron.netmail,LEN_NETMAIL,K_EDIT|K_AUTODEL|K_LINE|K_TRIM) - && !trashcan(useron.netmail,"email")) + if(getstr(useron.netmail,LEN_NETMAIL,K_EDIT|K_AUTODEL|K_LINE|K_TRIM) < 1 + || trashcan(useron.netmail,"email") + || ((cfg.uq & UQ_DUPNETMAIL) && userdatdupe(useron.number, U_NETMAIL, LEN_NETMAIL, useron.netmail))) + bputs(text[YouCantUseThatNetmail]); + else break; } useron.misc&=~NETMAIL; diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h index 0dbc53725d69c282bf7da533a0cbc43ead5e3e30..3b122f064e3dadd0a3dedba757ba4b7175018c70 100644 --- a/src/sbbs3/sbbsdefs.h +++ b/src/sbbs3/sbbsdefs.h @@ -127,7 +127,7 @@ #define UQ_NONETMAIL (1L<<18) /* Don't ask for e-mail/netmail address */ #define UQ_NOUPRLWR (1L<<19) /* Don't force upper/lower case strings */ #define UQ_COLORTERM (1L<<20) /* Ask if new user has color terminal */ - +#define UQ_DUPNETMAIL (1L<<21) /* Don't allow duplicate e-mail address */ /* Different bits in sys_misc */ #define SM_CLOSED (1L<<0) /* System is clsoed to New Users */ diff --git a/src/sbbs3/scfg/scfgsys.c b/src/sbbs3/scfg/scfgsys.c index 5f60a9b1faaeb8db4a20628c63d37fc401ea4efc..b8de4dde61b6035da657e28b10e712927eb288dc 100644 --- a/src/sbbs3/scfg/scfgsys.c +++ b/src/sbbs3/scfg/scfgsys.c @@ -1251,6 +1251,9 @@ void sys_cfg(void) sprintf(opt[i++],"%-27.27s %-3.3s" ,"E-mail/NetMail Address" ,cfg.uq&UQ_NONETMAIL ? "No":"Yes"); + sprintf(opt[i++],"%-27.27s %-3.3s" + ,"Force Unique E-mail/NetMail Address" + ,cfg.uq&UQ_DUPNETMAIL ? "Yes":"No"); sprintf(opt[i++],"%-27.27s %-3.3s" ,"Sex (Gender)" ,cfg.uq&UQ_SEX ? "Yes":"No"); @@ -1313,42 +1316,45 @@ void sys_cfg(void) cfg.uq^=UQ_NONETMAIL; break; case 7: - cfg.uq^=UQ_SEX; + cfg.uq^=UQ_DUPNETMAIL; break; case 8: - cfg.uq^=UQ_BIRTH; + cfg.uq^=UQ_SEX; break; case 9: - cfg.uq^=UQ_ADDRESS; + cfg.uq^=UQ_BIRTH; break; case 10: - cfg.uq^=UQ_LOCATION; + cfg.uq^=UQ_ADDRESS; break; case 11: - cfg.uq^=UQ_NOCOMMAS; + cfg.uq^=UQ_LOCATION; break; case 12: - cfg.uq^=UQ_PHONE; + cfg.uq^=UQ_NOCOMMAS; break; case 13: - cfg.uq^=UQ_NOEXASC; + cfg.uq^=UQ_PHONE; break; case 14: - cfg.uq^=UQ_XEDIT; + cfg.uq^=UQ_NOEXASC; break; case 15: - cfg.uq^=UQ_CMDSHELL; + cfg.uq^=UQ_XEDIT; break; case 16: - cfg.uq^=UQ_NODEF; + cfg.uq^=UQ_CMDSHELL; break; case 17: + cfg.uq^=UQ_NODEF; + break; + case 18: cfg.uq^=UQ_COLORTERM; break; - } + } } break; - } + } } break; case 11: /* Advanced Options */ diff --git a/src/sbbs3/text.h b/src/sbbs3/text.h index 7b331e4673078ac4bbaa19817681579e7f4cb5f6..99c770c6335f10ae8adbec301c4a64c50d8ff40f 100644 --- a/src/sbbs3/text.h +++ b/src/sbbs3/text.h @@ -397,7 +397,7 @@ enum { ,WhichXtrnProg ,UserRunningXtrn ,RemoveNodeLockQ - ,MinimumModemSpeed + ,YouCantUseThatNetmail ,NoNodeAccess ,NodeLocked ,UnknownUser diff --git a/src/sbbs3/text_defaults.c b/src/sbbs3/text_defaults.c index 8f83a7aabc73225cc55d50acc8b78a2897810943..1ee8817e515ea2cbed3bd894af04c67510672182 100644 --- a/src/sbbs3/text_defaults.c +++ b/src/sbbs3/text_defaults.c @@ -641,7 +641,8 @@ const char * const text_defaults[TOTAL_TEXT]={ "\x6e\x6f\x64\x65\x20\x25\x64\x2e\x0d\x0a\x0d\x0a\x54\x72\x79\x20\x61\x67\x61\x69\x6e\x20\x6c\x61\x74\x65\x72\x2e\x0d\x0a\x0d\x0a" "" // 385 UserRunningXtrn ,"\x52\x65\x6d\x6f\x76\x65\x20\x6e\x6f\x64\x65\x20\x6c\x6f\x63\x6b" // 386 RemoveNodeLockQ - ,"\x55\x4e\x55\x53\x45\x44\x33\x38\x37" // 387 MinimumModemSpeed + ,"\x01\x6e\x59\x6f\x75\x20\x63\x61\x6e\x27\x74\x20\x75\x73\x65\x20\x74\x68\x61\x74\x20\x6d\x61\x69\x6c\x20\x61\x64\x64\x72\x65\x73" + "\x73\x20\x28\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x6f\x72\x20\x69\x6e\x76\x61\x6c\x69\x64\x29\x2e\x0d\x0a" // 387 YouCantUseThatNetmail ,"\x59\x6f\x75\x20\x64\x6f\x20\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x73\x75\x66\x66\x69\x63\x69\x65\x6e\x74\x20\x61\x63\x63\x65\x73" "\x73\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x6e\x6f\x64\x65\x2e" // 388 NoNodeAccess ,"\x01\x6e\x01\x72\x01\x68\x0d\x0a\x53\x6f\x72\x72\x79\x2c\x20\x74\x68\x69\x73\x20\x6e\x6f\x64\x65\x20\x69\x73\x20\x74\x65\x6d\x70"