aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/UserManager.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2024-05-14 23:15:24 -0400
committerbobzel <zzzman@gmail.com>2024-05-14 23:15:24 -0400
commit3534aaf88a3c30a474b3b5a5b7f04adfe6f15fac (patch)
tree47fb7a8671b209bd4d76e0f755a5b035c6936607 /src/server/ApiManagers/UserManager.ts
parent87bca251d87b5a95da06b2212400ce9427152193 (diff)
parent5cb7ad90e120123ca572e8ef5b1aa6ca41581134 (diff)
Merge branch 'restoringEslint' into sarah-ai-visualization
Diffstat (limited to 'src/server/ApiManagers/UserManager.ts')
-rw-r--r--src/server/ApiManagers/UserManager.ts60
1 files changed, 33 insertions, 27 deletions
diff --git a/src/server/ApiManagers/UserManager.ts b/src/server/ApiManagers/UserManager.ts
index 0431b9bcf..b587340e2 100644
--- a/src/server/ApiManagers/UserManager.ts
+++ b/src/server/ApiManagers/UserManager.ts
@@ -1,16 +1,14 @@
-import ApiManager, { Registration } from './ApiManager';
-import { Method } from '../RouteManager';
-import { Database } from '../database';
-import { msToTime } from '../ActionUtilities';
import * as bcrypt from 'bcrypt-nodejs';
+import { check, validationResult } from 'express-validator';
+import { Utils } from '../../Utils';
import { Opt } from '../../fields/Doc';
-import { WebSocket } from '../websocket';
-import { resolvedPorts } from '../server_Initialization';
import { DashVersion } from '../../fields/DocSymbols';
-import { Utils } from '../../Utils';
-import { check, validationResult } from 'express-validator';
+import { msToTime } from '../ActionUtilities';
+import { Method } from '../RouteManager';
+import { resolvedPorts, socketMap, timeMap } from '../SocketData';
+import { Database } from '../database';
+import ApiManager, { Registration } from './ApiManager';
-export const timeMap: { [id: string]: number } = {};
interface ActivityUnit {
user: string;
duration: number;
@@ -32,9 +30,10 @@ export default class UserManager extends ApiManager {
method: Method.POST,
subscription: '/setCacheDocumentIds',
secureHandler: async ({ user, req, res }) => {
+ const userModel = user;
const result: any = {};
- user.cacheDocumentIds = req.body.cacheDocumentIds;
- user.save().then(undefined, err => {
+ userModel.cacheDocumentIds = req.body.cacheDocumentIds;
+ userModel.save().then(undefined, (err: any) => {
if (err) {
result.error = [{ msg: 'Error while caching documents' }];
}
@@ -90,17 +89,19 @@ export default class UserManager extends ApiManager {
method: Method.POST,
subscription: '/internalResetPassword',
secureHandler: async ({ user, req, res }) => {
+ const userModel = user;
const result: any = {};
- const { curr_pass, new_pass, new_confirm } = req.body;
+ // eslint-disable-next-line camelcase
+ const { curr_pass, new_pass } = req.body;
// perhaps should assert whether curr password is entered correctly
const validated = await new Promise<Opt<boolean>>(resolve => {
- bcrypt.compare(curr_pass, user.password, (err, passwords_match) => {
- if (err || !passwords_match) {
+ bcrypt.compare(curr_pass, userModel.password, (err, passwordsMatch) => {
+ if (err || !passwordsMatch) {
result.error = [{ msg: 'Incorrect current password' }];
res.send(result);
resolve(undefined);
} else {
- resolve(passwords_match);
+ resolve(passwordsMatch);
}
});
});
@@ -111,10 +112,11 @@ export default class UserManager extends ApiManager {
check('new_pass', 'Password must be at least 4 characters long')
.run(req)
- .then(chcekcres => console.log(chcekcres)); //.len({ min: 4 });
+ .then(chcekcres => console.log(chcekcres)); // .len({ min: 4 });
check('new_confirm', 'Passwords do not match')
.run(req)
- .then(theres => console.log(theres)); //.equals(new_pass);
+ .then(theres => console.log(theres)); // .equals(new_pass);
+ // eslint-disable-next-line camelcase
if (curr_pass === new_pass) {
result.error = [{ msg: 'Current and new password are the same' }];
}
@@ -125,12 +127,13 @@ export default class UserManager extends ApiManager {
// will only change password if there are no errors.
if (!result.error) {
- user.password = new_pass;
- user.passwordResetToken = undefined;
- user.passwordResetExpires = undefined;
+ // eslint-disable-next-line camelcase
+ userModel.password = new_pass;
+ userModel.passwordResetToken = undefined;
+ userModel.passwordResetExpires = undefined;
}
- user.save().then(undefined, err => {
+ userModel.save().then(undefined, err => {
if (err) {
result.error = [{ msg: 'Error while saving new password' }];
}
@@ -149,13 +152,16 @@ export default class UserManager extends ApiManager {
const activeTimes: ActivityUnit[] = [];
const inactiveTimes: ActivityUnit[] = [];
+ // eslint-disable-next-line no-restricted-syntax
for (const user in timeMap) {
- const time = timeMap[user];
- const socketPair = Array.from(WebSocket.socketMap).find(pair => pair[1] === user);
- if (socketPair && !socketPair[0].disconnected) {
- const duration = now - time;
- const target = duration / 1000 < 60 * 5 ? activeTimes : inactiveTimes;
- target.push({ user, duration });
+ if (Object.prototype.hasOwnProperty.call(timeMap, user)) {
+ const time = timeMap[user];
+ const socketPair = Array.from(socketMap).find(pair => pair[1] === user);
+ if (socketPair && !socketPair[0].disconnected) {
+ const duration = now - time;
+ const target = duration / 1000 < 60 * 5 ? activeTimes : inactiveTimes;
+ target.push({ user, duration });
+ }
}
}