diff --git a/src/sbbs3/logon.cpp b/src/sbbs3/logon.cpp index ba91167578278724d969a41cf09489c11d8207a3..c2ef01f840ee61d27f880e8af2b1f66989a0aadd 100644 --- a/src/sbbs3/logon.cpp +++ b/src/sbbs3/logon.cpp @@ -68,19 +68,7 @@ bool sbbs_t::logon() client_on(client_socket,&client,TRUE /* update */); #ifdef JAVASCRIPT - if(js_cx!=NULL) { - /* user object */ - if(js_CreateUserObject(js_cx, js_glob, &cfg, "user", useron.number)==NULL) - lprintf("!JavaScript ERROR creating user object"); - - /* file_area object */ - if(js_CreateFileAreaObject(js_cx, js_glob, &cfg, &useron, "")==NULL) - lprintf("!JavaScript ERROR creating file_area object"); - - /* msg_area object */ - if(js_CreateMsgAreaObject(js_cx, js_glob, &cfg, &useron, subscan)==NULL) - lprintf("!JavaScript ERROR creating msg_area object"); - } + js_create_user_objects(); #endif if(useron.rest&FLAG('Q')) diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 7a3938b231e6397b5f8b82677dfb2ca96f8b383b..38afdc7122cde43b42f24e732eba0a53e7826937 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -556,6 +556,24 @@ bool sbbs_t::js_init() return(true); } +void sbbs_t::js_create_user_objects(void) +{ + if(js_cx==NULL) + return; + + /* user object */ + if(js_CreateUserObject(js_cx, js_glob, &cfg, "user", useron.number)==NULL) + lprintf("!JavaScript ERROR creating user object"); + + /* file_area object */ + if(js_CreateFileAreaObject(js_cx, js_glob, &cfg, &useron, "")==NULL) + lprintf("!JavaScript ERROR creating file_area object"); + + /* msg_area object */ + if(js_CreateMsgAreaObject(js_cx, js_glob, &cfg, &useron, subscan)==NULL) + lprintf("!JavaScript ERROR creating msg_area object"); +} + #endif /* JAVASCRIPT */ #ifdef _WINSOCKAPI_ diff --git a/src/sbbs3/newuser.cpp b/src/sbbs3/newuser.cpp index ce02b187c4894161b716e3369771ae866b236cc4..18e537960217f05292f7af589b7b89761384ec22 100644 --- a/src/sbbs3/newuser.cpp +++ b/src/sbbs3/newuser.cpp @@ -483,6 +483,10 @@ void sbbs_t::newuser() sprintf(str,"%suser/%04u.sig",cfg.data_dir,useron.number); /* delete signature */ remove(str); +#ifdef JAVASCRIPT + js_create_user_objects(); +#endif + if(cfg.newuser_mod[0]) exec_bin(cfg.newuser_mod,&main_csi); user_event(EVENT_NEWUSER); diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index fa50ab741aa5af1dfe4937a576ddbc9070bde627..95aeb4f2b17cb18ba7122efd86508ce76416d3a8 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -186,6 +186,7 @@ public: ulong js_loop; long js_execfile(char *fname); bool js_init(void); + void js_create_user_objects(void); #endif