plugins/yubikey/usercp.php
author Dan
Thu, 26 Feb 2009 01:08:22 -0500
changeset 0 9d2c4f04a0d0
child 3 d0fe7acaf0e8
permissions -rw-r--r--
First commit! Hoping everything works.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     1
<?php
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     2
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     3
$plugins->attachHook("userprefs_jbox", "yubikey_ucp_setup();");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     4
$plugins->attachHook("userprefs_body", "return yubikey_user_cp(\$section);");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     5
$plugins->attachHook("login_form_html", "yubikey_inject_html_login();");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     6
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     7
function yubikey_ucp_setup()
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     8
{
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
     9
  userprefs_menu_add('usercp_sec_profile', 'yubiucp_panel_title', makeUrlNS('Special', 'Preferences/Yubikey'));
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    10
}
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    11
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    12
function yubikey_user_cp($section)
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    13
{
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    14
  global $db, $session, $paths, $template, $plugins; // Common objects
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    15
  global $lang;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    16
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    17
  if ( $section !== 'Yubikey' )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    18
    return false;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    19
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    20
  $count_enabled = intval(getConfig('yubikey_enroll_limit', '3'));
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    21
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    22
  if ( isset($_POST['submit']) )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    23
  {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    24
    csrf_request_confirm();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    25
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    26
    $keys = array();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    27
    if ( isset($_POST['yubikey_enable']) )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    28
    {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    29
      for ( $i = 0; $i < $count_enabled; $i++ )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    30
      {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    31
        if ( !empty($_POST["yubikey_otp_$i"]) )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    32
        {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    33
          $ckey =& $_POST["yubikey_otp_$i"];
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    34
          if ( preg_match('/^[cbdefghijklnrtuv]{12,44}$/', $ckey) )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    35
          {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    36
            $ckey = substr($ckey, 0, 12);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    37
            $keys[] = $ckey;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    38
          }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    39
          unset($ckey);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    40
        }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    41
      }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    42
    }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    43
    // Check for double enrollment
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    44
    $keys_check = "yubi_uid = '" . implode("' OR yubi_uid = '", $keys) . "'";
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    45
    $q = $db->sql_query('SELECT yubi_uid FROM ' . table_prefix . "yubikey WHERE ( $keys_check ) AND user_id != {$session->user_id};");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    46
    if ( !$q )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    47
      $db->_die();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    48
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    49
    if ( $db->numrows() > 0 )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    50
    {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    51
      echo '<div class="error-box" style="margin: 0 0 10px 0;">' . $lang->get('yubiucp_err_double_enrollment') . '</div>';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    52
      while ( $row = $db->fetchrow() )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    53
      {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    54
        foreach ( $keys as $i => $key )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    55
        {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    56
          if ( $key == $row['yubi_uid'] )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    57
          {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    58
            unset($keys[$i]);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    59
          }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    60
        }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    61
      }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    62
      $keys = array_values($keys);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    63
    }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    64
    $db->free_result();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    65
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    66
    // Remove all currently registered keys
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    67
    $q = $db->sql_query('DELETE FROM ' . table_prefix . "yubikey WHERE user_id = {$session->user_id};");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    68
    if ( !$q )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    69
      $db->_die();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    70
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    71
    // Enroll any new keys
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    72
    if ( !empty($keys) )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    73
    {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    74
      $query = 'INSERT INTO ' . table_prefix . "yubikey(user_id, yubi_uid) VALUES\n  " .
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    75
                 "( $session->user_id, '" . implode("' ),\n  ( $session->user_id, '", $keys) . "' );";
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    76
      if ( !$db->sql_query($query) )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    77
        $db->_die();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    78
    }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    79
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    80
    // Calculate flags
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    81
    $yubi_flags = 0;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    82
    $yubi_flags |= intval($_POST['login_normal_flags']);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    83
    $yubi_flags |= intval($_POST['login_elev_flags']);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    84
    $yubi_flags |= ( isset($_POST['allow_no_yubikey']) ) ? YK_SEC_ALLOW_NO_OTP : 0;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    85
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    86
    // update flags
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    87
    $q = $db->sql_query('UPDATE ' . table_prefix . "users SET user_yubikey_flags = $yubi_flags WHERE user_id = {$session->user_id};");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    88
    if ( !$q )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    89
      $db->_die();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    90
  }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    91
  else
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    92
  {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    93
    // Fetch flags
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    94
    $q = $db->sql_query('SELECT user_yubikey_flags FROM ' . table_prefix . "users WHERE user_id = {$session->user_id};");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    95
    if ( !$q )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    96
      $db->_die();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    97
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    98
    list($yubi_flags) = $db->fetchrow_num();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
    99
    $yubi_flags = intval($yubi_flags);
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   100
    // Fetch user's authorized keys from the DB
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   101
    $q = $db->sql_query('SELECT yubi_uid FROM ' . table_prefix . "yubikey WHERE user_id = {$session->user_id};");
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   102
    if ( !$q )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   103
      $db->_die();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   104
    
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   105
    $keys = array();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   106
    while ( $row = $db->fetchrow() )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   107
    {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   108
      $keys[] = $row['yubi_uid'];
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   109
    }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   110
    $db->free_result();
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   111
  }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   112
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   113
  while ( count($keys) < $count_enabled )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   114
  {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   115
    $keys[] = false;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   116
  }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   117
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   118
  $enable_checked = ( $keys[0] === false && !isset($_POST['yubikey_enable']) ) ? '' : 'checked="checked"';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   119
  $displaytable = ( $keys[0] === false && !isset($_POST['yubikey_enable']) ) ? 'none' : 'block';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   120
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   121
  $check_normal_keyonly = ( !($yubi_flags & YK_SEC_NORMAL_USERNAME) && !($yubi_flags & YK_SEC_NORMAL_PASSWORD) ) ? 'checked="checked" ' : '';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   122
  $check_normal_username = ( ($yubi_flags & YK_SEC_NORMAL_USERNAME) && !($yubi_flags & YK_SEC_NORMAL_PASSWORD) ) ? 'checked="checked" ' : '';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   123
  $check_normal_userandpw = ( ($yubi_flags & YK_SEC_NORMAL_USERNAME) && ($yubi_flags & YK_SEC_NORMAL_PASSWORD) ) ? 'checked="checked" ' : '';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   124
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   125
  $check_elev_keyonly = ( !($yubi_flags & YK_SEC_ELEV_USERNAME) && !($yubi_flags & YK_SEC_ELEV_PASSWORD) ) ? 'checked="checked" ' : '';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   126
  $check_elev_username = ( ($yubi_flags & YK_SEC_ELEV_USERNAME) && !($yubi_flags & YK_SEC_ELEV_PASSWORD) ) ? 'checked="checked" ' : '';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   127
  $check_elev_userandpw = ( ($yubi_flags & YK_SEC_ELEV_USERNAME) && ($yubi_flags & YK_SEC_ELEV_PASSWORD) ) ? 'checked="checked" ' : '';  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   128
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   129
  ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   130
  <h3 style="margin-top: 0;"><?php echo $lang->get('yubiucp_panel_title'); ?></h3>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   131
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   132
  <form action="<?php echo makeUrlNS('Special', 'Preferences/Yubikey'); ?>" method="post">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   133
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   134
  <div>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   135
    <table border="0" cellpadding="4" width="100%">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   136
      <tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   137
        <td style="width: 50%; text-align: right;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   138
          <?php echo $lang->get('yubiucp_field_enable_title'); ?><br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   139
          <small><?php echo $lang->get('yubiucp_field_enable_hint'); ?></small>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   140
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   141
        <td style="width: 50%;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   142
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   143
            <input type="checkbox" name="yubikey_enable" onclick="if ( $(this).attr('checked') ) $('#yk_useroptions').show('blind'); else $('#yk_useroptions').hide('blind');" <?php echo $enable_checked; ?> />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   144
            <?php echo $lang->get('yubiucp_field_enable'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   145
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   146
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   147
      </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   148
    </table>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   149
    <table border="0" cellpadding="4" width="100%" id="yk_useroptions" style="display: <?php echo $displaytable ?>;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   150
      <tr class="yk_alt1">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   151
      <td style="width: 50%; text-align: right;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   152
          <?php echo $lang->get('yubiucp_field_keys_title'); ?><br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   153
          <small><?php
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   154
          echo $lang->get('yubiucp_field_keys_hint');
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   155
          if ( $count_enabled > 1 )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   156
          {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   157
            echo ' ';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   158
            echo $lang->get('yubiucp_field_keys_maximum', array('max' => $count_enabled));
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   159
          }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   160
          ?></small>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   161
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   162
        <td style="width: 50%;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   163
          <?php
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   164
          for ( $i = 0; $i < $count_enabled; $i++ )
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   165
          {
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   166
            echo '<p>' . generate_yubikey_field('yubikey_otp_' . $i, $keys[$i]) . '</p>';
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   167
          }
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   168
          ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   169
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   170
      </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   171
      <tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   172
        <td style="width: 50%; text-align: right;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   173
          <?php echo $lang->get('yubiucp_field_normal_flags'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   174
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   175
        <td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   176
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   177
            <input type="radio" name="login_normal_flags" value="0" <?php echo $check_normal_keyonly; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   178
            <?php echo $lang->get('yubiucp_field_flags_keyonly'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   179
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   180
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   181
          <br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   182
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   183
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   184
            <input type="radio" name="login_normal_flags" value="<?php echo strval(YK_SEC_NORMAL_USERNAME); ?>" <?php echo $check_normal_username; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   185
            <?php echo $lang->get('yubiucp_field_flags_username'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   186
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   187
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   188
          <br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   189
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   190
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   191
            <input type="radio" name="login_normal_flags" value="<?php echo strval(YK_SEC_NORMAL_USERNAME | YK_SEC_NORMAL_PASSWORD); ?>" <?php echo $check_normal_userandpw; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   192
            <?php echo $lang->get('yubiucp_field_flags_userandpw'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   193
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   194
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   195
      </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   196
      <tr class="yk_alt1">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   197
        <td style="width: 50%; text-align: right;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   198
          <?php echo $lang->get('yubiucp_field_elev_flags'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   199
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   200
        <td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   201
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   202
            <input type="radio" name="login_elev_flags" value="0" <?php echo $check_elev_keyonly; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   203
            <?php echo $lang->get('yubiucp_field_flags_keyonly'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   204
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   205
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   206
          <br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   207
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   208
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   209
            <input type="radio" name="login_elev_flags" value="<?php echo strval(YK_SEC_ELEV_USERNAME); ?>" <?php echo $check_elev_username; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   210
            <?php echo $lang->get('yubiucp_field_flags_username'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   211
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   212
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   213
          <br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   214
          
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   215
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   216
            <input type="radio" name="login_elev_flags" value="<?php echo strval(YK_SEC_ELEV_USERNAME | YK_SEC_ELEV_PASSWORD); ?>" <?php echo $check_elev_userandpw; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   217
            <?php echo $lang->get('yubiucp_field_flags_userandpw'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   218
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   219
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   220
      </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   221
      <tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   222
        <td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   223
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   224
        <td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   225
          <label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   226
            <input type="checkbox" name="allow_no_yubikey" <?php if ( $yubi_flags & YK_SEC_ALLOW_NO_OTP ) echo 'checked="checked" '; ?>/>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   227
            <?php echo $lang->get('yubiucp_field_allow_plain_login'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   228
          </label>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   229
          <br />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   230
          <small>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   231
            <?php echo $lang->get('yubiucp_field_allow_plain_login_hint'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   232
          </small>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   233
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   234
      </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   235
    </table>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   236
    <table border="0" cellpadding="4" width="100%">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   237
      <tr class="yk_alt1">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   238
        <td colspan="2" style="text-align: center;">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   239
          <input type="submit" name="submit" value="<?php echo $lang->get('etc_save_changes'); ?>" />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   240
        </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   241
      </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   242
    </table>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   243
  </div>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   244
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   245
  <input type="hidden" name="cstok" value="<?php echo $session->csrf_token; ?>" />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   246
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   247
  </form>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   248
  <?php
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   249
  
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   250
  return true;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   251
}
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   252
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   253
function yubikey_inject_html_login()
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   254
{
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   255
  global $lang;
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   256
  ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   257
  <tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   258
    <td class="row2">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   259
      <?php echo $lang->get('yubiauth_lbl_otp_field'); ?>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   260
    </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   261
    <td class="row1" colspan="2">
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   262
      <input type="text" size="40" class="yubikey_noscript" name="yubikey_otp" />
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   263
    </td>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   264
  </tr>
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   265
  <?php
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   266
}
9d2c4f04a0d0 First commit! Hoping everything works.
Dan
parents:
diff changeset
   267