added ability to set pin for settings. pin is md5'd by the backend

This commit is contained in:
Isaac Grynsztein
2020-03-13 02:20:07 -04:00
parent c752b13732
commit 91f6dbcb5b
16 changed files with 296 additions and 47 deletions

View File

@@ -9,6 +9,7 @@ var express = require("express");
var bodyParser = require("body-parser");
var archiver = require('archiver');
const low = require('lowdb')
var md5 = require('md5');
var URL = require('url').URL;
const shortid = require('shortid')
const url_api = require('url');
@@ -29,7 +30,8 @@ db.defaults(
video: []
},
configWriteFlag: false,
subscriptions: []
subscriptions: [],
pin_md5: ''
}).write();
// config values
@@ -1176,6 +1178,47 @@ app.post('/api/downloadArchive', async (req, res) => {
});
app.post('/api/isPinSet', async (req, res) => {
let stored_pin = db.get('pin_md5').value();
let is_set = false;
if (!stored_pin || stored_pin.length === 0) {
} else {
is_set = true;
}
res.send({
is_set: is_set
});
});
app.post('/api/setPin', async (req, res) => {
let unhashed_pin = req.body.pin;
let hashed_pin = md5(unhashed_pin);
db.set('pin_md5', hashed_pin).write();
res.send({
success: true
});
});
app.post('/api/checkPin', async (req, res) => {
let input_pin = req.body.input_pin;
let input_pin_md5 = md5(input_pin);
let stored_pin = db.get('pin_md5').value();
let successful = false;
if (input_pin_md5 === stored_pin) {
successful = true;
}
res.send({
success: successful
});
});
app.get('/api/video/:id', function(req , res){
var head;
let optionalParams = url_api.parse(req.url,true).query;

View File

@@ -19,7 +19,8 @@
"file_manager_enabled": true,
"allow_quality_select": true,
"download_only_mode": false,
"allow_multi_download_mode": true
"allow_multi_download_mode": true,
"settings_pin_required": false
},
"API": {
"use_youtube_API": false,

View File

@@ -19,7 +19,8 @@
"file_manager_enabled": true,
"allow_quality_select": true,
"download_only_mode": false,
"allow_multi_download_mode": true
"allow_multi_download_mode": true,
"settings_pin_required": false
},
"API": {
"use_youtube_API": false,

View File

@@ -60,6 +60,10 @@ let CONFIG_ITEMS = {
'key': 'ytdl_allow_multi_download_mode',
'path': 'YoutubeDLMaterial.Extra.allow_multi_download_mode'
},
'ytdl_settings_pin_required': {
'key': 'ytdl_settings_pin_required',
'path': 'YoutubeDLMaterial.Extra.settings_pin_required'
},
// API
'ytdl_use_youtube_api': {

View File

@@ -25,6 +25,7 @@
"exe": "^1.0.2",
"express": "^4.17.1",
"lowdb": "^1.0.0",
"md5": "^2.2.1",
"shortid": "^2.2.15",
"uuidv4": "^6.0.6",
"youtube-dl": "^3.0.2"