From 5e809633e3165b342d25f11e138d389a4d79138e Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 6 Aug 2014 07:06:45 +0200 Subject: [PATCH] Various small updates [skip ci] --- app/controllers/ChartController.php | 2 +- .../2014_06_27_163032_create_users_table.php | 4 +- ...014_06_27_163259_create_accounts_table.php | 2 + ...4_06_27_163817_create_components_table.php | 3 + ...4_07_05_100651_create_piggybanks_table.php | 3 +- ...44_create_recurring_transactions_table.php | 14 ++++- ...6_recurring_transactions_to_components.php | 43 +++++++++++++ app/lib/Firefly/Helper/Email/EmailHelper.php | 6 +- .../Storage/User/EloquentUserRepository.php | 63 +++++++++---------- app/models/User.php | 4 +- app/views/index.blade.php | 3 +- 11 files changed, 100 insertions(+), 47 deletions(-) create mode 100644 app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php diff --git a/app/controllers/ChartController.php b/app/controllers/ChartController.php index 97a43dd10e..f8b1a75cc5 100644 --- a/app/controllers/ChartController.php +++ b/app/controllers/ChartController.php @@ -67,7 +67,7 @@ class ChartController extends BaseController } // loop and get array data. - $url = count($accounts) == 1 + $url = count($accounts) == 1 && is_array($accounts) ? 'View more' : 'View more'; diff --git a/app/database/migrations/2014_06_27_163032_create_users_table.php b/app/database/migrations/2014_06_27_163032_create_users_table.php index c104d7ca98..4356800182 100644 --- a/app/database/migrations/2014_06_27_163032_create_users_table.php +++ b/app/database/migrations/2014_06_27_163032_create_users_table.php @@ -21,7 +21,9 @@ class CreateUsersTable extends Migration { $table->string('reset',32)->nullable(); $table->string('remember_token',255)->nullable(); $table->boolean('migrated'); - }); + + $table->unique('email'); + }); } /** diff --git a/app/database/migrations/2014_06_27_163259_create_accounts_table.php b/app/database/migrations/2014_06_27_163259_create_accounts_table.php index 52f935bd3f..6c5330e31a 100644 --- a/app/database/migrations/2014_06_27_163259_create_accounts_table.php +++ b/app/database/migrations/2014_06_27_163259_create_accounts_table.php @@ -30,6 +30,8 @@ class CreateAccountsTable extends Migration { $table->foreign('account_type_id') ->references('id')->on('account_types') ->onDelete('cascade'); + + $table->unique(['user_id','account_type_id','name']); }); } diff --git a/app/database/migrations/2014_06_27_163817_create_components_table.php b/app/database/migrations/2014_06_27_163817_create_components_table.php index 2b1a473d12..ca7b9da162 100644 --- a/app/database/migrations/2014_06_27_163817_create_components_table.php +++ b/app/database/migrations/2014_06_27_163817_create_components_table.php @@ -24,7 +24,10 @@ class CreateComponentsTable extends Migration { $table->foreign('user_id') ->references('id')->on('users') ->onDelete('cascade'); + + $table->unique(['user_id','class','name']); }); + } /** diff --git a/app/database/migrations/2014_07_05_100651_create_piggybanks_table.php b/app/database/migrations/2014_07_05_100651_create_piggybanks_table.php index 4d3ae7bd35..8845ca6b1a 100644 --- a/app/database/migrations/2014_07_05_100651_create_piggybanks_table.php +++ b/app/database/migrations/2014_07_05_100651_create_piggybanks_table.php @@ -19,7 +19,7 @@ class CreatePiggybanksTable extends Migration $table->timestamps(); $table->integer('account_id')->unsigned(); $table->date('targetdate')->nullable(); - $table->string('name', 500); + $table->string('name', 100); $table->decimal('amount', 10, 2); $table->decimal('target', 10, 2)->nullable(); $table->integer('order')->unsigned(); @@ -28,6 +28,7 @@ class CreatePiggybanksTable extends Migration $table->foreign('account_id') ->references('id')->on('accounts') ->onDelete('cascade'); + $table->unique(['account_id','name']); } ); diff --git a/app/database/migrations/2014_07_05_143244_create_recurring_transactions_table.php b/app/database/migrations/2014_07_05_143244_create_recurring_transactions_table.php index 0a344e985b..9193cb8cf9 100644 --- a/app/database/migrations/2014_07_05_143244_create_recurring_transactions_table.php +++ b/app/database/migrations/2014_07_05_143244_create_recurring_transactions_table.php @@ -12,10 +12,20 @@ class CreateRecurringTransactionsTable extends Migration { */ public function up() { - Schema::create('recurringtransactions', function(Blueprint $table) + Schema::create('recurring_transactions', function(Blueprint $table) { $table->increments('id'); $table->timestamps(); + $table->integer('user_id')->unsigned(); + $table->string('name',50); + $table->decimal('amount_max',10,2); + $table->decimal('amount_min',10,2); + $table->boolean('active'); + $table->enum('repeat_freq', ['daily', 'weekly','monthly','quarterly','half-year','yearly']); + + $table->unique(['user_id','name']); + + }); } @@ -26,7 +36,7 @@ class CreateRecurringTransactionsTable extends Migration { */ public function down() { - Schema::drop('recurringtransactions'); + Schema::drop('recurring_transactions'); } } diff --git a/app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php b/app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php new file mode 100644 index 0000000000..b16dfccda3 --- /dev/null +++ b/app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php @@ -0,0 +1,43 @@ +increments('id'); + $table->integer('component_id')->unsigned(); + $table->integer('recurring_transaction_id')->unsigned(); + + // link components with component_id + $table->foreign('component_id') + ->references('id')->on('components') + ->onDelete('cascade'); + + // link transaction journals with transaction_journal_id + $table->foreign('recurring_transaction_id') + ->references('id')->on('recurring_transactions') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('component_recurring_transaction'); + } + +} diff --git a/app/lib/Firefly/Helper/Email/EmailHelper.php b/app/lib/Firefly/Helper/Email/EmailHelper.php index 26a31892ad..1967688d5f 100644 --- a/app/lib/Firefly/Helper/Email/EmailHelper.php +++ b/app/lib/Firefly/Helper/Email/EmailHelper.php @@ -18,7 +18,7 @@ class EmailHelper implements EmailHelperInterface $reset = \Str::random(32); $user->reset = $reset; - $user->save(); + $user->forceSave(); $email = $user->email; $data = ['reset' => $reset]; @@ -40,7 +40,7 @@ class EmailHelper implements EmailHelperInterface $password = \Str::random(12); $user->password = \Hash::make($password); $user->reset = \Str::random(32); // new one. - $user->save(); + $user->forceSave(); $email = $user->email; @@ -61,7 +61,7 @@ class EmailHelper implements EmailHelperInterface { $reset = \Str::random(32); $user->reset = $reset; - $user->save(); + $user->forceSave(); $email = $user->email; $data = ['reset' => $reset]; diff --git a/app/lib/Firefly/Storage/User/EloquentUserRepository.php b/app/lib/Firefly/Storage/User/EloquentUserRepository.php index 2de3a89b50..5af4f54220 100644 --- a/app/lib/Firefly/Storage/User/EloquentUserRepository.php +++ b/app/lib/Firefly/Storage/User/EloquentUserRepository.php @@ -17,30 +17,6 @@ class EloquentUserRepository implements UserRepositoryInterface { } - /** - * @param $array - * - * @return bool|\User - */ - public function register($array) - { - $user = new \User; - $user->email = isset($array['email']) ? $array['email'] : null; - $user->migrated = 0; - $user->reset = \Str::random(32); - $user->password = \Hash::make(\Str::random(12)); - - if (!$user->save()) { - \Log::error('Invalid user'); - \Session::flash('error', 'Input invalid, please try again: ' . $user->errors()->first()); - - return false; - } - $user->save(); - - return $user; - } - /** * @param $array * @@ -57,6 +33,16 @@ class EloquentUserRepository implements UserRepositoryInterface return false; } + /** + * @param $email + * + * @return mixed + */ + public function findByEmail($email) + { + return \User::where('email', $email)->first(); + } + /** * @param $reset * @@ -68,13 +54,26 @@ class EloquentUserRepository implements UserRepositoryInterface } /** - * @param $email + * @param $array * - * @return mixed + * @return bool|\User */ - public function findByEmail($email) + public function register($array) { - return \User::where('email', $email)->first(); + $user = new \User; + $user->email = isset($array['email']) ? $array['email'] : null; + $user->migrated = 0; + $user->reset = \Str::random(32); + $user->password = \Hash::make(\Str::random(12)); + + if (!$user->save()) { + \Log::error('Invalid user'); + \Session::flash('error', 'Input invalid, please try again: ' . $user->errors()->first()); + return false; + } + $user->save(); + + return $user; } /** @@ -89,13 +88,7 @@ class EloquentUserRepository implements UserRepositoryInterface /** @noinspection PhpUndefinedFieldInspection */ $user->password = $password; /** @noinspection PhpUndefinedMethodInspection */ - if($user->validate()) { - $user->save(); - } else { - var_dump($user->errors()->all()); - exit; - } - $user->save(); + $user->forceSave(); return true; } diff --git a/app/models/User.php b/app/models/User.php index b6852c4dcf..3788c1759a 100644 --- a/app/models/User.php +++ b/app/models/User.php @@ -42,7 +42,7 @@ class User extends Ardent implements UserInterface, RemindableInterface public static $rules = [ - 'email' => 'required|email', + 'email' => 'required|email|unique:users,email', 'migrated' => 'required|numeric|between:0,1', 'password' => 'required|between:60,60', 'reset' => 'between:32,32', @@ -66,7 +66,7 @@ class User extends Ardent implements UserInterface, RemindableInterface * * @var array */ - protected $hidden = array('remember_token'); + protected $hidden = ['remember_token']; public function accounts() { diff --git a/app/views/index.blade.php b/app/views/index.blade.php index 8a6b7173b9..32b19c235e 100644 --- a/app/views/index.blade.php +++ b/app/views/index.blade.php @@ -22,7 +22,6 @@

-
Bla bla

Migrate from Firefly II

@@ -32,7 +31,7 @@

-

Start from scratch

+

Start from scratch

Use this option if you are new to Firefly (III).