diff --git a/src/modules/api/submodules/userManagement.ts b/src/modules/api/submodules/userManagement.ts index 49808ca..b7d4dd5 100644 --- a/src/modules/api/submodules/userManagement.ts +++ b/src/modules/api/submodules/userManagement.ts @@ -6,12 +6,11 @@ import { Request, SubmoduleData, User } from '../../../types/basicTypes' import dbtools from '../../../utils/dbtools' const minimumAlowwedSessions = 2 // how many sessions are allowed for a user -const addPWPerDay = 3 // every x day a user can give a pw -const maxPWCount = 6 // maximum pw give opportunities a user can have at once -const addPWCount = 1 // how many pw gen opportunities to add each time -const daysAfterUserGetsPWs = 5 // days after user gets pw-s const usersDbBackupPath = 'data/dbs/backup' +const maxPWCount = 3 +const daysAfterUserGetsPWs = 7 // days after user gets pw-s + function BackupDB(usersDbBackupPath, userDB) { logger.Log('Backing up auth DB ...') utils.CreatePath(usersDbBackupPath, true) @@ -49,8 +48,6 @@ function setup(data: SubmoduleData): any { requestedPWS: user.pwRequestCount, maxPWCount: maxPWCount, daysAfterUserGetsPWs: daysAfterUserGetsPWs, - addPWPerDay: addPWPerDay, - addPWCount: addPWCount, dayDiff: getDayDiff(user.created), userCount: dbtools.TableInfo(userDB, 'users').dataCount, }) @@ -106,8 +103,6 @@ function setup(data: SubmoduleData): any { requestedPWS: requestingUser.pwRequestCount, maxPWCount: maxPWCount, daysAfterUserGetsPWs: daysAfterUserGetsPWs, - addPWPerDay: addPWPerDay, - addPWCount: addPWCount, dayDiff: getDayDiff(requestingUser.created), userCount: dbtools.TableInfo(userDB, 'users').dataCount, }) @@ -256,33 +251,50 @@ function setup(data: SubmoduleData): any { // FIXME: check this if this is legit and works logger.Log('Incrementing avaible PW-s ...') const users: Array = dbtools.SelectAll(userDB, 'users') + const day = new Date().getDay() - users.forEach((user) => { - if (user.avaiblePWRequests >= maxPWCount) { - return - } + if (day === 1) { + users.forEach((user) => { + const dayDiff = getDayDiff(user.created) + if (dayDiff < daysAfterUserGetsPWs) { + logger.Log( + `User #${user.id} is not registered long enough to get password ( ${dayDiff} days, ${daysAfterUserGetsPWs} needed)`, + logger.GetColor('cyan') + ) + return + } - const dayDiff = getDayDiff(user.created) - if (dayDiff < daysAfterUserGetsPWs) { logger.Log( - `User #${user.id} is not registered long enough to get password ( ${dayDiff} days, ${daysAfterUserGetsPWs} needed)`, + `Setting avaible PW-s for user #${user.id}: ${user.avaiblePWRequests} -> ${maxPWCount}`, logger.GetColor('cyan') ) - return - } - if (dayDiff % addPWPerDay === 0) { - logger.Log( - `Incrementing avaible PW-s for user #${user.id}: ${ - user.avaiblePWRequests - } -> ${user.avaiblePWRequests + addPWCount}`, - logger.GetColor('cyan') - ) dbtools.Update( userDB, 'users', { - avaiblePWRequests: user.avaiblePWRequests + addPWCount, + avaiblePWRequests: maxPWCount, + }, + { + id: user.id, + } + ) + }) + } + + users.forEach((user) => { + const dayDiff = getDayDiff(user.created) + if (dayDiff === daysAfterUserGetsPWs) { + logger.Log( + `Setting avaible PW-s for user #${user.id}: ${user.avaiblePWRequests} -> ${maxPWCount}`, + logger.GetColor('cyan') + ) + + dbtools.Update( + userDB, + 'users', + { + avaiblePWRequests: maxPWCount, }, { id: user.id,