Generate API keys in admin UI
parent
aabf47fc2d
commit
da38fb6076
|
@ -204,6 +204,21 @@ $(document).ready(function (){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(document).on('click', '#btnGenerateAPIkey', function(e){
|
||||||
|
e.preventDefault();
|
||||||
|
$.ajax({
|
||||||
|
method: 'POST',
|
||||||
|
url: '/admin/createApiKey'
|
||||||
|
})
|
||||||
|
.done(function(msg){
|
||||||
|
$('#apiKey').val(msg.apiKey);
|
||||||
|
showNotification(msg.message, 'success', true);
|
||||||
|
})
|
||||||
|
.fail(function(msg){
|
||||||
|
showNotification(msg.responseJSON.message, 'danger');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
$(document).on('click', '.product_opt_remove', function(e){
|
$(document).on('click', '.product_opt_remove', function(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var name = $(this).closest('li').find('.opt-name').html();
|
var name = $(this).closest('li').find('.opt-name').html();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -8,6 +8,7 @@ const path = require('path');
|
||||||
const multer = require('multer');
|
const multer = require('multer');
|
||||||
const glob = require('glob');
|
const glob = require('glob');
|
||||||
const mime = require('mime-type/with-db');
|
const mime = require('mime-type/with-db');
|
||||||
|
const ObjectId = require('mongodb').ObjectID;
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
// Admin section
|
// Admin section
|
||||||
|
@ -166,6 +167,27 @@ router.get('/admin/settings', common.restrict, (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// settings update
|
||||||
|
router.post('/admin/createApiKey', common.restrict, common.checkAccess, async (req, res) => {
|
||||||
|
const db = req.app.db;
|
||||||
|
let result = await db.users.findOneAndUpdate({
|
||||||
|
_id: ObjectId(req.session.userId),
|
||||||
|
isAdmin: true
|
||||||
|
}, {
|
||||||
|
$set: {
|
||||||
|
apiKey: new ObjectId()
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
returnOriginal: false
|
||||||
|
});
|
||||||
|
|
||||||
|
if(result.value && result.value.apiKey){
|
||||||
|
res.status(200).json({message: 'API Key generated', apiKey: result.value.apiKey});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
res.status(400).json({message: 'Failed to generate API Key'});
|
||||||
|
});
|
||||||
|
|
||||||
// settings update
|
// settings update
|
||||||
router.post('/admin/settings/update', common.restrict, common.checkAccess, (req, res) => {
|
router.post('/admin/settings/update', common.restrict, common.checkAccess, (req, res) => {
|
||||||
let result = common.updateConfig(req.body);
|
let result = common.updateConfig(req.body);
|
||||||
|
|
|
@ -30,6 +30,15 @@
|
||||||
</div>
|
</div>
|
||||||
{{/ifCond}}
|
{{/ifCond}}
|
||||||
{{/isAnAdmin}}
|
{{/isAnAdmin}}
|
||||||
|
<div class="form-group">
|
||||||
|
<label>API Key</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" id="apiKey" value="{{user.apiKey}}" aria-label="..." readonly>
|
||||||
|
<div class="input-group-btn">
|
||||||
|
<button id="btnGenerateAPIkey" class="btn btn-success">Generate</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><br/>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<button type="submit" class="btn btn-success">Update</button>
|
<button type="submit" class="btn btn-success">Update</button>
|
||||||
|
|
Loading…
Reference in New Issue