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
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
10 changed files with 240 additions and 45 deletions

View File

@ -1,6 +1,6 @@
#!/bin/bash
# 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

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 "Done!"
#echo "Generate key..."
#php /opt/app/artisan key:generate
#echo "Done!"
echo "Migrating..."
php /opt/app/artisan migrate:refresh --seed --force
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/inputrc
etc/ld.so.cache
etc/locale.alias
etc/localtime
etc/mysql/conf.d
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/Kernel.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/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/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/Middleware/Authenticate.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/Range.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/Requests/NewUserFormRequest.php
opt/app/app/Http/Requests/Request.php
opt/app/app/Http/breadcrumbs.php
opt/app/app/Jobs/Job.php
opt/app/app/Jobs/MailError.php
opt/app/app/Models/Account.php
opt/app/app/Models/AccountMeta.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/PiggyBank.php
opt/app/app/Models/Preference.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/TransactionJournal.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/SearchServiceProvider.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/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/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/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/Models/TagSupport.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/Journal.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/TransactionCurrencySeeder.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/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/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/moment.min.js
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/js/bootstrap.min.js
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/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/budgets/index.twig
opt/app/resources/views/emails/error-html.twig
opt/app/resources/views/emails/error-text.twig
opt/app/resources/views/emails/footer-html.twig
opt/app/resources/views/emails/footer-text.twig
opt/app/resources/views/emails/header-html.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/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/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/console.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/ServiceProvider.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/dbal/lib/Doctrine/DBAL/Configuration.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/CreatesUserProviders.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/Passwords/CanResetPassword.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/Console/CacheTableCommand.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/KeyForgotten.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/ShouldQueue.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/UrlRoutable.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/Collection.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/SoftDeletes.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/MySqlConnection.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/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/Processor.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/Hashing/BcryptHasher.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/Request.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/Pipeline.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/RouteCollection.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/SessionServiceProvider.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/Arr.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/Facades/App.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/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/Event.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/Input.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/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/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/Validator.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/HtmlString.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/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/PresenceVerifierInterface.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/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/Engines/CompilerEngine.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/ViewFinderInterface.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/helpers.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/Logger.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/pragmarx/google2fa/src/Vendor/Laravel/ServiceProvider.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/FlattenException.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/Glob.php
opt/app/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php
opt/app/vendor/symfony/finder/Iterator/FileTypeFilterIterator.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/RecursiveDirectoryIterator.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/FileBag.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/RedirectResponse.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/RouteCompiler.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/var-dumper/Cloner/AbstractCloner.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/Chain.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/Block.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/Expression.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/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/Call.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/GetAttr.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/Neg.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/Include.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/Set.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/NodeOutputInterface.php
opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php
@ -1046,6 +1185,7 @@ usr/bin/mysql_install_db
usr/bin/php
usr/bin/php7.0
usr/bin/sudo
usr/lib/locale/locale-archive
usr/lib/php/20151012/bcmath.so
usr/lib/php/20151012/calendar.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/nginx
usr/sbin/php-fpm7.0
usr/share/locale/locale.alias
usr/share/mysql/charsets/Index.xml
usr/share/mysql/english/errmsg.sys
usr/share/mysql/fill_help_tables.sql

View File

@ -15,7 +15,7 @@ const pkgdef :Spk.PackageDefinition = (
manifest = (
appTitle = (defaultText = "Firefly III"),
appVersion = 0,
appVersion = 1,
appMarketingVersion = (defaultText = "3.4.3"),
actions = [
# Define your "new document" handlers here.
@ -42,7 +42,8 @@ const pkgdef :Spk.PackageDefinition = (
website = "https://firefly-iii.github.io/",
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
# https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license
@ -54,40 +55,23 @@ const pkgdef :Spk.PackageDefinition = (
author = (
contactEmail = "thegrumpydictator@gmail.com",
upstreamAuthor = "James Cole",
pgpSignature = embed "pgp-signature",
),
#pgpKeyring = embed "path/to/pgp-keyring",
# A keyring in GPG keyring format containing all public keys needed to verify PGP signatures in
# 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).
pgpKeyring = embed "pgp-keyring",
description = (defaultText = embed "description.md"),
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 to use for marketing purposes. Examples below.
# 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.
#(width = 746, height = 795, jpeg = embed "path/to/screenshot-1.jpeg"),
#(width = 640, height = 480, png = embed "path/to/screenshot-2.png"),
(width = 1200, height = 1000, png = embed "screenshot-1.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"),
# 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.
changeLog = (defaultText = embed "changelog.md"),
),
),

View File

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