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
-
+
Use this option if you are new to Firefly (III).