diff --git a/src/sbbs3/useredit.cpp b/src/sbbs3/useredit.cpp index ecc78597fc338a4c37f5f198e2958b8c5082844a..1fe1a6169882dcd9ac5995f8843ec21d88bb47b7 100644 --- a/src/sbbs3/useredit.cpp +++ b/src/sbbs3/useredit.cpp @@ -236,7 +236,8 @@ void sbbs_t::useredit(int usernumber) if(c=='?') { menu("exempt"); continue; } - if(!(useron.exempt&FLAG(c)) && console&CON_R_INPUT) + if(user.level>useron.level + && !(useron.exempt&FLAG(c)) && console&CON_R_INPUT) continue; user.exempt^=FLAG(c); putuserrec(&cfg,user.number,U_EXEMPT,8,ultoa(user.exempt,tmp,16)); } @@ -269,7 +270,7 @@ void sbbs_t::useredit(int usernumber) if(isdigit(c)) { i=c&0xf; continue; } - if(console & CON_R_INPUT) + if(user.level>useron.level && console&CON_R_INPUT) switch(i) { case 1: if(!(useron.flags1&FLAG(c))) @@ -407,8 +408,7 @@ void sbbs_t::useredit(int usernumber) case 'Q': CLS; sys_status&=~SS_INUEDIT; - if(ar) - FREE(ar); + FREE_AR(ar); /* assertion here */ return; case 'R': bputs(text[EnterYourRealName]); @@ -570,8 +570,7 @@ void sbbs_t::useredit(int usernumber) bputs(text[SearchStringPrompt]); if(getstr(artxt,40,K_UPPER|K_LINE)) stype=SEARCH_ARS; - if(ar && ar[0]) - FREE(ar); + FREE_AR(ar); ar=arstr(NULL,artxt,&cfg); break; case '{': @@ -616,8 +615,11 @@ void sbbs_t::useredit(int usernumber) if(user.number==1) user.number=lastuser(&cfg); else user.number--; - break; } } + break; + } /* switch */ + } /* while */ sys_status&=~SS_INUEDIT; + FREE_AR(ar); } /****************************************************************************/