Clean up binders.

This commit is contained in:
James Cole
2018-01-10 07:51:47 +01:00
parent c045193246
commit 48c16c3dcc
3 changed files with 43 additions and 16 deletions

View File

@@ -32,6 +32,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Log; use Log;
use Request; use Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/** /**
* Class User. * Class User.
@@ -60,6 +61,23 @@ class User extends Authenticatable
*/ */
protected $table = 'users'; protected $table = 'users';
/**
* @param string $value
*
* @return User
*/
public static function routeBinder(string $value): User
{
if (auth()->check()) {
$userId = intval($value);
$user = self::find($userId);
if (!is_null($user)) {
return $user;
}
}
throw new NotFoundHttpException;
}
/** /**
* @codeCoverageIgnore * @codeCoverageIgnore
* Link to accounts. * Link to accounts.

View File

@@ -153,12 +153,12 @@ return [
'attachment' => \FireflyIII\Models\Attachment::class, 'attachment' => \FireflyIII\Models\Attachment::class,
'bill' => \FireflyIII\Models\Bill::class, 'bill' => \FireflyIII\Models\Bill::class,
'budget' => \FireflyIII\Models\Budget::class, 'budget' => \FireflyIII\Models\Budget::class,
'budgetLimit' => \FireflyIII\Models\BudgetLimit::class,
'category' => \FireflyIII\Models\Category::class, 'category' => \FireflyIII\Models\Category::class,
'linkType' => \FireflyIII\Models\LinkType::class, 'linkType' => \FireflyIII\Models\LinkType::class,
'transaction_type' => \FireflyIII\Models\TransactionType::class, 'transactionType' => \FireflyIII\Models\TransactionType::class,
'journalLink' => \FireflyIII\Models\TransactionJournalLink::class, 'journalLink' => \FireflyIII\Models\TransactionJournalLink::class,
'currency' => \FireflyIII\Models\TransactionCurrency::class, 'currency' => \FireflyIII\Models\TransactionCurrency::class,
'budgetlimit' => \FireflyIII\Models\BudgetLimit::class,
'piggyBank' => \FireflyIII\Models\PiggyBank::class, 'piggyBank' => \FireflyIII\Models\PiggyBank::class,
'tj' => \FireflyIII\Models\TransactionJournal::class, 'tj' => \FireflyIII\Models\TransactionJournal::class,
'tag' => \FireflyIII\Models\Tag::class, 'tag' => \FireflyIII\Models\Tag::class,
@@ -166,20 +166,29 @@ return [
'ruleGroup' => \FireflyIII\Models\RuleGroup::class, 'ruleGroup' => \FireflyIII\Models\RuleGroup::class,
'exportJob' => \FireflyIII\Models\ExportJob::class, 'exportJob' => \FireflyIII\Models\ExportJob::class,
'importJob' => \FireflyIII\Models\ImportJob::class, 'importJob' => \FireflyIII\Models\ImportJob::class,
'user' => \FireflyIII\User::class,
// binders // strings
'fromCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class,
'toCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class, // dates
'unfinishedJournal' => \FireflyIII\Support\Binder\UnfinishedJournal::class, 'start_date' => \FireflyIII\Support\Binder\Date::class,
'end_date' => \FireflyIII\Support\Binder\Date::class,
'date' => \FireflyIII\Support\Binder\Date::class,
// lists
'accountList' => \FireflyIII\Support\Binder\AccountList::class, 'accountList' => \FireflyIII\Support\Binder\AccountList::class,
'expenseList' => \FireflyIII\Support\Binder\AccountList::class, 'expenseList' => \FireflyIII\Support\Binder\AccountList::class,
'budgetList' => \FireflyIII\Support\Binder\BudgetList::class, 'budgetList' => \FireflyIII\Support\Binder\BudgetList::class,
'journalList' => \FireflyIII\Support\Binder\JournalList::class, 'journalList' => \FireflyIII\Support\Binder\JournalList::class,
'categoryList' => \FireflyIII\Support\Binder\CategoryList::class, 'categoryList' => \FireflyIII\Support\Binder\CategoryList::class,
'tagList' => \FireflyIII\Support\Binder\TagList::class, 'tagList' => \FireflyIII\Support\Binder\TagList::class,
'start_date' => \FireflyIII\Support\Binder\Date::class,
'end_date' => \FireflyIII\Support\Binder\Date::class, // others
'date' => \FireflyIII\Support\Binder\Date::class, 'fromCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class,
'toCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class,
'unfinishedJournal' => \FireflyIII\Support\Binder\UnfinishedJournal::class,
], ],
'rule-triggers' => [ 'rule-triggers' => [
'user_action' => 'FireflyIII\TransactionRules\Triggers\UserAction', 'user_action' => 'FireflyIII\TransactionRules\Triggers\UserAction',

View File

@@ -170,7 +170,7 @@ Route::group(
Route::get('edit/{budget}', ['uses' => 'BudgetController@edit', 'as' => 'edit']); Route::get('edit/{budget}', ['uses' => 'BudgetController@edit', 'as' => 'edit']);
Route::get('delete/{budget}', ['uses' => 'BudgetController@delete', 'as' => 'delete']); Route::get('delete/{budget}', ['uses' => 'BudgetController@delete', 'as' => 'delete']);
Route::get('show/{budget}', ['uses' => 'BudgetController@show', 'as' => 'show']); Route::get('show/{budget}', ['uses' => 'BudgetController@show', 'as' => 'show']);
Route::get('show/{budget}/{budgetlimit}', ['uses' => 'BudgetController@showByBudgetLimit', 'as' => 'show.limit']); Route::get('show/{budget}/{budgetLimit}', ['uses' => 'BudgetController@showByBudgetLimit', 'as' => 'show.limit']);
Route::get('list/no-budget/{moment?}', ['uses' => 'BudgetController@noBudget', 'as' => 'no-budget']); Route::get('list/no-budget/{moment?}', ['uses' => 'BudgetController@noBudget', 'as' => 'no-budget']);
Route::get('{moment?}', ['uses' => 'BudgetController@index', 'as' => 'index']); Route::get('{moment?}', ['uses' => 'BudgetController@index', 'as' => 'index']);
@@ -279,13 +279,13 @@ Route::group(
Route::get('frontpage', ['uses' => 'BudgetController@frontpage', 'as' => 'frontpage']); Route::get('frontpage', ['uses' => 'BudgetController@frontpage', 'as' => 'frontpage']);
Route::get('period/0/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@periodNoBudget', 'as' => 'period.no-budget']); Route::get('period/0/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@periodNoBudget', 'as' => 'period.no-budget']);
Route::get('period/{budget}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period']); Route::get('period/{budget}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period']);
Route::get('budget/{budget}/{budgetlimit}', ['uses' => 'BudgetController@budgetLimit', 'as' => 'budget-limit']); Route::get('budget/{budget}/{budgetLimit}', ['uses' => 'BudgetController@budgetLimit', 'as' => 'budget-limit']);
Route::get('budget/{budget}', ['uses' => 'BudgetController@budget', 'as' => 'budget']); Route::get('budget/{budget}', ['uses' => 'BudgetController@budget', 'as' => 'budget']);
// these charts are used in budget/show: // these charts are used in budget/show:
Route::get('expense-category/{budget}/{budgetlimit?}', ['uses' => 'BudgetController@expenseCategory', 'as' => 'expense-category']); Route::get('expense-category/{budget}/{budgetLimit?}', ['uses' => 'BudgetController@expenseCategory', 'as' => 'expense-category']);
Route::get('expense-asset/{budget}/{budgetlimit?}', ['uses' => 'BudgetController@expenseAsset', 'as' => 'expense-asset']); Route::get('expense-asset/{budget}/{budgetLimit?}', ['uses' => 'BudgetController@expenseAsset', 'as' => 'expense-asset']);
Route::get('expense-expense/{budget}/{budgetlimit?}', ['uses' => 'BudgetController@expenseExpense', 'as' => 'expense-expense']); Route::get('expense-expense/{budget}/{budgetLimit?}', ['uses' => 'BudgetController@expenseExpense', 'as' => 'expense-expense']);
// these charts are used in reports (category reports): // these charts are used in reports (category reports):
Route::get( Route::get(
@@ -817,8 +817,8 @@ Route::group(
*/ */
Route::group( Route::group(
['middleware' => 'user-full-auth', 'namespace' => 'Transaction', 'prefix' => 'transactions/convert', 'as' => 'transactions.convert.'], function () { ['middleware' => 'user-full-auth', 'namespace' => 'Transaction', 'prefix' => 'transactions/convert', 'as' => 'transactions.convert.'], function () {
Route::get('{transaction_type}/{tj}', ['uses' => 'ConvertController@index', 'as' => 'index']); Route::get('{transactionType}/{tj}', ['uses' => 'ConvertController@index', 'as' => 'index']);
Route::post('{transaction_type}/{tj}', ['uses' => 'ConvertController@postIndex', 'as' => 'index.post']); Route::post('{transactionType}/{tj}', ['uses' => 'ConvertController@postIndex', 'as' => 'index.post']);
} }
); );