You are here

public static function miniorange_saml_sp_registration::miniorange_otp in SAML SP 2.0 Single Sign On (SSO) - SAML Service Provider 8

4 calls to miniorange_saml_sp_registration::miniorange_otp()
miniorange_saml_sp_registration::miniorange_saml_register_popup in src/miniorange_saml_sp_registration.php
Utilities::customer_setup_submit in src/Utilities.php
Utilities::saml_resend_otp in src/Utilities.php
Utilities::validate_otp_submit in src/Utilities.php

File

src/miniorange_saml_sp_registration.php, line 222

Class

miniorange_saml_sp_registration

Namespace

Drupal\miniorange_saml

Code

public static function miniorange_otp($wrong_otp = false, $resend_otp = false, $resend_limit = false) {
  global $base_url;
  $close_url = $base_url . '/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 = \Drupal::config('miniorange_saml.settings')
    ->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:darken(#e5e5e5, 50%);
			    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_limit == true) {
    ?>
                            <p class="popup-header" style="color: red;font-size: 11px;">An error occured while sending OTP. Please try after some time.</p>
                            <?php

  }
  elseif ($resend_otp == true) {
    ?>
                            <h4 class="popup-header">An OTP has been resend to <?php

    echo $admin_email;
    ?></h4>
                            <?php

  }
  elseif ($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">
                                <div>
                                	<?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" >Close</a>
                                        </form>
                                    </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        </body>
        </html>

        <?php

  exit;
}