Add deleteDevice function on delete buttons click event (#1386)

This commit is contained in:
Christophe Maudoux 2018-04-02 20:21:51 +02:00
parent d81ada7d91
commit 806aa5fd87
4 changed files with 125 additions and 2 deletions

View File

@ -0,0 +1,45 @@
###
LemonLDAP::NG 2F registration script
###
setMsg = (msg, level) ->
$('#msg').html window.translate msg
$('#color').removeClass 'message-positive message-warning alert-success alert-warning'
$('#color').addClass "message-#{level}"
level = 'success' if level == 'positive'
$('#color').addClass "alert-#{level}"
displayError = (j, status, err) ->
console.log 'Error', err
res = JSON.parse j.responseText
if res and res.error
res = res.error.replace /.* /, ''
console.log 'Returned error', res
setMsg res, 'warning'
# Unregistration function (launched by "unregister" button)
delete2F = (device) ->
if device == 'U2F'
device = 'u'
else if device == 'UBK'
device = 'yubikey'
else if device == 'TOTP'
device = 'totp'
else setMsg 'u2fFailed', 'warning'
$.ajax
type: "POST"
url: "#{portal}2fregisters/#{device}/delete"
data: {}
dataType: 'json'
error: displayError
success: (resp) ->
if resp.error
setMsg 'u2fFailed', 'warning'
else if resp.result
setMsg 'yourKeyIsUnregistered', 'positive'
error: displayError
# Register "click" events
$(document).ready ->
$('body').on 'click', '.btn-danger', () -> delete2F ( $(this).attr 'device' )
$('#goback').attr 'href', portal

View File

@ -0,0 +1,65 @@
// Generated by CoffeeScript 1.9.3
/*
LemonLDAP::NG 2F registration script
*/
(function() {
var delete2F, displayError, setMsg;
setMsg = function(msg, level) {
$('#msg').html(window.translate(msg));
$('#color').removeClass('message-positive message-warning alert-success alert-warning');
$('#color').addClass("message-" + level);
if (level === 'positive') {
level = 'success';
}
return $('#color').addClass("alert-" + level);
};
displayError = function(j, status, err) {
var res;
console.log('Error', err);
res = JSON.parse(j.responseText);
if (res && res.error) {
res = res.error.replace(/.* /, '');
console.log('Returned error', res);
return setMsg(res, 'warning');
}
};
delete2F = function(device) {
if (device === 'U2F') {
device = 'u';
} else if (device === 'UBK') {
device = 'yubikey';
} else if (device === 'TOTP') {
device = 'totp';
} else {
setMsg('u2fFailed', 'warning');
}
return $.ajax({
type: "POST",
url: portal + "2fregisters/" + device + "/delete",
data: {},
dataType: 'json',
error: displayError,
success: function(resp) {
if (resp.error) {
return setMsg('u2fFailed', 'warning');
} else if (resp.result) {
return setMsg('yourKeyIsUnregistered', 'positive');
}
},
error: displayError
});
};
$(document).ready(function() {
$('body').on('click', '.btn-danger', function() {
return delete2F($(this).attr('device'));
});
return $('#goback').attr('href', portal);
});
}).call(this);

View File

@ -0,0 +1 @@
(function(){var b,a,c;c=function(d,e){$("#msg").html(window.translate(d));$("#color").removeClass("message-positive message-warning alert-success alert-warning");$("#color").addClass("message-"+e);if(e==="positive"){e="success"}return $("#color").addClass("alert-"+e)};a=function(e,d,g){var f;console.log("Error",g);f=JSON.parse(e.responseText);if(f&&f.error){f=f.error.replace(/.* /,"");console.log("Returned error",f);return c(f,"warning")}};b=function(d){if(d==="U2F"){d="u"}else{if(d==="UBK"){d="yubikey"}else{if(d==="TOTP"){d="totp"}else{c("u2fFailed","warning")}}}return $.ajax({type:"POST",url:portal+"2fregisters/"+d+"/delete",data:{},dataType:"json",error:a,success:function(e){if(e.error){return c("u2fFailed","warning")}else{if(e.result){return c("yourKeyIsUnregistered","positive")}}},error:a})};$(document).ready(function(){$("body").on("click",".btn-danger",function(){return b($(this).attr("device"))});return $("#goback").attr("href",portal)})}).call(this);

View File

@ -1,7 +1,14 @@
<TMPL_INCLUDE NAME="header.tpl">
<div class="container">
<div id="color" class="message message-positive alert"><span id="msg" trspan="choose2f"></span></div>
<!--
<div class="message message-positive alert" trspan="choose2f"></div>
-->
<TMPL_IF NAME="SFDEVICES">
<div class="alert alert-info">
<table class="table table-hover table-condensed table-responsive">
@ -16,9 +23,9 @@
<tbody>
<TMPL_LOOP NAME="SFDEVICES">
<tr>
<td class="align-middle" style="vertical-align: middle"><TMPL_VAR NAME="type"></td><td class="align-middle"><TMPL_VAR NAME="name"></td><td class="align-middle"><TMPL_VAR NAME="epoch"></td>
<td class="align-middle" ><TMPL_VAR NAME="type"></td><td class="align-middle"><TMPL_VAR NAME="name"></td><td class="align-middle"><TMPL_VAR NAME="epoch"></td>
<td>
<span id="unregister" class="btn btn-danger" role="button">
<span id="delete" device='<TMPL_VAR NAME="type">' epoch='<TMPL_VAR NAME="epoch">' class="btn btn-danger" role="button">
<span class="glyphicon glyphicon-minus-sign"></span>&nbsp;
<span trspan="unregister">Unregister</span>
</span>
@ -48,5 +55,10 @@
</a>
</div>
<!-- //if:jsminified
<script type="text/javascript" src="<TMPL_VAR NAME="STATIC_PREFIX">/common/js/2fregistration.min.js"></script>
//else -->
<script type="text/javascript" src="<TMPL_VAR NAME="STATIC_PREFIX">/common/js/2fregistration.js"></script>
<!-- //endif -->
<TMPL_INCLUDE NAME="footer.tpl">