mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
Covered everything in the user controller except configuration controlled statements.
This commit is contained in:
@@ -33,7 +33,7 @@ class UserController extends BaseController
|
|||||||
Auth::logout();
|
Auth::logout();
|
||||||
Session::flush();
|
Session::flush();
|
||||||
|
|
||||||
return Redirect::route('index');
|
return Redirect::route('login');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -67,9 +67,6 @@ class UserController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function postRegister()
|
public function postRegister()
|
||||||
{
|
{
|
||||||
if (Config::get('auth.allow_register') !== true) {
|
|
||||||
return View::make('error')->with('message', 'Not possible');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @var \FireflyIII\Database\User\User $repository */
|
/** @var \FireflyIII\Database\User\User $repository */
|
||||||
$repository = App::make('FireflyIII\Database\User\User');
|
$repository = App::make('FireflyIII\Database\User\User');
|
||||||
@@ -136,9 +133,6 @@ class UserController extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function register()
|
public function register()
|
||||||
{
|
{
|
||||||
if (Config::get('auth.allow_register') !== true) {
|
|
||||||
return View::make('error')->with('message', 'Not possible');
|
|
||||||
}
|
|
||||||
|
|
||||||
return View::make('user.register');
|
return View::make('user.register');
|
||||||
}
|
}
|
||||||
|
@@ -13,6 +13,8 @@ class DefaultUserSeeder extends Seeder
|
|||||||
User::create(['email' => 'thegrumpydictator@gmail.com', 'password' => 'james', 'reset' => null, 'remember_token' => null]);
|
User::create(['email' => 'thegrumpydictator@gmail.com', 'password' => 'james', 'reset' => null, 'remember_token' => null]);
|
||||||
User::create(['email' => 'acceptance@example.com', 'password' => 'acceptance', 'reset' => null, 'remember_token' => null]);
|
User::create(['email' => 'acceptance@example.com', 'password' => 'acceptance', 'reset' => null, 'remember_token' => null]);
|
||||||
User::create(['email' => 'functional@example.com', 'password' => 'functional', 'reset' => null, 'remember_token' => null]);
|
User::create(['email' => 'functional@example.com', 'password' => 'functional', 'reset' => null, 'remember_token' => null]);
|
||||||
|
User::create(['email' => 'reset@example.com', 'password' => 'functional', 'reset' => 'okokokokokokokokokokokokokokokok', 'remember_token' => null]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -94,3 +94,11 @@ Route::filter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Route::filter(
|
||||||
|
'allow-register', function () {
|
||||||
|
if (Config::get('auth.allow_register') !== true) {
|
||||||
|
return View::make('error')->with('message', 'Not possible');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
@@ -43,7 +43,8 @@ class User
|
|||||||
$user->reset = \Str::random(32);
|
$user->reset = \Str::random(32);
|
||||||
$user->password = \Hash::make(\Str::random(12));
|
$user->password = \Hash::make(\Str::random(12));
|
||||||
|
|
||||||
if (!$user->save()) {
|
// validate user:
|
||||||
|
if (!$user->isValid()) {
|
||||||
\Log::error('Invalid user with data: ' . isset($data['email']) ? $data['email'] : '(no email!)');
|
\Log::error('Invalid user with data: ' . isset($data['email']) ? $data['email'] : '(no email!)');
|
||||||
\Session::flash('error', 'Input invalid, please try again: ' . $user->getErrors()->first());
|
\Session::flash('error', 'Input invalid, please try again: ' . $user->getErrors()->first());
|
||||||
|
|
||||||
|
@@ -49,11 +49,14 @@ class Registration implements RegistrationInterface
|
|||||||
$email = $user->email;
|
$email = $user->email;
|
||||||
|
|
||||||
$data = ['reset' => $reset];
|
$data = ['reset' => $reset];
|
||||||
\Mail::send(
|
try {
|
||||||
['emails.user.remindme-html', 'emails.user.remindme-text'], $data, function ($message) use ($email) {
|
\Mail::send(
|
||||||
$message->to($email, $email)->subject('Forgot your password?');
|
['emails.user.remindme-html', 'emails.user.remindme-text'], $data, function ($message) use ($email) {
|
||||||
|
$message->to($email, $email)->subject('Forgot your password?');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} catch (Swift_RfcComplianceException $e) {
|
||||||
}
|
}
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -72,11 +75,14 @@ class Registration implements RegistrationInterface
|
|||||||
$email = $user->email;
|
$email = $user->email;
|
||||||
$data = ['reset' => $reset];
|
$data = ['reset' => $reset];
|
||||||
|
|
||||||
\Mail::send(
|
try {
|
||||||
['emails.user.verify-html', 'emails.user.verify-text'], $data, function ($message) use ($email) {
|
\Mail::send(
|
||||||
$message->to($email, $email)->subject('Verify your e-mail address.');
|
['emails.user.verify-html', 'emails.user.verify-text'], $data, function ($message) use ($email) {
|
||||||
|
$message->to($email, $email)->subject('Verify your e-mail address.');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} catch (Swift_RfcComplianceException $e) {
|
||||||
}
|
}
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@@ -16,7 +16,7 @@ class User extends Eloquent implements UserInterface, RemindableInterface
|
|||||||
use UserTrait, RemindableTrait, ValidatingTrait;
|
use UserTrait, RemindableTrait, ValidatingTrait;
|
||||||
|
|
||||||
|
|
||||||
public static $rules
|
protected $rules
|
||||||
= [
|
= [
|
||||||
'email' => 'required|email|unique:users,email',
|
'email' => 'required|email|unique:users,email',
|
||||||
'password' => 'required|between:60,60',
|
'password' => 'required|between:60,60',
|
||||||
|
@@ -366,7 +366,7 @@ Route::group(
|
|||||||
['before' => 'guest'], function () {
|
['before' => 'guest'], function () {
|
||||||
// user controller
|
// user controller
|
||||||
Route::get('/login', ['uses' => 'UserController@login', 'as' => 'login']);
|
Route::get('/login', ['uses' => 'UserController@login', 'as' => 'login']);
|
||||||
Route::get('/register', ['uses' => 'UserController@register', 'as' => 'register']);
|
Route::get('/register', ['uses' => 'UserController@register', 'as' => 'register','before' => 'allow-register']);
|
||||||
Route::get('/reset/{reset}', ['uses' => 'UserController@reset', 'as' => 'reset']);
|
Route::get('/reset/{reset}', ['uses' => 'UserController@reset', 'as' => 'reset']);
|
||||||
Route::get('/remindme', ['uses' => 'UserController@remindme', 'as' => 'remindme']);
|
Route::get('/remindme', ['uses' => 'UserController@remindme', 'as' => 'remindme']);
|
||||||
|
|
||||||
@@ -380,7 +380,7 @@ Route::group(
|
|||||||
|
|
||||||
// user controller
|
// user controller
|
||||||
Route::post('/login', ['uses' => 'UserController@postLogin', 'as' => 'login.post']);
|
Route::post('/login', ['uses' => 'UserController@postLogin', 'as' => 'login.post']);
|
||||||
Route::post('/register', ['uses' => 'UserController@postRegister', 'as' => 'register.post']);
|
Route::post('/register', ['uses' => 'UserController@postRegister', 'as' => 'register.post','before' => 'allow-register']);
|
||||||
Route::post('/remindme', ['uses' => 'UserController@postRemindme', 'as' => 'remindme.post']);
|
Route::post('/remindme', ['uses' => 'UserController@postRemindme', 'as' => 'remindme.post']);
|
||||||
}
|
}
|
||||||
);
|
);
|
@@ -7,7 +7,7 @@
|
|||||||
<h3 class="panel-title">Firefly III — Reset your password</h3>
|
<h3 class="panel-title">Firefly III — Reset your password</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{{Form::open()}}
|
{{Form::open(['id' => 'remindme'])}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputEmail">Email address</label>
|
<label for="inputEmail">Email address</label>
|
||||||
<input type="email" class="form-control" id="inputEmail" name="email" placeholder="Enter email">
|
<input type="email" class="form-control" id="inputEmail" name="email" placeholder="Enter email">
|
||||||
|
@@ -53,18 +53,11 @@ class UserControllerCest
|
|||||||
*/
|
*/
|
||||||
public function logout(FunctionalTester $I)
|
public function logout(FunctionalTester $I)
|
||||||
{
|
{
|
||||||
|
$I->amLoggedAs(['email' => 'thegrumpydictator@gmail.com', 'password' => 'james']);
|
||||||
$I->wantTo('logout');
|
$I->wantTo('logout');
|
||||||
#$I->amOnPage('/logout');
|
$I->amOnPage('/');
|
||||||
#$I->am
|
$I->click('Logout');
|
||||||
}
|
$I->see('Firefly III — Sign In');
|
||||||
|
|
||||||
/**
|
|
||||||
* @param FunctionalTester $I
|
|
||||||
*/
|
|
||||||
public function postLogin(FunctionalTester $I)
|
|
||||||
{
|
|
||||||
$I->wantTo('post login');
|
|
||||||
$I->amOnRoute('login');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,14 +65,23 @@ class UserControllerCest
|
|||||||
*/
|
*/
|
||||||
public function postRegister(FunctionalTester $I)
|
public function postRegister(FunctionalTester $I)
|
||||||
{
|
{
|
||||||
// @codingStandardsIgnoreStart
|
|
||||||
$I->wantTo('post-register a new account');
|
$I->wantTo('post-register a new account');
|
||||||
$I->amOnPage('/register');
|
$I->amOnPage('/register');
|
||||||
$token = $I->grabValueFrom('input[name=_token]');
|
$I->submitForm('#register', ['email' => 'noreply@gmail.com']);
|
||||||
$I->submitForm('#register', ['email' => 'noreply@gmail.com', '_token' => $token]);
|
|
||||||
$I->see('Password sent!');
|
$I->see('Password sent!');
|
||||||
$I->seeRecord('users', ['email' => 'noreply@gmail.com']);
|
$I->seeRecord('users', ['email' => 'noreply@gmail.com']);
|
||||||
// @codingStandardsIgnoreEnd
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param FunctionalTester $I
|
||||||
|
*/
|
||||||
|
public function postRegisterFail(FunctionalTester $I)
|
||||||
|
{
|
||||||
|
$I->wantTo('post-register a new account and fail');
|
||||||
|
$I->amOnPage('/register');
|
||||||
|
$I->submitForm('#register', ['email' => 'XXxxxxx']);
|
||||||
|
$I->see('Input invalid, please try again: The email must be a valid email address.');
|
||||||
|
$I->dontseeRecord('users', ['email' => 'XXxxxxx']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -89,6 +91,19 @@ class UserControllerCest
|
|||||||
{
|
{
|
||||||
$I->wantTo('get a password reminder');
|
$I->wantTo('get a password reminder');
|
||||||
$I->amOnRoute('remindme');
|
$I->amOnRoute('remindme');
|
||||||
|
$I->submitForm('#remindme', ['email' => 'functional@example.com']);
|
||||||
|
$I->see('You\'re about to get an e-mail.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param FunctionalTester $I
|
||||||
|
*/
|
||||||
|
public function postRemindmeFail(FunctionalTester $I)
|
||||||
|
{
|
||||||
|
$I->wantTo('get a password reminder and fail');
|
||||||
|
$I->amOnRoute('remindme');
|
||||||
|
$I->submitForm('#remindme', ['email' => 'abcdee']);
|
||||||
|
$I->see('No good!');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -109,6 +124,17 @@ class UserControllerCest
|
|||||||
{
|
{
|
||||||
$I->wantTo('reminded of my password');
|
$I->wantTo('reminded of my password');
|
||||||
$I->amOnRoute('remindme');
|
$I->amOnRoute('remindme');
|
||||||
|
$I->see('Firefly III — Reset your password');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param FunctionalTester $I
|
||||||
|
*/
|
||||||
|
public function resetFail(FunctionalTester $I)
|
||||||
|
{
|
||||||
|
$I->wantTo('reset my password and fail');
|
||||||
|
$I->amOnPage('/reset/123');
|
||||||
|
$I->see('Yo no hablo reset code!');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,7 +143,8 @@ class UserControllerCest
|
|||||||
public function reset(FunctionalTester $I)
|
public function reset(FunctionalTester $I)
|
||||||
{
|
{
|
||||||
$I->wantTo('reset my password');
|
$I->wantTo('reset my password');
|
||||||
$I->amOnRoute('reset');
|
$I->amOnPage('/reset/okokokokokokokokokokokokokokokok');
|
||||||
|
$I->see('You\'re about to get an e-mail.');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user