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){
|
||||
e.preventDefault();
|
||||
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 glob = require('glob');
|
||||
const mime = require('mime-type/with-db');
|
||||
const ObjectId = require('mongodb').ObjectID;
|
||||
const router = express.Router();
|
||||
|
||||
// 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
|
||||
router.post('/admin/settings/update', common.restrict, common.checkAccess, (req, res) => {
|
||||
let result = common.updateConfig(req.body);
|
||||
|
|
|
@ -30,6 +30,15 @@
|
|||
</div>
|
||||
{{/ifCond}}
|
||||
{{/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="pull-right">
|
||||
<button type="submit" class="btn btn-success">Update</button>
|
||||
|
|
Loading…
Reference in New Issue