@@ -4,9 +4,10 @@ const mapValues = require('lodash/mapValues');
44const redisKey = require ( '../utils/key.js' ) ;
55const { getInternalData } = require ( '../utils/userData' ) ;
66const handlePipeline = require ( '../utils/pipelineError.js' ) ;
7+ const UserMetadata = require ( '../utils/metadata/user' ) ;
8+
79const {
8- USERS_DATA , USERS_METADATA ,
9- USERS_BANNED_FLAG , USERS_TOKENS , USERS_BANNED_DATA ,
10+ USERS_DATA , USERS_BANNED_FLAG , USERS_TOKENS , USERS_BANNED_DATA ,
1011} = require ( '../constants.js' ) ;
1112
1213// helper
@@ -25,26 +26,30 @@ function lockUser({
2526 remoteip : remoteip || '' ,
2627 } ,
2728 } ;
29+ const pipeline = redis . pipeline ( ) ;
30+ const userMetadata = new UserMetadata ( pipeline ) ;
31+
32+ pipeline . hset ( redisKey ( id , USERS_DATA ) , USERS_BANNED_FLAG , 'true' ) ;
33+ // set .banned on metadata for filtering & sorting users by that field
34+ userMetadata . updateMulti ( id , mapValues ( data , stringify ) , defaultAudience ) ;
35+ pipeline . del ( redisKey ( id , USERS_TOKENS ) ) ;
2836
29- return redis
30- . pipeline ( )
31- . hset ( redisKey ( id , USERS_DATA ) , USERS_BANNED_FLAG , 'true' )
32- // set .banned on metadata for filtering & sorting users by that field
33- . hmset ( redisKey ( id , USERS_METADATA , defaultAudience ) , mapValues ( data , stringify ) )
34- . del ( redisKey ( id , USERS_TOKENS ) )
35- . exec ( ) ;
37+ return pipeline . exec ( ) ;
3638}
3739
3840function unlockUser ( { id } ) {
3941 const { redis, config } = this ;
4042 const { jwt : { defaultAudience } } = config ;
43+ const pipeline = redis . pipeline ( ) ;
44+ const userMetadata = new UserMetadata ( pipeline ) ;
4145
42- return redis
43- . pipeline ( )
44- . hdel ( redisKey ( id , USERS_DATA ) , USERS_BANNED_FLAG )
45- // remove .banned on metadata for filtering & sorting users by that field
46- . hdel ( redisKey ( id , USERS_METADATA , defaultAudience ) , 'banned' , USERS_BANNED_DATA )
47- . exec ( ) ;
46+ pipeline . hdel ( redisKey ( id , USERS_DATA ) , USERS_BANNED_FLAG ) ;
47+ // remove .banned on metadata for filtering & sorting users by that field
48+ userMetadata . delete ( id , [
49+ 'banned' ,
50+ USERS_BANNED_DATA ,
51+ ] , defaultAudience ) ;
52+ return pipeline . exec ( ) ;
4853}
4954
5055/**
0 commit comments