Various new scripts to improve sandstorm.io experience.

This commit is contained in:
James Cole
2017-02-04 08:42:06 +01:00
parent 5e5d4eca4b
commit dc348a72c8
10 changed files with 240 additions and 45 deletions

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# Checks if there's a composer.json, and if so, installs/runs composer. # Checks if there's a composer.json, and if so, installs/runs composer.
# Only runs when we connect the app to sandstorm (so once). # This script only runs once, when the app connects to sandstorm.
set -euo pipefail set -euo pipefail

3
.sandstorm/changelog.md Normal file
View File

@@ -0,0 +1,3 @@
# 3.4.3
* Initial release on Sandstorm.io

View File

@@ -0,0 +1,3 @@
"Firefly III" is a financial manager. It can help you keep track of expenses, income, budgets and everything in between. It even supports credit cards, shared household accounts and savings accounts! Its pretty fancy. You should use it to save and organise money.
Firefly works on the principle that if you know where youre money is going, you can stop it from going there.

View File

@@ -54,10 +54,6 @@ echo "Installing database.."
echo "CREATE DATABASE IF NOT EXISTS firefly; GRANT ALL on firefly.* TO 'firefly'@'localhost' IDENTIFIED BY 'firefly';" | mysql -uroot echo "CREATE DATABASE IF NOT EXISTS firefly; GRANT ALL on firefly.* TO 'firefly'@'localhost' IDENTIFIED BY 'firefly';" | mysql -uroot
echo "Done!" echo "Done!"
#echo "Generate key..."
#php /opt/app/artisan key:generate
#echo "Done!"
echo "Migrating..." echo "Migrating..."
php /opt/app/artisan migrate:refresh --seed --force php /opt/app/artisan migrate:refresh --seed --force
echo "Done!" echo "Done!"

BIN
.sandstorm/pgp-keyring Normal file

Binary file not shown.

BIN
.sandstorm/pgp-signature Normal file

Binary file not shown.

View File

@@ -25,6 +25,7 @@ etc/hosts.allow
etc/hosts.deny etc/hosts.deny
etc/inputrc etc/inputrc
etc/ld.so.cache etc/ld.so.cache
etc/locale.alias
etc/localtime etc/localtime
etc/mysql/conf.d etc/mysql/conf.d
etc/mysql/conf.d/mysqld_safe_syslog.cnf etc/mysql/conf.d/mysqld_safe_syslog.cnf
@@ -229,9 +230,21 @@ opt/app/app/Console/Commands/UseEncryption.php
opt/app/app/Console/Commands/VerifyDatabase.php opt/app/app/Console/Commands/VerifyDatabase.php
opt/app/app/Console/Kernel.php opt/app/app/Console/Kernel.php
opt/app/app/Exceptions/Handler.php opt/app/app/Exceptions/Handler.php
opt/app/app/Generator/Chart/Basic/ChartJsGenerator.php
opt/app/app/Generator/Chart/Basic/GeneratorInterface.php
opt/app/app/Helpers/Collector/JournalCollector.php
opt/app/app/Helpers/Collector/JournalCollectorInterface.php
opt/app/app/Http/Controllers/Auth/LoginController.php opt/app/app/Http/Controllers/Auth/LoginController.php
opt/app/app/Http/Controllers/BudgetController.php
opt/app/app/Http/Controllers/Chart/AccountController.php
opt/app/app/Http/Controllers/Chart/BudgetController.php
opt/app/app/Http/Controllers/Chart/CategoryController.php
opt/app/app/Http/Controllers/Controller.php opt/app/app/Http/Controllers/Controller.php
opt/app/app/Http/Controllers/HomeController.php opt/app/app/Http/Controllers/HomeController.php
opt/app/app/Http/Controllers/JavascriptController.php
opt/app/app/Http/Controllers/JsonController.php
opt/app/app/Http/Controllers/NewUserController.php
opt/app/app/Http/Controllers/ProfileController.php
opt/app/app/Http/Kernel.php opt/app/app/Http/Kernel.php
opt/app/app/Http/Middleware/Authenticate.php opt/app/app/Http/Middleware/Authenticate.php
opt/app/app/Http/Middleware/AuthenticateTwoFactor.php opt/app/app/Http/Middleware/AuthenticateTwoFactor.php
@@ -239,15 +252,27 @@ opt/app/app/Http/Middleware/Binder.php
opt/app/app/Http/Middleware/EncryptCookies.php opt/app/app/Http/Middleware/EncryptCookies.php
opt/app/app/Http/Middleware/Range.php opt/app/app/Http/Middleware/Range.php
opt/app/app/Http/Middleware/RedirectIfAuthenticated.php opt/app/app/Http/Middleware/RedirectIfAuthenticated.php
opt/app/app/Http/Middleware/Sandstorm.php
opt/app/app/Http/Middleware/VerifyCsrfToken.php opt/app/app/Http/Middleware/VerifyCsrfToken.php
opt/app/app/Http/Requests/NewUserFormRequest.php
opt/app/app/Http/Requests/Request.php
opt/app/app/Http/breadcrumbs.php opt/app/app/Http/breadcrumbs.php
opt/app/app/Jobs/Job.php opt/app/app/Jobs/Job.php
opt/app/app/Jobs/MailError.php opt/app/app/Jobs/MailError.php
opt/app/app/Models/Account.php opt/app/app/Models/Account.php
opt/app/app/Models/AccountMeta.php
opt/app/app/Models/AccountType.php opt/app/app/Models/AccountType.php
opt/app/app/Models/AvailableBudget.php
opt/app/app/Models/Bill.php
opt/app/app/Models/Budget.php
opt/app/app/Models/BudgetLimit.php
opt/app/app/Models/Category.php
opt/app/app/Models/Configuration.php opt/app/app/Models/Configuration.php
opt/app/app/Models/PiggyBank.php opt/app/app/Models/PiggyBank.php
opt/app/app/Models/Preference.php
opt/app/app/Models/Role.php opt/app/app/Models/Role.php
opt/app/app/Models/Tag.php
opt/app/app/Models/Transaction.php
opt/app/app/Models/TransactionCurrency.php opt/app/app/Models/TransactionCurrency.php
opt/app/app/Models/TransactionJournal.php opt/app/app/Models/TransactionJournal.php
opt/app/app/Models/TransactionType.php opt/app/app/Models/TransactionType.php
@@ -270,11 +295,34 @@ opt/app/app/Providers/RuleGroupServiceProvider.php
opt/app/app/Providers/RuleServiceProvider.php opt/app/app/Providers/RuleServiceProvider.php
opt/app/app/Providers/SearchServiceProvider.php opt/app/app/Providers/SearchServiceProvider.php
opt/app/app/Providers/TagServiceProvider.php opt/app/app/Providers/TagServiceProvider.php
opt/app/app/Repositories/Account/AccountRepository.php
opt/app/app/Repositories/Account/AccountRepositoryInterface.php opt/app/app/Repositories/Account/AccountRepositoryInterface.php
opt/app/app/Repositories/Account/AccountTasker.php
opt/app/app/Repositories/Account/AccountTaskerInterface.php
opt/app/app/Repositories/Bill/BillRepository.php
opt/app/app/Repositories/Bill/BillRepositoryInterface.php
opt/app/app/Repositories/Budget/BudgetRepository.php
opt/app/app/Repositories/Budget/BudgetRepositoryInterface.php
opt/app/app/Repositories/Category/CategoryRepository.php
opt/app/app/Repositories/Category/CategoryRepositoryInterface.php
opt/app/app/Repositories/Journal/JournalRepository.php
opt/app/app/Repositories/Journal/JournalRepositoryInterface.php
opt/app/app/Support/Amount.php
opt/app/app/Support/CacheProperties.php
opt/app/app/Support/Domain.php opt/app/app/Support/Domain.php
opt/app/app/Support/ExpandedForm.php
opt/app/app/Support/Facades/Amount.php
opt/app/app/Support/Facades/ExpandedForm.php
opt/app/app/Support/Facades/FireflyConfig.php opt/app/app/Support/Facades/FireflyConfig.php
opt/app/app/Support/Facades/Navigation.php
opt/app/app/Support/Facades/Preferences.php
opt/app/app/Support/Facades/Steam.php
opt/app/app/Support/FireflyConfig.php opt/app/app/Support/FireflyConfig.php
opt/app/app/Support/Models/TagSupport.php
opt/app/app/Support/Models/TransactionJournalSupport.php opt/app/app/Support/Models/TransactionJournalSupport.php
opt/app/app/Support/Navigation.php
opt/app/app/Support/Preferences.php
opt/app/app/Support/Steam.php
opt/app/app/Support/Twig/General.php opt/app/app/Support/Twig/General.php
opt/app/app/Support/Twig/Journal.php opt/app/app/Support/Twig/Journal.php
opt/app/app/Support/Twig/PiggyBank.php opt/app/app/Support/Twig/PiggyBank.php
@@ -320,24 +368,62 @@ opt/app/database/seeds/DatabaseSeeder.php
opt/app/database/seeds/PermissionSeeder.php opt/app/database/seeds/PermissionSeeder.php
opt/app/database/seeds/TransactionCurrencySeeder.php opt/app/database/seeds/TransactionCurrencySeeder.php
opt/app/database/seeds/TransactionTypeSeeder.php opt/app/database/seeds/TransactionTypeSeeder.php
opt/app/public/css/bootstrap-tour.min.css
opt/app/public/css/daterangepicker.css
opt/app/public/css/firefly.css opt/app/public/css/firefly.css
opt/app/public/index.php opt/app/public/index.php
opt/app/public/js/ff/budgets/index.js
opt/app/public/js/ff/charts.defaults.js
opt/app/public/js/ff/charts.js
opt/app/public/js/ff/firefly.js
opt/app/public/js/ff/guest.js opt/app/public/js/ff/guest.js
opt/app/public/js/ff/help.js
opt/app/public/js/ff/index.js
opt/app/public/js/lib/Chart.bundle.min.js
opt/app/public/js/lib/accounting.min.js
opt/app/public/js/lib/bootstrap-tour.min.js
opt/app/public/js/lib/daterangepicker.js
opt/app/public/js/lib/jquery-3.1.1.min.js opt/app/public/js/lib/jquery-3.1.1.min.js
opt/app/public/js/lib/moment.min.js
opt/app/public/lib/adminlte/css/AdminLTE.min.css opt/app/public/lib/adminlte/css/AdminLTE.min.css
opt/app/public/lib/adminlte/css/skins/skin-blue-light.min.css
opt/app/public/lib/adminlte/js/app.min.js
opt/app/public/lib/bootstrap/css/bootstrap.min.css opt/app/public/lib/bootstrap/css/bootstrap.min.css
opt/app/public/lib/bootstrap/js/bootstrap.min.js opt/app/public/lib/bootstrap/js/bootstrap.min.js
opt/app/public/lib/font-awesome/css/font-awesome.min.css opt/app/public/lib/font-awesome/css/font-awesome.min.css
opt/app/public/lib/font-awesome/fonts/fontawesome-webfont.woff2
opt/app/resources/lang/en_US/breadcrumbs.php
opt/app/resources/lang/en_US/config.php opt/app/resources/lang/en_US/config.php
opt/app/resources/lang/en_US/firefly.php
opt/app/resources/lang/en_US/form.php
opt/app/resources/lang/en_US/help.php
opt/app/resources/lang/en_US/validation.php
opt/app/resources/views/auth/login.twig opt/app/resources/views/auth/login.twig
opt/app/resources/views/budgets/index.twig
opt/app/resources/views/emails/error-html.twig opt/app/resources/views/emails/error-html.twig
opt/app/resources/views/emails/error-text.twig opt/app/resources/views/emails/error-text.twig
opt/app/resources/views/emails/footer-html.twig opt/app/resources/views/emails/footer-html.twig
opt/app/resources/views/emails/footer-text.twig opt/app/resources/views/emails/footer-text.twig
opt/app/resources/views/emails/header-html.twig opt/app/resources/views/emails/header-html.twig
opt/app/resources/views/emails/header-text.twig opt/app/resources/views/emails/header-text.twig
opt/app/resources/views/form/balance.twig
opt/app/resources/views/form/feedback.twig
opt/app/resources/views/form/help.twig
opt/app/resources/views/form/text.twig
opt/app/resources/views/index.twig
opt/app/resources/views/javascript/variables.twig
opt/app/resources/views/json/tour.twig
opt/app/resources/views/layout/default.twig
opt/app/resources/views/layout/guest.twig opt/app/resources/views/layout/guest.twig
opt/app/resources/views/list/journals-tiny-tasker.twig
opt/app/resources/views/new-user/index.twig
opt/app/resources/views/partials/boxes.twig
opt/app/resources/views/partials/control-bar.twig
opt/app/resources/views/partials/favicons.twig opt/app/resources/views/partials/favicons.twig
opt/app/resources/views/partials/flashes.twig
opt/app/resources/views/partials/menu-sidebar.twig
opt/app/resources/views/partials/page-header.twig
opt/app/resources/views/profile/index.twig
opt/app/routes/api.php opt/app/routes/api.php
opt/app/routes/console.php opt/app/routes/console.php
opt/app/routes/web.php opt/app/routes/web.php
@@ -353,6 +439,7 @@ opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Generator.php
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Manager.php opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Manager.php
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/ServiceProvider.php opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/ServiceProvider.php
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/View.php opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/View.php
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bootstrap3.blade.php
opt/app/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php opt/app/vendor/doctrine/common/lib/Doctrine/Common/EventManager.php
opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php
opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php opt/app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php
@@ -416,6 +503,8 @@ opt/app/vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.
opt/app/vendor/laravel/framework/src/Illuminate/Auth/Console/MakeAuthCommand.php opt/app/vendor/laravel/framework/src/Illuminate/Auth/Console/MakeAuthCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php opt/app/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php opt/app/vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php opt/app/vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php
opt/app/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php
@@ -428,6 +517,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php opt/app/vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php
opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php opt/app/vendor/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php
@@ -488,6 +578,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollect
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php
opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php opt/app/vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php
@@ -529,6 +620,11 @@ opt/app/vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php
@@ -542,8 +638,10 @@ opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRep
opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php opt/app/vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php opt/app/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php
opt/app/vendor/laravel/framework/src/Illuminate/Database/QueryException.php opt/app/vendor/laravel/framework/src/Illuminate/Database/QueryException.php
@@ -625,6 +723,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesR
opt/app/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php opt/app/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
opt/app/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php opt/app/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php
opt/app/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php opt/app/vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Request.php opt/app/vendor/laravel/framework/src/Illuminate/Http/Request.php
opt/app/vendor/laravel/framework/src/Illuminate/Http/Response.php opt/app/vendor/laravel/framework/src/Illuminate/Http/Response.php
@@ -686,6 +785,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterf
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php opt/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php opt/app/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php opt/app/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php opt/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php
opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php opt/app/vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php
@@ -701,26 +801,33 @@ opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionManager.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/Store.php opt/app/vendor/laravel/framework/src/Illuminate/Session/Store.php
opt/app/vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Arr.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Arr.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Collection.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Collection.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Composer.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Composer.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Config.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Config.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Gate.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Gate.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Input.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Response.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Fluent.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Fluent.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/HtmlString.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/Manager.php opt/app/vendor/laravel/framework/src/Illuminate/Support/Manager.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php opt/app/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php
opt/app/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php opt/app/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php
@@ -738,8 +845,11 @@ opt/app/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerif
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Factory.php opt/app/vendor/laravel/framework/src/Illuminate/Validation/Factory.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php opt/app/vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php
opt/app/vendor/laravel/framework/src/Illuminate/Validation/Validator.php opt/app/vendor/laravel/framework/src/Illuminate/Validation/Validator.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php opt/app/vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php
opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/EngineInterface.php opt/app/vendor/laravel/framework/src/Illuminate/View/Engines/EngineInterface.php
@@ -751,6 +861,10 @@ opt/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromS
opt/app/vendor/laravel/framework/src/Illuminate/View/View.php opt/app/vendor/laravel/framework/src/Illuminate/View/View.php
opt/app/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php opt/app/vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php
opt/app/vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php opt/app/vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php
opt/app/vendor/laravelcollective/html/src/Componentable.php
opt/app/vendor/laravelcollective/html/src/FormBuilder.php
opt/app/vendor/laravelcollective/html/src/FormFacade.php
opt/app/vendor/laravelcollective/html/src/HtmlBuilder.php
opt/app/vendor/laravelcollective/html/src/HtmlServiceProvider.php opt/app/vendor/laravelcollective/html/src/HtmlServiceProvider.php
opt/app/vendor/laravelcollective/html/src/helpers.php opt/app/vendor/laravelcollective/html/src/helpers.php
opt/app/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php opt/app/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php
@@ -765,6 +879,7 @@ opt/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
opt/app/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php opt/app/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php
opt/app/vendor/monolog/monolog/src/Monolog/Logger.php opt/app/vendor/monolog/monolog/src/Monolog/Logger.php
opt/app/vendor/nesbot/carbon/src/Carbon/Carbon.php opt/app/vendor/nesbot/carbon/src/Carbon/Carbon.php
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/en.php
opt/app/vendor/paragonie/random_compat/lib/random.php opt/app/vendor/paragonie/random_compat/lib/random.php
opt/app/vendor/pragmarx/google2fa/src/Vendor/Laravel/ServiceProvider.php opt/app/vendor/pragmarx/google2fa/src/Vendor/Laravel/ServiceProvider.php
opt/app/vendor/psr/log/Psr/Log/LoggerInterface.php opt/app/vendor/psr/log/Psr/Log/LoggerInterface.php
@@ -912,8 +1027,11 @@ opt/app/vendor/symfony/console/Style/SymfonyStyle.php
opt/app/vendor/symfony/debug/Exception/FatalErrorException.php opt/app/vendor/symfony/debug/Exception/FatalErrorException.php
opt/app/vendor/symfony/debug/Exception/FlattenException.php opt/app/vendor/symfony/debug/Exception/FlattenException.php
opt/app/vendor/symfony/debug/ExceptionHandler.php opt/app/vendor/symfony/debug/ExceptionHandler.php
opt/app/vendor/symfony/finder/Comparator/Comparator.php
opt/app/vendor/symfony/finder/Comparator/DateComparator.php
opt/app/vendor/symfony/finder/Finder.php opt/app/vendor/symfony/finder/Finder.php
opt/app/vendor/symfony/finder/Glob.php opt/app/vendor/symfony/finder/Glob.php
opt/app/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php opt/app/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php opt/app/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/FilenameFilterIterator.php opt/app/vendor/symfony/finder/Iterator/FilenameFilterIterator.php
@@ -922,9 +1040,12 @@ opt/app/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/PathFilterIterator.php opt/app/vendor/symfony/finder/Iterator/PathFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php opt/app/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php
opt/app/vendor/symfony/finder/SplFileInfo.php opt/app/vendor/symfony/finder/SplFileInfo.php
opt/app/vendor/symfony/http-foundation/AcceptHeader.php
opt/app/vendor/symfony/http-foundation/AcceptHeaderItem.php
opt/app/vendor/symfony/http-foundation/Cookie.php opt/app/vendor/symfony/http-foundation/Cookie.php
opt/app/vendor/symfony/http-foundation/FileBag.php opt/app/vendor/symfony/http-foundation/FileBag.php
opt/app/vendor/symfony/http-foundation/HeaderBag.php opt/app/vendor/symfony/http-foundation/HeaderBag.php
opt/app/vendor/symfony/http-foundation/JsonResponse.php
opt/app/vendor/symfony/http-foundation/ParameterBag.php opt/app/vendor/symfony/http-foundation/ParameterBag.php
opt/app/vendor/symfony/http-foundation/RedirectResponse.php opt/app/vendor/symfony/http-foundation/RedirectResponse.php
opt/app/vendor/symfony/http-foundation/Request.php opt/app/vendor/symfony/http-foundation/Request.php
@@ -944,6 +1065,11 @@ opt/app/vendor/symfony/routing/CompiledRoute.php
opt/app/vendor/symfony/routing/Route.php opt/app/vendor/symfony/routing/Route.php
opt/app/vendor/symfony/routing/RouteCompiler.php opt/app/vendor/symfony/routing/RouteCompiler.php
opt/app/vendor/symfony/routing/RouteCompilerInterface.php opt/app/vendor/symfony/routing/RouteCompilerInterface.php
opt/app/vendor/symfony/translation/Loader/ArrayLoader.php
opt/app/vendor/symfony/translation/Loader/LoaderInterface.php
opt/app/vendor/symfony/translation/MessageSelector.php
opt/app/vendor/symfony/translation/Translator.php
opt/app/vendor/symfony/translation/TranslatorBagInterface.php
opt/app/vendor/symfony/translation/TranslatorInterface.php opt/app/vendor/symfony/translation/TranslatorInterface.php
opt/app/vendor/symfony/var-dumper/Cloner/AbstractCloner.php opt/app/vendor/symfony/var-dumper/Cloner/AbstractCloner.php
opt/app/vendor/symfony/var-dumper/Cloner/ClonerInterface.php opt/app/vendor/symfony/var-dumper/Cloner/ClonerInterface.php
@@ -970,14 +1096,21 @@ opt/app/vendor/twig/twig/lib/Twig/LexerInterface.php
opt/app/vendor/twig/twig/lib/Twig/Loader/Array.php opt/app/vendor/twig/twig/lib/Twig/Loader/Array.php
opt/app/vendor/twig/twig/lib/Twig/Loader/Chain.php opt/app/vendor/twig/twig/lib/Twig/Loader/Chain.php
opt/app/vendor/twig/twig/lib/Twig/LoaderInterface.php opt/app/vendor/twig/twig/lib/Twig/LoaderInterface.php
opt/app/vendor/twig/twig/lib/Twig/Markup.php
opt/app/vendor/twig/twig/lib/Twig/Node.php opt/app/vendor/twig/twig/lib/Twig/Node.php
opt/app/vendor/twig/twig/lib/Twig/Node/Block.php opt/app/vendor/twig/twig/lib/Twig/Node/Block.php
opt/app/vendor/twig/twig/lib/Twig/Node/BlockReference.php opt/app/vendor/twig/twig/lib/Twig/Node/BlockReference.php
opt/app/vendor/twig/twig/lib/Twig/Node/Body.php opt/app/vendor/twig/twig/lib/Twig/Node/Body.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Array.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Array.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/AssignName.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/And.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Concat.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Equal.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Greater.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mod.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/Mul.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Binary/NotEqual.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Call.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Call.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Constant.php
@@ -985,13 +1118,19 @@ opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Filter.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Function.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Function.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/GetAttr.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Name.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Name.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Test.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Neg.php
opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php opt/app/vendor/twig/twig/lib/Twig/Node/Expression/Unary/Not.php
opt/app/vendor/twig/twig/lib/Twig/Node/For.php
opt/app/vendor/twig/twig/lib/Twig/Node/ForLoop.php
opt/app/vendor/twig/twig/lib/Twig/Node/If.php opt/app/vendor/twig/twig/lib/Twig/Node/If.php
opt/app/vendor/twig/twig/lib/Twig/Node/Include.php opt/app/vendor/twig/twig/lib/Twig/Node/Include.php
opt/app/vendor/twig/twig/lib/Twig/Node/Module.php opt/app/vendor/twig/twig/lib/Twig/Node/Module.php
opt/app/vendor/twig/twig/lib/Twig/Node/Print.php opt/app/vendor/twig/twig/lib/Twig/Node/Print.php
opt/app/vendor/twig/twig/lib/Twig/Node/Set.php
opt/app/vendor/twig/twig/lib/Twig/Node/Text.php opt/app/vendor/twig/twig/lib/Twig/Node/Text.php
opt/app/vendor/twig/twig/lib/Twig/NodeCaptureInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeInterface.php opt/app/vendor/twig/twig/lib/Twig/NodeInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeOutputInterface.php opt/app/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php
@@ -1046,6 +1185,7 @@ usr/bin/mysql_install_db
usr/bin/php usr/bin/php
usr/bin/php7.0 usr/bin/php7.0
usr/bin/sudo usr/bin/sudo
usr/lib/locale/locale-archive
usr/lib/php/20151012/bcmath.so usr/lib/php/20151012/bcmath.so
usr/lib/php/20151012/calendar.so usr/lib/php/20151012/calendar.so
usr/lib/php/20151012/ctype.so usr/lib/php/20151012/ctype.so
@@ -1170,6 +1310,7 @@ usr/lib/x86_64-linux-gnu/libxslt.so.1.1.28
usr/sbin/mysqld usr/sbin/mysqld
usr/sbin/nginx usr/sbin/nginx
usr/sbin/php-fpm7.0 usr/sbin/php-fpm7.0
usr/share/locale/locale.alias
usr/share/mysql/charsets/Index.xml usr/share/mysql/charsets/Index.xml
usr/share/mysql/english/errmsg.sys usr/share/mysql/english/errmsg.sys
usr/share/mysql/fill_help_tables.sql usr/share/mysql/fill_help_tables.sql

View File

@@ -15,7 +15,7 @@ const pkgdef :Spk.PackageDefinition = (
manifest = ( manifest = (
appTitle = (defaultText = "Firefly III"), appTitle = (defaultText = "Firefly III"),
appVersion = 0, appVersion = 1,
appMarketingVersion = (defaultText = "3.4.3"), appMarketingVersion = (defaultText = "3.4.3"),
actions = [ actions = [
# Define your "new document" handlers here. # Define your "new document" handlers here.
@@ -42,7 +42,8 @@ const pkgdef :Spk.PackageDefinition = (
website = "https://firefly-iii.github.io/", website = "https://firefly-iii.github.io/",
codeUrl = "https://github.com/firefly-iii/firefly-iii", codeUrl = "https://github.com/firefly-iii/firefly-iii",
license = (openSource = mit), #license = (openSource = mit),
license = (proprietary = (defaultText = embed "../LICENSE")),
# The license this package is distributed under. See # The license this package is distributed under. See
# https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license # https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license
@@ -54,40 +55,23 @@ const pkgdef :Spk.PackageDefinition = (
author = ( author = (
contactEmail = "thegrumpydictator@gmail.com", contactEmail = "thegrumpydictator@gmail.com",
upstreamAuthor = "James Cole", upstreamAuthor = "James Cole",
pgpSignature = embed "pgp-signature",
), ),
#pgpKeyring = embed "path/to/pgp-keyring", pgpKeyring = embed "pgp-keyring",
# A keyring in GPG keyring format containing all public keys needed to verify PGP signatures in description = (defaultText = embed "description.md"),
# this manifest (as of this writing, there is only one: `author.pgpSignature`).
#
# To generate a keyring containing just your public key, do:
#
# gpg --export <key-id> > keyring
#
# Where `<key-id>` is a PGP key ID or email address associated with the key.
#description = (defaultText = embed "path/to/description.md"),
# The app's description in Github-flavored Markdown format, to be displayed e.g.
# in an app store. Note that the Markdown is not permitted to contain HTML nor image tags (but
# you can include a list of screenshots separately).
shortDescription = (defaultText = "Financial management"), shortDescription = (defaultText = "Financial management"),
# A very short (one-to-three words) description of what the app does. For example,
# "Document editor", or "Notetaking", or "Email client". This will be displayed under the app
# title in the grid view in the app market.
screenshots = [ screenshots = [
# Screenshots to use for marketing purposes. Examples below. # Screenshots to use for marketing purposes. Examples below.
# Sizes are given in device-independent pixels, so if you took these # Sizes are given in device-independent pixels, so if you took these
# screenshots on a Retina-style high DPI screen, divide each dimension by two. # screenshots on a Retina-style high DPI screen, divide each dimension by two.
#(width = 746, height = 795, jpeg = embed "path/to/screenshot-1.jpeg"), (width = 1200, height = 1000, png = embed "screenshot-1.png"),
#(width = 640, height = 480, png = embed "path/to/screenshot-2.png"), (width = 1200, height = 1000, png = embed "screenshot-2.png"),
(width = 1200, height = 1518, png = embed "screenshot-3.png"),
], ],
#changeLog = (defaultText = embed "path/to/sandstorm-specific/changelog.md"), changeLog = (defaultText = embed "changelog.md"),
# Documents the history of changes in Github-flavored markdown format (with the same restrictions
# as govern `description`). We recommend formatting this with an H1 heading for each version
# followed by a bullet list of changes.
), ),
), ),

View File

@@ -20,6 +20,7 @@ use FireflyIII\Http\Middleware\IsAdmin;
use FireflyIII\Http\Middleware\Range; use FireflyIII\Http\Middleware\Range;
use FireflyIII\Http\Middleware\RedirectIfAuthenticated; use FireflyIII\Http\Middleware\RedirectIfAuthenticated;
use FireflyIII\Http\Middleware\RedirectIfTwoFactorAuthenticated; use FireflyIII\Http\Middleware\RedirectIfTwoFactorAuthenticated;
use FireflyIII\Http\Middleware\Sandstorm;
use FireflyIII\Http\Middleware\VerifyCsrfToken; use FireflyIII\Http\Middleware\VerifyCsrfToken;
use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth; use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth;
use Illuminate\Auth\Middleware\Authorize; use Illuminate\Auth\Middleware\Authorize;
@@ -80,6 +81,7 @@ class Kernel extends HttpKernel
// does not check 2fa // does not check 2fa
// does not check activation // does not check activation
'web' => [ 'web' => [
Sandstorm::class,
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
StartSession::class, StartSession::class,
@@ -87,8 +89,11 @@ class Kernel extends HttpKernel
VerifyCsrfToken::class, VerifyCsrfToken::class,
SubstituteBindings::class, SubstituteBindings::class,
], ],
// MUST NOT be logged in. Does not care about 2FA or confirmation. // MUST NOT be logged in. Does not care about 2FA or confirmation.
'user-not-logged-in' => [ 'user-not-logged-in' => [
Sandstorm::class,
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
StartSession::class, StartSession::class,
@@ -101,6 +106,7 @@ class Kernel extends HttpKernel
// MUST NOT have 2FA // MUST NOT have 2FA
// don't care about confirmation: // don't care about confirmation:
'user-logged-in-no-2fa' => [ 'user-logged-in-no-2fa' => [
Sandstorm::class,
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
StartSession::class, StartSession::class,
@@ -110,24 +116,12 @@ class Kernel extends HttpKernel
Authenticate::class, Authenticate::class,
RedirectIfTwoFactorAuthenticated::class, RedirectIfTwoFactorAuthenticated::class,
], ],
// MUST be logged in
// MUST have 2FA
// MUST NOT have confirmation.
'user-logged-in-2fa-no-activation' => [
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
Authenticate::class,
AuthenticateTwoFactor::class,
],
// MUST be logged in // MUST be logged in
// don't care about 2fa // don't care about 2fa
// don't care about confirmation. // don't care about confirmation.
'user-simple-auth' => [ 'user-simple-auth' => [
Sandstorm::class,
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
StartSession::class, StartSession::class,
@@ -142,6 +136,7 @@ class Kernel extends HttpKernel
// MUST be confirmed. // MUST be confirmed.
// (this group includes the other Firefly middleware) // (this group includes the other Firefly middleware)
'user-full-auth' => [ 'user-full-auth' => [
Sandstorm::class,
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
StartSession::class, StartSession::class,
@@ -159,6 +154,7 @@ class Kernel extends HttpKernel
// MUST have owner role // MUST have owner role
// (this group includes the other Firefly middleware) // (this group includes the other Firefly middleware)
'admin' => [ 'admin' => [
Sandstorm::class,
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,
StartSession::class, StartSession::class,

View File

@@ -0,0 +1,72 @@
<?php
/**
* Sandstorm.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace FireflyIII\Http\Middleware;
use Auth;
use Closure;
use FireflyIII\User;
use Illuminate\Http\Request;
/**
* Class Sandstorm
*
* @package FireflyIII\Http\Middleware
*/
class Sandstorm
{
/**
* Detects if is using Sandstorm, and responds by logging the user
* in and/or creating an account.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
*
* @return mixed
*/
public function handle(Request $request, Closure $next, $guard = null)
{
// is in Sandstorm environment?
$sandstorm = intval(getenv('SANDSTORM')) === 1;
if (!$sandstorm) {
return $next($request);
}
// we're in sandstorm! is user a guest?
if (Auth::guard($guard)->guest()) {
$userId = strval($request->header('X-Sandstorm-User-Id'));
if (strlen($userId) > 0) {
// find user?
$email = $userId . '@firefly';
$user = User::whereEmail($email)->first();
if (is_null($user)) {
$user = User::create(
[
'email' => $email,
'password' => str_random(16),
]
);
}
// login user:
Auth::guard($guard)->login($user);
} else {
echo 'user id no length, guest?';
exit;
}
}
return $next($request);
}
}