diff --git a/app/User.php b/app/User.php index d0620307ec..db03b5189f 100644 --- a/app/User.php +++ b/app/User.php @@ -32,6 +32,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Log; use Request; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * Class User. @@ -60,6 +61,23 @@ class User extends Authenticatable */ 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 * Link to accounts. diff --git a/config/firefly.php b/config/firefly.php index 824eac98f6..0338e589d6 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -153,12 +153,12 @@ return [ 'attachment' => \FireflyIII\Models\Attachment::class, 'bill' => \FireflyIII\Models\Bill::class, 'budget' => \FireflyIII\Models\Budget::class, + 'budgetLimit' => \FireflyIII\Models\BudgetLimit::class, 'category' => \FireflyIII\Models\Category::class, 'linkType' => \FireflyIII\Models\LinkType::class, - 'transaction_type' => \FireflyIII\Models\TransactionType::class, + 'transactionType' => \FireflyIII\Models\TransactionType::class, 'journalLink' => \FireflyIII\Models\TransactionJournalLink::class, 'currency' => \FireflyIII\Models\TransactionCurrency::class, - 'budgetlimit' => \FireflyIII\Models\BudgetLimit::class, 'piggyBank' => \FireflyIII\Models\PiggyBank::class, 'tj' => \FireflyIII\Models\TransactionJournal::class, 'tag' => \FireflyIII\Models\Tag::class, @@ -166,20 +166,29 @@ return [ 'ruleGroup' => \FireflyIII\Models\RuleGroup::class, 'exportJob' => \FireflyIII\Models\ExportJob::class, 'importJob' => \FireflyIII\Models\ImportJob::class, + 'user' => \FireflyIII\User::class, - // binders - 'fromCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class, - 'toCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class, - 'unfinishedJournal' => \FireflyIII\Support\Binder\UnfinishedJournal::class, + // strings + + // dates + '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, 'expenseList' => \FireflyIII\Support\Binder\AccountList::class, 'budgetList' => \FireflyIII\Support\Binder\BudgetList::class, 'journalList' => \FireflyIII\Support\Binder\JournalList::class, 'categoryList' => \FireflyIII\Support\Binder\CategoryList::class, 'tagList' => \FireflyIII\Support\Binder\TagList::class, - 'start_date' => \FireflyIII\Support\Binder\Date::class, - 'end_date' => \FireflyIII\Support\Binder\Date::class, - 'date' => \FireflyIII\Support\Binder\Date::class, + + // others + 'fromCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class, + 'toCurrencyCode' => \FireflyIII\Support\Binder\CurrencyCode::class, + 'unfinishedJournal' => \FireflyIII\Support\Binder\UnfinishedJournal::class, + + ], 'rule-triggers' => [ 'user_action' => 'FireflyIII\TransactionRules\Triggers\UserAction', diff --git a/routes/web.php b/routes/web.php index cbc6293852..849d4e49ee 100755 --- a/routes/web.php +++ b/routes/web.php @@ -170,7 +170,7 @@ Route::group( Route::get('edit/{budget}', ['uses' => 'BudgetController@edit', 'as' => 'edit']); Route::get('delete/{budget}', ['uses' => 'BudgetController@delete', 'as' => 'delete']); 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('{moment?}', ['uses' => 'BudgetController@index', 'as' => 'index']); @@ -279,13 +279,13 @@ Route::group( 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/{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']); // these charts are used in budget/show: - 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-expense/{budget}/{budgetlimit?}', ['uses' => 'BudgetController@expenseExpense', 'as' => 'expense-expense']); + 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-expense/{budget}/{budgetLimit?}', ['uses' => 'BudgetController@expenseExpense', 'as' => 'expense-expense']); // these charts are used in reports (category reports): Route::get( @@ -817,8 +817,8 @@ Route::group( */ Route::group( ['middleware' => 'user-full-auth', 'namespace' => 'Transaction', 'prefix' => 'transactions/convert', 'as' => 'transactions.convert.'], function () { - Route::get('{transaction_type}/{tj}', ['uses' => 'ConvertController@index', 'as' => 'index']); - Route::post('{transaction_type}/{tj}', ['uses' => 'ConvertController@postIndex', 'as' => 'index.post']); + Route::get('{transactionType}/{tj}', ['uses' => 'ConvertController@index', 'as' => 'index']); + Route::post('{transactionType}/{tj}', ['uses' => 'ConvertController@postIndex', 'as' => 'index.post']); } );