Browse Source

Slight chance to TFA, added local js and css files

andryyy 8 years ago
parent
commit
ac6d8655b4

+ 4 - 1
data/web/admin.php

@@ -50,7 +50,10 @@ $tfa_data = get_tfa();
                 foreach ($tfa_data['additional'] as $key_info): ?>
                 foreach ($tfa_data['additional'] as $key_info): ?>
                 <form style="display:inline;" method="post">
                 <form style="display:inline;" method="post">
                   <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />
                   <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />
-                  <div class="label label-default">🔑 <?=$key_info['key_id'];?> <a href="#" style="font-weight:bold;color:white" onClick="$(this).closest('form').submit()">[<?=strtolower($lang['admin']['remove']);?>]</a></div>
+                  <div style="padding:4px;margin:4px" class="label label-<?=($_SESSION['tfa_id'] == $key_info['id']) ? 'success' : 'default'; ?>">
+                  <?=$key_info['key_id'];?>
+                  <a href="#" style="font-weight:bold;color:white" onClick="$(this).closest('form').submit()">[<?=strtolower($lang['admin']['remove']);?>]</a>
+                  </div>
                 </form>
                 </form>
                 <?php endforeach;
                 <?php endforeach;
                 endif;?>
                 endif;?>

File diff suppressed because it is too large
+ 5 - 0
data/web/css/bootstrap-select.min.css


File diff suppressed because it is too large
+ 40 - 0
data/web/css/bootstrap-slider.min.css


File diff suppressed because it is too large
+ 9 - 0
data/web/css/bootstrap-switch.min.css


+ 3 - 3
data/web/inc/footer.inc.php

@@ -24,9 +24,9 @@ endif;
 ?>
 ?>
 <div style="margin-bottom:100px"></div>
 <div style="margin-bottom:100px"></div>
 <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
 <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
-<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/js/bootstrap-switch.min.js"></script>
-<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/7.0.2/bootstrap-slider.min.js"></script>
-<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.9.4/js/bootstrap-select.js"></script>
+<script src="/js/bootstrap-switch.min.js"></script>
+<script src="/js/bootstrap-slider.min.js"></script>
+<script src="/js/bootstrap-select.min.js"></script>
 <script src="/js/u2f-api.js"></script>
 <script src="/js/u2f-api.js"></script>
 <script>
 <script>
 // Select language and reopen active URL without POST
 // Select language and reopen active URL without POST

+ 3 - 1
data/web/inc/functions.inc.php

@@ -2030,7 +2030,7 @@ function verify_tfa_login($username, $token) {
         return false;
         return false;
       }
       }
       $yubico_modhex_id = substr($token, 0, 12);
       $yubico_modhex_id = substr($token, 0, 12);
-      $stmt = $pdo->prepare("SELECT `secret` FROM `tfa`
+      $stmt = $pdo->prepare("SELECT `id`, `secret` FROM `tfa`
           WHERE `username` = :username
           WHERE `username` = :username
           AND `authmech` = 'yubi_otp'
           AND `authmech` = 'yubi_otp'
           AND `active`='1'
           AND `active`='1'
@@ -2048,6 +2048,7 @@ function verify_tfa_login($username, $token) {
 				return false;
 				return false;
       }
       }
       else {
       else {
+        $_SESSION['tfa_id'] = $row['id'];
         return true;
         return true;
       }
       }
     return false;
     return false;
@@ -2058,6 +2059,7 @@ function verify_tfa_login($username, $token) {
       $reg = $u2f->doAuthenticate(json_decode($_SESSION['authReq']), get_u2f_registrations($username), json_decode($token));
       $reg = $u2f->doAuthenticate(json_decode($_SESSION['authReq']), get_u2f_registrations($username), json_decode($token));
       $stmt = $pdo->prepare("UPDATE `tfa` SET `counter` = ? WHERE `id` = ?");
       $stmt = $pdo->prepare("UPDATE `tfa` SET `counter` = ? WHERE `id` = ?");
       $stmt->execute(array($reg->counter, $reg->id));
       $stmt->execute(array($reg->counter, $reg->id));
+      $_SESSION['tfa_id'] = $reg->id;
       $_SESSION['authReq'] = null;
       $_SESSION['authReq'] = null;
       return true;
       return true;
     }
     }

+ 3 - 3
data/web/inc/header.inc.php

@@ -12,9 +12,9 @@
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js" integrity="sha384-XxcvoeNF5V0ZfksTnV+bejnCsJjOOIzN6UVwF85WBsAnU3zeYh5bloN+L4WLgeNE" crossorigin="anonymous"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js" integrity="sha384-XxcvoeNF5V0ZfksTnV+bejnCsJjOOIzN6UVwF85WBsAnU3zeYh5bloN+L4WLgeNE" crossorigin="anonymous"></script>
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.6/<?=strtolower(trim($DEFAULT_THEME));?>/bootstrap.min.css">
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.6/<?=strtolower(trim($DEFAULT_THEME));?>/bootstrap.min.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.9.4/css/bootstrap-select.min.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-slider/7.0.2/css/bootstrap-slider.min.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/css/bootstrap3/bootstrap-switch.min.css">
+<link rel="stylesheet" href="/css/bootstrap-select.min.css">
+<link rel="stylesheet" href="/css/bootstrap-slider.min.css">
+<link rel="stylesheet" href="/css/bootstrap-switch.min.css">
 <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700&subset=latin,latin-ext">
 <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700&subset=latin,latin-ext">
 <link rel="stylesheet" href="/inc/languages.min.css">
 <link rel="stylesheet" href="/inc/languages.min.css">
 <link rel="stylesheet" href="/css/mailcow.css">
 <link rel="stylesheet" href="/css/mailcow.css">

File diff suppressed because it is too large
+ 6 - 0
data/web/js/bootstrap-select.min.js


File diff suppressed because it is too large
+ 3 - 0
data/web/js/bootstrap-slider.min.js


File diff suppressed because it is too large
+ 9 - 0
data/web/js/bootstrap-switch.min.js


Some files were not shown because too many files changed in this diff