Salt and hash passwords

This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2019-03-27 02:17:48 -07:00
1 parent 88ad9451e2
commit d5b194b9e8
13 files changed
+410 -83

No files matched your search

+30 -6
View File
@@ -2,6 +2,8 @@ import { exec } from "child_process";
import { ObjectID } from "mongodb";
import * as db from "./db";
import { del } from "../cache";
import { getUsers } from "../local-cache";
import { hashPassword } from "../auth";
import {
insertTasks,
watchTask,
@@ -186,13 +188,21 @@ export function putResource(resource, id, data): Promise<void> {
return new Promise((resolve, reject) => {
let promise;
if (resource === "presets") promise = db.putPreset(id, data);
else if (resource === "provisions") promise = db.putProvision(id, data);
else if (resource === "virtualParameters")
if (resource === "presets") {
promise = db.putPreset(id, data);
} else if (resource === "provisions") {
promise = db.putProvision(id, data);
} else if (resource === "virtualParameters") {
promise = db.putVirtualParameter(id, data);
else if (resource === "config") promise = db.putConfig(id, data);
else if (resource === "permissions") promise = db.putPermission(id, data);
else if (resource === "users") promise = db.putUser(id, data);
} else if (resource === "config") {
promise = db.putConfig(id, data);
} else if (resource === "permissions") {
promise = db.putPermission(id, data);
} else if (resource === "users") {
delete data.password;
delete data.salt;
promise = db.putUser(id, data);
}
promise
.then(() => {
@@ -204,3 +214,17 @@ export function putResource(resource, id, data): Promise<void> {
.catch(reject);
});
}
export function authSimple(snapshot, username, password): Promise<string[]> {
return new Promise((resolve, reject) => {
const users = getUsers(snapshot);
const user = users[username];
if (!user || !user.password) return void resolve(null);
hashPassword(password, user.salt)
.then(hash => {
if (hash === user.password) resolve(user.roles);
else resolve(null);
})
.catch(reject);
});
}