|
@@ 171-178 (lines=8) @@
|
| 168 |
|
{ |
| 169 |
|
$yubikeyMember = Member::get()->filter(array('Yubikey' => $yubiFingerprint))->first(); |
| 170 |
|
// Yubikeys have a unique fingerprint, if we find a different member with this yubikey ID, something's wrong |
| 171 |
|
if ($yubikeyMember && $yubikeyMember->ID !== $member->ID) { |
| 172 |
|
$validationMessage = ValidationResult::create(false, |
| 173 |
|
_t('YubikeyAuthenticator.DUPLICATE', 'Yubikey is duplicate')); |
| 174 |
|
self::updateForm($validationMessage); |
| 175 |
|
$member->registerFailedLogin(); |
| 176 |
|
|
| 177 |
|
return false; |
| 178 |
|
} |
| 179 |
|
// If the member has a yubikey ID set, compare it to the fingerprint. |
| 180 |
|
if ($member->Yubikey && strpos($yubiFingerprint, $member->Yubikey) !== 0) { |
| 181 |
|
self::updateForm(); |
|
@@ 218-225 (lines=8) @@
|
| 215 |
|
private static function checkNoYubiLogins($member) |
| 216 |
|
{ |
| 217 |
|
$maxNoYubi = self::config()->get('MaxNoYubiLogin'); |
| 218 |
|
if ($maxNoYubi > 0 && $maxNoYubi <= $member->NoYubikeyCount) { |
| 219 |
|
$validationError = ValidationResult::create(false, |
| 220 |
|
_t('YubikeyAuthenticator.ERRORMAXYUBIKEY', 'Maximum login without yubikey exceeded')); |
| 221 |
|
self::updateForm($validationError); |
| 222 |
|
$member->registerFailedLogin(); |
| 223 |
|
|
| 224 |
|
return false; |
| 225 |
|
} |
| 226 |
|
|
| 227 |
|
return $member; |
| 228 |
|
} |
|
@@ 245-253 (lines=9) @@
|
| 242 |
|
$diff = $date2->diff($date1)->format("%a"); |
| 243 |
|
$maxNoYubiDays = self::config()->get('MaxNoYubiLoginDays'); |
| 244 |
|
|
| 245 |
|
if ($maxNoYubiDays > 0 && $diff >= $maxNoYubiDays) { |
| 246 |
|
$validationError = ValidationResult::create(false, |
| 247 |
|
_t('YubikeyAuthenticator.ERRORMAXYUBIKEYDAYS', 'Maximum days without yubikey exceeded')); |
| 248 |
|
self::updateForm($validationError); |
| 249 |
|
$member->registerFailedLogin(); |
| 250 |
|
|
| 251 |
|
return false; |
| 252 |
|
} |
| 253 |
|
|
| 254 |
|
return $member; |
| 255 |
|
} |
| 256 |
|
} |