/** * Вывод формы авторизации пользователя */ function LoginForm() { global $REQUEST_URI, $AUTH_USER, $ADMIN_LANGUAGE, $ADMIN_TEMPLATE, $AUTH_PW; global $posting, $USER_LANG, $ADMIN_AUTHTYPE, $AUTHORIZATION_TYPE; global $SUB_FOLDER, $HTTP_ROOT_PATH; global $nc_core; if ($_REQUEST['AUTH_USER'] || $_REQUEST['AUTH_PW']) { $textinfo = CONTROL_AUTH_LOGIN_OR_PASSWORD_INCORRECT; } $m_auth = $nc_core->modules->get_by_keyword('auth'); // есть модуль ЛК $need_captcha = 0; // нужна ли каптча $login_en = 1; // доступна авторизация по логину $token_en = 0; // доступна авторизация по токену if ($m_auth) { $nc_auth = nc_auth::get_object(); $login_en = $nc_core->get_settings('authtype_admin', 'auth') & NC_AUTHTYPE_LOGIN; $token_en = $nc_auth->token_enabled(); $nc_auth_token = new nc_auth_token(); $nc_token_rand = $nc_auth_token->get_random_256(); $_SESSION['nc_token_rand'] = $nc_token_rand; $need_captcha = $nc_auth->need_captcha(); if ($nc_auth->is_invalid_captcha()) { $textinfo = NETCAT_MODULE_CAPTCHA_WRONG_CODE_SMALL; } } $lang = Language_Show(); $sellang = $_COOKIE['PHP_AUTH_LANG'] ? $_COOKIE['PHP_AUTH_LANG'] : $ADMIN_LANGUAGE; // селект с языком $lang_select = "<div class='nc-select nc--blocked'><select name='NEW_AUTH_LANG'>"; foreach ($lang as $val) { $lang_select .= "<option value='" . $val . "'" . ($val == $sellang ? " selected" : "") . ">" . $val . "</option>\n"; } $lang_select .= " </select><i class='nc-caret'></i></div>"; // сохранить логин пароль $loginsave = ''; if ($ADMIN_AUTHTYPE == 'manual' && $AUTHORIZATION_TYPE == 'cookie') { $loginsave = nc_admin_checkbox_simple('loginsave', '', CONTROL_AUTH_HTML_SAVELOGIN); } ?> <noscript><div style="font-weight: bold;"><?php echo CONTROL_AUTH_JS_REQUIRED; ?> </div></noscript> <?php if ($m_auth) { ?> <script type='text/javascript' src='<?php echo $SUB_FOLDER . $HTTP_ROOT_PATH . 'modules/auth/auth.js'; ?> '></script> <?php } ?> <script type='text/javascript'> function authCheckFields () { var authForm = document.getElementById('AUTH_FORM'); var login = document.getElementsByName('AUTH_USER'); var pass = document.getElementsByName('AUTH_PW'); switch (true) { case (login.value == '' && pass.value == ''): alert('<?php echo CONTROL_AUTH_FIELDS_NOT_EMPTY; ?> '); return false; break; case (login.value == ''): alert('<?php echo CONTROL_AUTH_LOGIN_NOT_EMPTY; ?> '); return false; break; default: return true; //authForm.submit(); } } $nc(function() { $nc('#AUTH_FORM').submit( function() { var login = $nc("input[name = 'AUTH_USER']").val(); var pass = $nc("input[name = 'AUTH_PW']").val(); if (!login && !pass) { alert('<?php echo CONTROL_AUTH_FIELDS_NOT_EMPTY; ?> '); return false; } if (!login) { alert('<?php echo CONTROL_AUTH_LOGIN_NOT_EMPTY; ?> '); return false; } return true; }); function place_footer() { var footer = $nc('.bottom_line'); var form = $nc('.content'); var body_height = $nc(document.body).height(); var form_bottom = form.offset().top + form.height(); footer.css({top:null, bottom:null}); if (form_bottom + footer.height() > body_height) { footer.css({top:form_bottom+'px'}); } else { footer.css({bottom:'0px'}); } } $nc(window).resize(place_footer); place_footer(); $nc('INPUT[name=AUTH_USER]').focus(); }); </script> <form action='<?php echo $REQUEST_URI; ?> ' method='post' name='AUTH_FORM' id='AUTH_FORM'> <input type='hidden' name='AuthPhase' value='1'> <table border='0' cellpadding='4' cellspacing='0' id="classical" style="display:none; margin:0 auto"> <tr> <td></td> <td class="nc-text-red"><?php echo $textinfo; ?> </td> </tr> <tr> <td><label><?php echo CONTROL_AUTH_HTML_LOGIN; ?> </label></td> <td><?php echo nc_admin_input_simple('AUTH_USER', stripcslashes($AUTH_USER), 32, "", "id='AUTH_USER' class='nc--blocked' maxlength='255'"); ?> </td> </tr> <tr> <td><label><?php echo CONTROL_AUTH_HTML_PASSWORD; ?> </label></td> <td><?php echo nc_admin_input_password('AUTH_PW', stripcslashes($AUTH_PW), 32, "", "class='nc--blocked' maxlength='255'"); ?> </td> </tr> <tr> <td><label><?php echo CONTROL_AUTH_HTML_LANG; ?> </label></td> <td><?php echo $lang_select; ?> </td> </tr> <?php if ($need_captcha) { ?> <tr> <td></td> <td class="captcha"><?php echo nc_captcha_formfield(); ?> </td> </tr> <tr> <td><?php echo NETCAT_MODERATION_CAPTCHA_SMALL; ?> </td> <td><?php echo nc_admin_input_simple('nc_captcha_code', '', 32, "maxlength='255'"); ?> </td> </tr> <?php } ?> <tr> <td rowspan='2'><?php echo $icon; ?> </td> <td><?php echo $loginsave; ?> </td> </tr> <tr> <td> <button type='submit' class="nc-btn nc--blue"><?php echo CONTROL_AUTH_HTML_AUTH; ?> </button> <span id='menu'></span> <?php if ($posting && $REQUEST_URI != $REQUESTED_FROM) { echo "<br/><a href='" . $REQUESTED_FROM . "' class='relogin'>" . CONTROL_AUTH_HTML_BACK . "</a>"; } ?> </td> </tr> </table> <!-- форма авторизация по токену --> <?php /*$token_en=1;*/ if ($token_en) { ?> <table border='0' cellpadding='4' cellspacing='0' id="token" style="display:none; margin:0 auto"> <tr> <td colspan="2"> <div id='tokeninfo' class="nc-alert nc--red"></div> </td> </tr> <tr><td colspan="2"> <div id='nc_token_plugin_wrapper'></div> <script> $nc("#nc_token_plugin_wrapper").append("<object id='nc_token_plugin' type='application/x-rutoken' width='0' height='0'></object>"); </script> <input type='hidden' value='' id='nc_token_signature' name='nc_token_signature'/> </td></tr> <tr> <td><label><?php echo CONTROL_AUTH_HTML_LOGIN; ?> </label></td> <td><div class='nc-select nc--blocked'><select name='nc_token_login' id='nc_token_login'></select><i class='nc-caret'></i></div></td> </tr> <tr> <td><label><?php echo CONTROL_AUTH_HTML_LANG; ?> </label></td> <td><?php echo $lang_select; ?> </td> </tr> <tr> <td> </td> <td colspan="2"> <button onclick='nc_token_sign(); return false;' type='submit' class="nc-btn nc--blue"><?php echo CONTROL_AUTH_HTML_AUTH; ?> </button> </td> </tr> </table> <?php } ?> </form> <script type='text/javascript'> var authForm = document.getElementById('AUTH_FORM'); // перенаправлять туда, куда пользователь хотел зайти authForm.action += window.location.hash; function show_token () { <?php if ($login_en && $token_en) { ?> $nc("#menu").html("<a href='#' class='nc-btn nc--small' onclick='show_classical(); return false;'><?php echo NETCAT_AUTH_TYPE_LOGINPASSWORD; ?> </a>"); <?php } ?> $nc("#classical").hide(); $nc("#token").show(); $nc("#classical :input").attr('disabled', true); $nc("#token :input").removeAttr('disabled'); $nc('#tokeninfo').hide(); if ( !nc_token_obj.load() ) { $nc('#tokeninfo').html("<?php echo CONTROL_AUTH_USB_TOKEN_NOT_INSERTED; ?> "); $nc('#tokeninfo').show(); } } function show_classical () { <?php if ($login_en && $token_en) { ?> $nc("#menu").html("<button type='button' class='nc-btn nc--right nc--small' onclick='show_token()' ><?php echo NETCAT_AUTH_TYPE_TOKEN; ?> </button>"); <?php } ?> $nc("#classical").show(); $nc("#token").hide(); $nc("#classical :input").removeAttr('disabled'); $nc("#token :input").attr('disabled', true); } <?php if ($m_auth) { echo "nc_token_obj = new nc_auth_token ( {'randnum' : '" . $nc_token_rand . "'}); "; } ?> function nc_token_sign ( ) { $nc('#tokeninfot').hide(); err_text = { 1: "<?php echo CONTROL_AUTH_TOKEN_PLUGIN_DONT_INSTALL; ?> ", 2: "<?php echo CONTROL_AUTH_USB_TOKEN_NOT_INSERTED; ?> ", 3: "<?php echo CONTROL_AUTH_PIN_INCORRECT; ?> ", 4: "<?php echo CONTROL_AUTH_KEYPAIR_INCORRECT; ?> "}; if ( (err_num = nc_token_obj.sign()) ) { $nc('#tokeninfo').html(err_text[err_num]); $nc('#tokeninfo').show(); } } <?php echo $login_en ? "show_classical();" : "show_token();"; ?> </script> <?php }