mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
committed by
GitHub
parent
7d0ec72a0c
commit
2c5eceb0c1
@@ -1,14 +1,17 @@
|
||||
const path = require('path');
|
||||
const DB_PATH = path.dirname(require.main.filename) + '/db/users.json';
|
||||
const FileSync = require('lowdb/adapters/FileSync');
|
||||
const adapter = new FileSync(DB_PATH);
|
||||
const low = require('lowdb');
|
||||
const db = low(adapter);
|
||||
const hasher = require('../security/hash');
|
||||
const { nanoid } = require('nanoid');
|
||||
const jobStorage = require('./jobStorage');
|
||||
import { JSONFileSync } from 'lowdb/node';
|
||||
import { getDirName } from '../../utils.js';
|
||||
import * as hasher from '../security/hash.js';
|
||||
import { nanoid } from 'nanoid';
|
||||
import * as jobStorage from './jobStorage.js';
|
||||
import path from 'path';
|
||||
import LowdashAdapter from './LowDashAdapter.js';
|
||||
|
||||
db.defaults({
|
||||
const file = path.join(getDirName(), '../', 'db/users.json');
|
||||
const adapter = new JSONFileSync(file);
|
||||
const db = new LowdashAdapter(adapter);
|
||||
|
||||
db.read();
|
||||
db.data ||= {
|
||||
user: [
|
||||
//you probably want to change the default password ;)
|
||||
{
|
||||
@@ -20,11 +23,11 @@ db.defaults({
|
||||
isDemo: false,
|
||||
},
|
||||
],
|
||||
}).write();
|
||||
};
|
||||
|
||||
exports.getUsers = (withPassword) => {
|
||||
export const getUsers = (withPassword) => {
|
||||
const jobs = jobStorage.getJobs();
|
||||
return db
|
||||
return db.chain
|
||||
.get('user')
|
||||
.value()
|
||||
.map((user) => ({
|
||||
@@ -34,13 +37,12 @@ exports.getUsers = (withPassword) => {
|
||||
numberOfJobs: jobs.filter((job) => job.userId === user.id).length,
|
||||
}));
|
||||
};
|
||||
|
||||
exports.getUser = (id) => {
|
||||
export const getUser = (id) => {
|
||||
const jobs = jobStorage.getJobs();
|
||||
const user = db
|
||||
const user = db.chain
|
||||
.get('user')
|
||||
.value()
|
||||
.find((user) => user.id === id);
|
||||
.find((user) => user.id === id)
|
||||
.value();
|
||||
if (user == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -49,13 +51,11 @@ exports.getUser = (id) => {
|
||||
numberOfJobs: jobs.filter((job) => job.userId === user.id).length,
|
||||
};
|
||||
};
|
||||
|
||||
exports.upsertUser = ({ username, password, userId, isAdmin }) => {
|
||||
const user = db
|
||||
export const upsertUser = ({ username, password, userId, isAdmin }) => {
|
||||
const user = db.chain
|
||||
.get('user')
|
||||
.value()
|
||||
.filter((u) => u.id !== userId);
|
||||
|
||||
.filter((u) => u.id !== userId)
|
||||
.value();
|
||||
user.push({
|
||||
id: userId || nanoid(),
|
||||
username,
|
||||
@@ -63,21 +63,24 @@ exports.upsertUser = ({ username, password, userId, isAdmin }) => {
|
||||
password: hasher.hash(password),
|
||||
isAdmin,
|
||||
});
|
||||
|
||||
db.set('user', user).write();
|
||||
db.chain.set('user', user).value();
|
||||
db.write();
|
||||
};
|
||||
|
||||
exports.setLastLoginToNow = ({ userId }) => {
|
||||
db.get('user')
|
||||
export const setLastLoginToNow = ({ userId }) => {
|
||||
db.chain
|
||||
.get('user')
|
||||
.find((u) => u.id === userId)
|
||||
.assign({ lastLogin: Date.now() })
|
||||
.write();
|
||||
.value();
|
||||
db.write();
|
||||
};
|
||||
|
||||
exports.removeUser = (userId) => {
|
||||
const user = db.get('user').value();
|
||||
db.set(
|
||||
'user',
|
||||
user.filter((u) => u.id !== userId)
|
||||
).write();
|
||||
export const removeUser = (userId) => {
|
||||
const user = db.chain.get('user').value();
|
||||
db.chain
|
||||
.set(
|
||||
'user',
|
||||
user.filter((u) => u.id !== userId)
|
||||
)
|
||||
.value();
|
||||
db.write();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user