| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- Lib::loadClass('RouteBase');
- class Route_ChangePassword extends RouteBase {
- public function handleAuth() {
- if (!User::logged()) {
- User::authByRequest();
- }
- }
- public function defaultAction() {
- SE_Layout::gora();
- try {
- $action = V::get('action', 'showForm', $_POST);
- switch ($action) {
- case "showForm":
- self::showForm();
- break;
- case "changePassword":
- self::changePassword();
- break;
- default:
- throw new Exception("Błąd formularza");
- }
- } catch (Exception $e) {
- SE_Layout::alert('danger', $e->getMessage());
- }
- }
- private static function showForm() {
- ?>
- <div class="container">
- <div class="row">
- <div class="col-sm-12 text-center">
- <h2>Zmiana hasła</h2>
- </div>
- </div>
- <form method="post" id="passwordForm">
- <div class="row">
- <div class="col-sm-6 col-sm-offset-3">
- <div style="height:0px; overflow:hidden;">
- <input type="text" name="fake_safari_username">
- <input type="password" name="fake_safari_password">
- </div>
- <input type="password" class="input-lg form-control" name="oldPass" id="oldPass" placeholder="Stare hasło">
- </div>
- </div>
- <div class="row">
- <div class="col-sm-6 col-sm-offset-3">
- <br/>
- <input type="password" class="input-lg form-control" name="newPass" id="newPass" placeholder="Nowe hasło">
- <div class="row">
- <div class="col-sm-6">
- <span id="8char" class="glyphicon glyphicon-remove" style="color:#FF0004;"></span> 8 znaków długości<br>
- <span id="ucase" class="glyphicon glyphicon-remove" style="color:#FF0004;"></span> Jedna duża litera
- </div>
- <div class="col-sm-6">
- <span id="lcase" class="glyphicon glyphicon-remove" style="color:#FF0004;"></span> Jedna mała litera<br>
- <span id="num" class="glyphicon glyphicon-remove" style="color:#FF0004;"></span> Jedna cyfra
- </div>
- </div>
- <input type="password" class="input-lg form-control" name="newPassConfirm" id="newPassConfirm" placeholder="Powtórz nowe hasło">
- <div class="row">
- <div class="col-sm-12">
- <span id="pwmatch" class="glyphicon glyphicon-remove" style="color:#FF0004;"></span> Zgodność nowego hasła
- </div>
- </div>
- <br/>
- <button type="submit" id="submit" name="action" value="changePassword" class="col-xs-12 btn btn-primary btn-load btn-lg" disabled>Zmień hasło</button>
- </div>
- </div>
- </form>
- </div>
- <script language="JavaScript">
- <!--
- $("input[type=password]").keyup(function(){
- var ucase = new RegExp("[A-Z]+");
- var lcase = new RegExp("[a-z]+");
- var num = new RegExp("[0-9]+");
- ok = 0;
- if($("#oldPass").val().length > 0){
- ok++;
- }
-
- if($("#newPass").val().length >= 8){
- $("#8char").removeClass("glyphicon-remove");
- $("#8char").addClass("glyphicon-ok");
- $("#8char").css("color","#00A41E");
- ok++;
- }else{
- $("#8char").removeClass("glyphicon-ok");
- $("#8char").addClass("glyphicon-remove");
- $("#8char").css("color","#FF0004");
- }
-
- if(ucase.test($("#newPass").val())){
- $("#ucase").removeClass("glyphicon-remove");
- $("#ucase").addClass("glyphicon-ok");
- $("#ucase").css("color","#00A41E");
- ok++;
- }else{
- $("#ucase").removeClass("glyphicon-ok");
- $("#ucase").addClass("glyphicon-remove");
- $("#ucase").css("color","#FF0004");
- }
-
- if(lcase.test($("#newPass").val())){
- $("#lcase").removeClass("glyphicon-remove");
- $("#lcase").addClass("glyphicon-ok");
- $("#lcase").css("color","#00A41E");
- ok++;
- }else{
- $("#lcase").removeClass("glyphicon-ok");
- $("#lcase").addClass("glyphicon-remove");
- $("#lcase").css("color","#FF0004");
- }
-
- if(num.test($("#newPass").val())){
- $("#num").removeClass("glyphicon-remove");
- $("#num").addClass("glyphicon-ok");
- $("#num").css("color","#00A41E");
- ok++;
- }else{
- $("#num").removeClass("glyphicon-ok");
- $("#num").addClass("glyphicon-remove");
- $("#num").css("color","#FF0004");
- }
-
- if(($("#newPass").val() == $("#newPassConfirm").val()) && ($("#newPass").val().length > 0)){
- $("#pwmatch").removeClass("glyphicon-remove");
- $("#pwmatch").addClass("glyphicon-ok");
- $("#pwmatch").css("color","#00A41E");
- ok++;
- }else{
- $("#pwmatch").removeClass("glyphicon-ok");
- $("#pwmatch").addClass("glyphicon-remove");
- $("#pwmatch").css("color","#FF0004");
- }
- if(ok == 6) {
- document.getElementById('submit').disabled = false;
- }else{
- document.getElementById('submit').disabled = true;
- }
- });
- -->
- </script>
- <?php
- }
- private function changePassword() {
- $oldPass = V::get('oldPass', '', $_POST);
- $newPass = V::get('newPass', '', $_POST);
- $newPassConfirm = V::get('newPassConfirm', '', $_POST);
- if (!($oldPass && $newPass && ($newPass == $newPassConfirm))) throw new Exception("Błąd formularza");
- try {
- $result = User::changePassword($oldPass, $newPass);
- if ($result) SE_Layout::alert('success', "Pomyślnie zmieniono hasło");
- else SE_Layout::alert('warning', "Nie zmieniono hasła");
- } catch (Exception $e) {
- SE_Layout::alert('danger', $e->getMessage());
- self::showForm();
- }
- }
- }
|