diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp index 06a7d51d377680c246f6eef3dfa811550ce11bd4..b0518765fbf925af44a59651859e30471ca087c9 100644 --- a/src/sbbs3/newuser.cpp +++ b/src/sbbs3/newuser.cpp @@ -200,6 +200,7 @@ BOOL sbbs_t::newuser() getstr(useron.alias,LEN_ALIAS,kmode); truncsp(useron.alias); if (!check_name(&cfg,useron.alias) + || userdatdupe(useron.number, U_NAME, LEN_NAME, useron.alias) || (!(cfg.uq&UQ_ALIASES) && !strchr(useron.alias,' '))) { bputs(text[YouCantUseThatName]); if(text[ContinueQ][0] && !yesno(text[ContinueQ])) @@ -222,7 +223,7 @@ BOOL sbbs_t::newuser() break; if(text[ContinueQ][0] && !yesno(text[ContinueQ])) return(FALSE); - } + } } else if(cfg.uq&UQ_COMPANY && text[EnterYourCompany][0]) { bputs(text[EnterYourCompany]); @@ -234,6 +235,8 @@ BOOL sbbs_t::newuser() } if(!useron.name[0]) SAFECOPY(useron.name,useron.alias); + else if(!(cfg.uq&UQ_DUPREAL) && userdatdupe(useron.number,U_NAME,LEN_NAME,useron.name) > 0) + useron.rest |= FLAG('O'); // Can't post using real name (it's a duplicate) if(!online) return(FALSE); if(!useron.handle[0]) SAFECOPY(useron.handle,useron.alias); diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index dbb60ec15734b4a3ced4e0c6712a719a46fa229c..c0b26373e9b1a54c705e7d543e3278707b954316 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -2974,6 +2974,9 @@ BOOL can_user_post(scfg_t* cfg, uint subnum, user_t* user, client_t* client, uin if(cfg->sub[subnum]->misc&(SUB_QNET|SUB_FIDO|SUB_PNET|SUB_INET) && user->rest&FLAG('N')) /* network restriction? */ return FALSE; + if((cfg->sub[subnum]->misc & SUB_NAME) + && (user->rest & (FLAG('Q') | FLAG('O'))) == FLAG('O')) + return FALSE; if(reason!=NULL) *reason=R_Post; if(user->rest&FLAG('P')) /* post restriction? */