Merge pull request #9 from olssonm/dev

Dev
This commit is contained in:
Marcus Olsson 2018-06-09 17:33:02 +02:00 committed by GitHub
commit 671e9f6cad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 58 additions and 25 deletions

18
.scrutinizer.yml Normal file
View File

@ -0,0 +1,18 @@
filter:
excluded_paths: [tests/*]
checks:
php:
remove_extra_empty_lines: true
remove_php_closing_tag: true
remove_trailing_whitespace: true
fix_use_statements:
remove_unused: true
preserve_multiple: false
preserve_blanklines: true
order_alphabetically: true
fix_php_opening_tag: true
fix_linefeed: true
fix_line_ending: true
fix_identation_4spaces: true
fix_doc_comments: true

View File

@ -1,12 +1,13 @@
language: php language: php
before_install: sudo: false
before_script:
- travis_retry composer self-update - travis_retry composer self-update
- composer require "illuminate/support:${ILLUMINATE_VERSION}" --no-update - travis_retry composer require "illuminate/support:${ILLUMINATE_VERSION}"
install: composer update --prefer-source --no-interaction --dev script:
- phpunit
script: composer test
matrix: matrix:
include: include:
@ -20,5 +21,7 @@ matrix:
env: ILLUMINATE_VERSION=5.5.* env: ILLUMINATE_VERSION=5.5.*
- php: 7.1 - php: 7.1
env: ILLUMINATE_VERSION=5.6.* env: ILLUMINATE_VERSION=5.6.*
- php: 7.2
env: ILLUMINATE_VERSION=5.6.*
- php: nightly - php: nightly
env: ILLUMINATE_VERSION=5.6.* env: ILLUMINATE_VERSION=5.6.*

View File

@ -1,6 +1,6 @@
# The MIT License (MIT) # The MIT License (MIT)
Copyright (c) 2017 Marcus Olsson <contact@marcusolsson.me> Copyright (c) 2018 Marcus Olsson <contact@marcusolsson.me>
> Permission is hereby granted, free of charge, to any person obtaining a copy > Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal > of this software and associated documentation files (the "Software"), to deal

View File

@ -4,6 +4,9 @@
[![Total downloads][ico-downloads]][link-packagist] [![Total downloads][ico-downloads]][link-packagist]
[![Software License][ico-license]](LICENSE.md) [![Software License][ico-license]](LICENSE.md)
[![Build Status][ico-travis]][link-travis] [![Build Status][ico-travis]][link-travis]
[![Scrutinizer Score][ico-scrutinizer]][link-scrutinizer]
![zxcvbn](https://user-images.githubusercontent.com/907114/41193108-747d9b50-6c08-11e8-8f9c-57874f52fa9b.png)
A simple implementation of zxcvbn for Laravel 5. This package allows you to access "zxcvbn-related" data on a passphrase in the application and also to use zxcvbn as a standard validator. A simple implementation of zxcvbn for Laravel 5. This package allows you to access "zxcvbn-related" data on a passphrase in the application and also to use zxcvbn as a standard validator.
@ -13,13 +16,13 @@ Uses [Zxcvbn-PHP](https://github.com/bjeavons/zxcvbn-php) by [@bjeavons](https:/
Via Composer Via Composer
``` bash ```bash
$ composer require olssonm/l5-zxcvbn $ composer require olssonm/l5-zxcvbn
``` ```
Add the package to your providers array: Add the package to your providers array:
``` php ```php
'providers' => [ 'providers' => [
Olssonm\Zxcvbn\ZxcvbnServiceProvider::class, Olssonm\Zxcvbn\ZxcvbnServiceProvider::class,
] ]
@ -27,7 +30,7 @@ Add the package to your providers array:
If you wish to have the ability to use `Zxcvbn` via dependency injection, or just have a quick way to access the class add an alias to the facades: If you wish to have the ability to use `Zxcvbn` via dependency injection, or just have a quick way to access the class add an alias to the facades:
``` php ```php
'aliases' => [ 'aliases' => [
'Zxcvbn' => Olssonm\Zxcvbn\Facades\Zxcvbn::class 'Zxcvbn' => Olssonm\Zxcvbn\Facades\Zxcvbn::class
] ]
@ -39,7 +42,7 @@ If you've added `Olssonm\Zxcvbn` as an alias, your can access Zxcvbn easily from
### "In app" ### "In app"
``` php ```php
<?php <?php
use Zxcvbn; use Zxcvbn;
@ -80,7 +83,7 @@ The package gives you two different validation rules that you may use; `zxcvbn_m
**Example** **Example**
``` php ```php
<?php <?php
$data = ['password' => 'password']; $data = ['password' => 'password'];
$validator = Validator::make($data, [ $validator = Validator::make($data, [
@ -102,7 +105,7 @@ This is a bit more interesting. `zxcvbn_dictionary` allows you to input both the
**Example** **Example**
``` php ```php
<?php <?php
/** /**
* Example 1, pass * Example 1, pass
@ -137,25 +140,34 @@ This is a bit more interesting. `zxcvbn_dictionary` allows you to input both the
## Testing ## Testing
``` bash ```bash
$ composer test $ composer test
``` ```
or or
``` bash ```bash
$ phpunit $ phpunit
``` ```
## License ## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information. The MIT License (MIT). Please see the [License File](LICENSE.md) for more information.
© 2017 [Marcus Olsson](https://marcusolsson.me). © 2018 [Marcus Olsson](https://marcusolsson.me).
[ico-version]: https://img.shields.io/packagist/v/olssonm/l5-zxcvbn.svg?style=flat-square [ico-version]: https://img.shields.io/packagist/v/olssonm/l5-zxcvbn.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/olssonm/l5-zxcvbn.svg?style=flat-square [ico-downloads]: https://img.shields.io/packagist/dt/olssonm/l5-zxcvbn.svg?style=flat-square
[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square [ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square
[ico-travis]: https://img.shields.io/travis/olssonm/l5-zxcvbn/master.svg?style=flat-square [ico-travis]: https://img.shields.io/travis/olssonm/l5-zxcvbn/master.svg?style=flat-square
[ico-scrutinizer]: https://img.shields.io/scrutinizer/g/olssonm/l5-zxcvbn.svg?style=flat-square
[link-packagist]: https://packagist.org/packages/olssonm/l5-zxcvbn [link-packagist]: https://packagist.org/packages/olssonm/l5-zxcvbn
[link-travis]: https://travis-ci.org/olssonm/l5-zxcvbn [link-travis]: https://travis-ci.org/olssonm/l5-zxcvbn
[link-scrutinizer]: https://scrutinizer-ci.com/g/olssonm/l5-zxcvbn

View File

@ -18,19 +18,19 @@ class ZxcvbnServiceProvider extends ServiceProvider
/** /**
* Extend the Laravel Validator with the "zxcvbn_min" rule * Extend the Laravel Validator with the "zxcvbn_min" rule
*/ */
Validator::extend('zxcvbn_min', function($attribute, $value, $parameters, $validator) { Validator::extend('zxcvbn_min', function($attribute, $value, $parameters) {
$zxcvbn = new ZxcvbnPhp(); $zxcvbn = new ZxcvbnPhp();
$zxcvbn = $zxcvbn->passwordStrength($value); $zxcvbn = $zxcvbn->passwordStrength($value);
$target = 5; $target = 5;
if(isset($parameters[0])) { if (isset($parameters[0])) {
$target = $parameters[0]; $target = $parameters[0];
} }
return ($zxcvbn['score'] >= $target); return ($zxcvbn['score'] >= $target);
}, 'Your :attribute is not secure enough.'); }, 'Your :attribute is not secure enough.');
Validator::replacer('zxcvbn_min', function($message, $attribute, $rule, $parameters) { Validator::replacer('zxcvbn_min', function($message, $attribute) {
$message = str_replace(':attribute', $attribute, $message); $message = str_replace(':attribute', $attribute, $message);
return $message; return $message;
}); });
@ -38,11 +38,11 @@ class ZxcvbnServiceProvider extends ServiceProvider
/** /**
* Extend the Laravel Validator with the "zxcvbn_min" rule * Extend the Laravel Validator with the "zxcvbn_min" rule
*/ */
Validator::extend('zxcvbn_dictionary', function($attribute, $value, $parameters, $validator) { Validator::extend('zxcvbn_dictionary', function($attribute, $value, $parameters) {
$email = null; $email = null;
$username = null; $username = null;
if(isset($parameters[0])) { if (isset($parameters[0])) {
$email = $parameters[0]; $email = $parameters[0];
$username = $parameters[1]; $username = $parameters[1];
} }
@ -50,9 +50,9 @@ class ZxcvbnServiceProvider extends ServiceProvider
$zxcvbn = new ZxcvbnPhp(); $zxcvbn = new ZxcvbnPhp();
$zxcvbn = $zxcvbn->passwordStrength($value, [$username, $email]); $zxcvbn = $zxcvbn->passwordStrength($value, [$username, $email]);
if(isset($zxcvbn['match_sequence'][0])) { if (isset($zxcvbn['match_sequence'][0])) {
$dictionary = $zxcvbn['match_sequence'][0]; $dictionary = $zxcvbn['match_sequence'][0];
if(isset($dictionary->dictionaryName)) { if (isset($dictionary->dictionaryName)) {
return false; return false;
} }
} }
@ -61,7 +61,7 @@ class ZxcvbnServiceProvider extends ServiceProvider
}, 'Your :attribute is insecure. It either matches a commonly used password, or you have used a similar username/password combination.'); }, 'Your :attribute is insecure. It either matches a commonly used password, or you have used a similar username/password combination.');
Validator::replacer('zxcvbn_dictionary', function($message, $attribute, $rule, $parameters) { Validator::replacer('zxcvbn_dictionary', function($message, $attribute) {
$message = str_replace(':attribute', $attribute, $message); $message = str_replace(':attribute', $attribute, $message);
return $message; return $message;
}); });
@ -74,7 +74,7 @@ class ZxcvbnServiceProvider extends ServiceProvider
*/ */
public function register() public function register()
{ {
$this->app->bind('zxcvbn', function ($app) { $this->app->bind('zxcvbn', function($app) {
return new ZxcvbnPhp(); return new ZxcvbnPhp();
}); });
} }