function miniorange_otp in SAML SP 2.0 Single Sign On (SSO) - SAML Service Provider 7
4 calls to miniorange_otp()
- miniorange_saml_registration in ./
miniorange_saml_registration.php - Utilities::customer_setup_submit in includes/
Utilities.php - Utilities::saml_resend_otp in includes/
Utilities.php - Utilities::validate_otp_submit in includes/
Utilities.php
File
- ./
miniorange_saml_registration.php, line 218
Code
function miniorange_otp($wrong_otp = false, $resend_otp = false, $resend_limit = false) {
$b_url = Utilities::miniorange_get_baseURL();
$close_url = $b_url . '/?q=close_registration';
$myArray = array();
$myArray = $_POST;
$otp_form_id = isset($_POST['otp_form_id']) ? $_POST['otp_form_id'] : '';
$otp_form_token = isset($_POST['otp_form_token']) ? $_POST['otp_form_token'] : '';
$admin_email = variable_get('miniorange_saml_customer_admin_email', '');
?>
<html>
<head>
<title>Validate OTP</title>
<link href="https://fonts.googleapis.com/css?family=PT+Serif" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<style>
.saml_loader {
margin: auto;
display: block;
border: 5px solid #f3f3f3; /* Light grey */
border-top: 5px solid #3498db; /* Blue */
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.popup{
background: #fff;
padding: 4em 4em 2em;
max-width: 400px;
margin: 50px auto 0;
box-shadow: 0 0 1em #222;
border-radius: 2px;
}
.popup-header {
margin:0 0 50px 0;
padding:10px;
text-align:center;
font-size:16px;
color:darkslategray;
border-bottom:solid 1px #e5e5e5;
}
.popup-para {
position: relative;
}
.popup-input {
display: block;
box-sizing: border-box;
width: 90%;
outline: none;
margin:0;
}
.popup-input[type="text"],
.popup-input[type="password"] {
background: #fff;
border: 1px solid #dbdbdb;
font-size: 1.2em;
padding: 6px 0 0 5px;
border-radius: 4px;
}
.popup-input[type="text"]:focus,
.popup-input[type="password"]:focus {
background: #fff
}
.popup-label{
position: absolute;
left: -4px;
top: -25px;
color: #999;
font-size: 16px;
display: inline-block;
padding: 4px 10px;
font-weight: 400;
background-color: rgba(255,255,255,0);
@include transition(color .3s, top .3s, background-color .8s);
&.floatLabel{
top: -11px;
background-color: rgba(255,255,255,0.8);
font-size: 14px;
}
}
</style>
<script type="text/javascript">
$(document).ready(function () {
$("#myModal").modal({
backdrop: 'static',
keyboard: false
});
$('.button').click(function() {
document.getElementById('saml_loader').style.display = 'block';
});
if (document.getElementById("otp").value.length != 0) {
document.getElementById("validate").disabled = false;
}else{
document.getElementById("validate").disabled = true;
}
});
function check_empty(){
if (document.getElementById("otp").value.length == 0) {
document.getElementById("validate").disabled = true;
}else{
document.getElementById("validate").disabled = false;
}
}
</script>
</head>
<body>
<div class="container">
<div class="modal fade" id="myModal" role="dialog" style="background: rgba(0,0,0,0.1);">
<div class="modal-dialog" style="width: 500px;">
<div class="modal-content popup" style="border-radius: 20px;">
<?php
if ($resend_otp == true) {
?>
<h4 class="popup-header">An OTP has been resend to <?php
echo $admin_email;
?></h4>
<?php
}
?>
<?php
if ($resend_otp == false) {
?>
<h4 class="popup-header">Please enter the OTP sent to <?php
echo $admin_email;
?></h4>
<?php
}
?>
<form name="ff" method="post" action="" id="mo_otp_verify">
<?php
if ($wrong_otp == true) {
?>
<p class="popup-para">
<label for="otp" class="floatLabel popup-label">Enter OTP</label>
<input id="otp" name="otp" type="text" class="popup-input" style="border: 1px solid red !important;" onkeyup="check_empty();">
<p style="color: red;font-size: 11px;">Invalid OTP</p>
</p>
<?php
}
?>
<?php
if ($wrong_otp == false) {
?>
<p class="popup-para">
<label for="otp" class="floatLabel popup-label">Enter OTP</label>
<input id="otp" name="otp" type="text" class="popup-input" onkeyup="check_empty();">
</p>
<?php
}
?>
<br>
<input type="hidden" name="mo_otp_check" value="True">
<input type="hidden" name="otp_form_token" value=<?php
echo $otp_form_token;
?>>
<input type="hidden" name="otp_form_id" value= <?php
echo $otp_form_id;
?>>
<div class="modal-footer">
<input type="submit" class="btn btn-danger" id="validate" value="Validate" style="float:left;" onclick="" />
<div class="saml_loader" id="saml_loader" style="display: none;"></div>
</form>
<form name="f" method="post" action="" id="mo_otp_resend">
<input type="hidden" name="mo_otp_resend" value="True">
<input type="submit" class="btn btn-danger" id="resend" value="Resend" style="float:left;margin-left: 24px;" onclick="" />
<a type="button" href=<?php
echo $close_url;
?> class="btn btn-default" >Cancel</a>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
exit;
}