@@ -42,6 +42,11 @@ var T_USER = {};
4242var SID ;
4343var WDIC = { } ;
4444
45+ /* Toggle Guest Entrance & User Kick [S] */
46+ var allowEnter = GLOBAL . ALLOW_GUEST_ENTRANCE ;
47+ var allowGuestEnter = true ;
48+ /* Toggle Guest Entrance & User Kick [E] */
49+
4550const DEVELOP = exports . DEVELOP = global . test || false ;
4651const GUEST_PERMISSION = exports . GUEST_PERMISSION = {
4752 'create' : true ,
@@ -167,10 +172,57 @@ function processAdmin(id, value){
167172 }
168173 return null ;
169174 /* Enhanced User Block System [E] */
175+ /* Toggle Guest Entrance & User Kick [S] */
176+ case 'allowguestenter' :
177+ if ( allowGuestEnter ) {
178+ allowGuestEnter = false ;
179+ JLog . info ( `[Entrance] ${ id } 님이 손님 계정의 출입을 비활성화했습니다.` ) ;
180+ } else {
181+ allowGuestEnter = true ;
182+ JLog . info ( `[Entrance] ${ id } 님이 손님 계정의 출입을 활성화했습니다.` ) ;
183+ }
184+ return null ;
185+ case 'allowenter' :
186+ if ( allowEnter ) {
187+ allowEnter = false ;
188+ JLog . info ( `[Entrance] ${ id } 님이 사용자의 출입을 비활성화했습니다.` ) ;
189+ } else {
190+ allowEnter = true ;
191+ JLog . info ( `[Entrance] ${ id } 님이 사용자의 출입을 허용했습니다.` ) ;
192+ }
193+ return null ;
194+ case 'kickguest' :
195+ try {
196+ Object . keys ( DIC ) . forEach ( o => {
197+ let user = DIC [ o ] ;
198+ if ( ( user && user . guest && user . place == 0 ) || ( user && user . guest && ( value == 'all' ) ) ) {
199+ user . sendError ( 457 ) ;
200+ user . socket . close ( ) ;
201+ }
202+ } ) ;
203+ } catch ( e ) {
204+ JLog . error ( e ) ;
205+ }
206+ return null ;
207+ case 'kickuser' :
208+ try {
209+ Object . keys ( DIC ) . forEach ( o => {
210+ let user = DIC [ o ] ;
211+ if ( ( user && user . place == 0 ) || ( user && ( value == 'all' ) ) ) {
212+ user . sendError ( 457 ) ;
213+ user . socket . close ( ) ;
214+ }
215+ } ) ;
216+ } catch ( e ) {
217+ JLog . error ( e ) ;
218+ }
219+ return null ;
220+ /* Toggle Guest Entrance & User Kick [E] */
170221 }
171222 return value ;
172223}
173224/* Enhanced User Block System [S] */
225+
174226function addDate ( num ) {
175227 if ( isNaN ( num ) ) return ;
176228 return Date . now ( ) + num * 24 * 60 * 60 * 1000 ;
@@ -386,12 +438,26 @@ exports.init = function(_SID, CHAN){
386438 $c . socket . close ( ) ;
387439 return ;
388440 }
441+ /* Toggle Guest Entrance & User Kick [S] */
442+ if ( ! allowEnter && ! $c . admin ) {
443+ $c . sendError ( 500 ) ;
444+ $c . socket . close ( ) ;
445+ return ;
446+ }
447+ /* Toggle Guest Entrance & User Kick [E] */
389448 if ( $c . guest ) {
390449 if ( SID != "0" ) {
391450 $c . sendError ( 402 ) ;
392451 $c . socket . close ( ) ;
393452 return ;
394453 }
454+ /* Toggle Guest Entrance & User Kick [S] */
455+ if ( ! allowGuestEnter ) {
456+ $c . sendError ( 456 ) ;
457+ $c . socket . close ( ) ;
458+ return ;
459+ }
460+ /* Toggle Guest Entrance & User Kick [E] */
395461 if ( KKuTu . NIGHT ) {
396462 $c . sendError ( 440 ) ;
397463 $c . socket . close ( ) ;
0 commit comments