From c962050b309f263ebed749e1ecaa9b4eacd30d5a Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 30 Oct 2019 08:42:02 +0000 Subject: [PATCH] adding config to git --- composer.json | 3 +- composer.lock | 10 +- config/app.default.php | 400 ++++++++++++++++++ config/bootstrap.php | 203 +++++++++ config/bootstrap_cli.php | 28 ++ config/paths.php | 89 ++++ config/requirements.php | 39 ++ config/routes.php | 106 +++++ config/schema/i18n.sql | 18 + config/schema/sessions.sql | 15 + .../TransactionCreationsController.php | 108 ++++- src/Model/Entity/TransactionCreation.php | 1 + src/Model/Messages/Gradido/Key.php | 4 +- src/Model/Messages/Gradido/ReceiverAmount.php | 4 +- src/Model/Messages/Gradido/SenderAmount.php | 4 +- src/Model/Messages/Gradido/SignatureMap.php | 16 +- src/Model/Messages/Gradido/SignaturePair.php | 4 +- .../Messages/Gradido/StateCreateGroup.php | 32 +- .../Gradido/StateGroupChangeParent.php | 46 +- src/Model/Messages/Gradido/Timestamp.php | 4 +- .../Messages/Gradido/TimestampSeconds.php | 4 +- src/Model/Messages/Gradido/Transaction.php | 32 +- .../Messages/Gradido/TransactionBody.php | 52 +-- .../Messages/Gradido/TransactionCreation.php | 18 +- src/Model/Messages/Gradido/Transfer.php | 28 +- .../protobuf/gradido/BasicTypes.proto | 44 -- .../protobuf/gradido/StateCreateGroup.proto | 15 - .../gradido/StateGroupChangeParent.proto | 12 - .../protobuf/gradido/Transaction.proto | 19 - .../protobuf/gradido/TransactionBody.proto | 18 - .../gradido/TransactionCreation.proto | 13 - .../Messages/protobuf/gradido/Transfer.proto | 10 - src/Template/Layout/frontend.ctp | 2 +- 33 files changed, 1135 insertions(+), 266 deletions(-) create mode 100644 config/app.default.php create mode 100644 config/bootstrap.php create mode 100644 config/bootstrap_cli.php create mode 100644 config/paths.php create mode 100644 config/requirements.php create mode 100644 config/routes.php create mode 100644 config/schema/i18n.sql create mode 100644 config/schema/sessions.sql delete mode 100644 src/Model/Messages/protobuf/gradido/BasicTypes.proto delete mode 100644 src/Model/Messages/protobuf/gradido/StateCreateGroup.proto delete mode 100644 src/Model/Messages/protobuf/gradido/StateGroupChangeParent.proto delete mode 100644 src/Model/Messages/protobuf/gradido/Transaction.proto delete mode 100644 src/Model/Messages/protobuf/gradido/TransactionBody.proto delete mode 100644 src/Model/Messages/protobuf/gradido/TransactionCreation.proto delete mode 100644 src/Model/Messages/protobuf/gradido/Transfer.proto diff --git a/composer.json b/composer.json index 4094bda89..0f6ba320a 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,8 @@ }, "autoload": { "psr-4": { - "App\\": "src/" + "App\\": "src/", + "" : "src/" } }, "autoload-dev": { diff --git a/composer.lock b/composer.lock index 5a686e44e..e31a1b846 100644 --- a/composer.lock +++ b/composer.lock @@ -3860,16 +3860,16 @@ }, { "name": "seld/jsonlint", - "version": "1.7.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38" + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38", - "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/e2e5d290e4d2a4f0eb449f510071392e00e10d19", + "reference": "e2e5d290e4d2a4f0eb449f510071392e00e10d19", "shasum": "" }, "require": { @@ -3905,7 +3905,7 @@ "parser", "validator" ], - "time": "2018-01-24T12:46:19+00:00" + "time": "2019-10-24T14:27:39+00:00" }, { "name": "seld/phar-utils", diff --git a/config/app.default.php b/config/app.default.php new file mode 100644 index 000000000..01f3b88c9 --- /dev/null +++ b/config/app.default.php @@ -0,0 +1,400 @@ + filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), + + /** + * Configure basic information about the application. + * + * - namespace - The namespace to find app classes under. + * - defaultLocale - The default locale for translation, formatting currencies and numbers, date and time. + * - encoding - The encoding used for HTML + database connections. + * - base - The base directory the app resides in. If false this + * will be auto detected. + * - dir - Name of app directory. + * - webroot - The webroot directory. + * - wwwRoot - The file path to webroot. + * - baseUrl - To configure CakePHP to *not* use mod_rewrite and to + * use CakePHP pretty URLs, remove these .htaccess + * files: + * /.htaccess + * /webroot/.htaccess + * And uncomment the baseUrl key below. + * - fullBaseUrl - A base URL to use for absolute links. When set to false (default) + * CakePHP generates required value based on `HTTP_HOST` environment variable. + * However, you can define it manually to optimize performance or if you + * are concerned about people manipulating the `Host` header. + * - imageBaseUrl - Web path to the public images directory under webroot. + * - cssBaseUrl - Web path to the public css directory under webroot. + * - jsBaseUrl - Web path to the public js directory under webroot. + * - paths - Configure paths for non class based resources. Supports the + * `plugins`, `templates`, `locales` subkeys, which allow the definition of + * paths for plugins, view templates and locale files respectively. + */ + 'App' => [ + 'namespace' => 'App', + 'encoding' => env('APP_ENCODING', 'UTF-8'), + 'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'), + 'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'), + 'base' => false, + 'dir' => 'src', + 'webroot' => 'webroot', + 'wwwRoot' => WWW_ROOT, + //'baseUrl' => env('SCRIPT_NAME'), + 'fullBaseUrl' => false, + 'imageBaseUrl' => 'img/', + 'cssBaseUrl' => 'css/', + 'jsBaseUrl' => 'js/', + 'paths' => [ + 'plugins' => [ROOT . DS . 'plugins' . DS], + 'templates' => [APP . 'Template' . DS], + 'locales' => [APP . 'Locale' . DS], + ], + ], + + /** + * Security and encryption configuration + * + * - salt - A random string used in security hashing methods. + * The salt value is also used as the encryption key. + * You should treat it as extremely sensitive data. + */ + 'Security' => [ + 'salt' => env('SECURITY_SALT', '__SALT__'), + ], + + /** + * Apply timestamps with the last modified time to static assets (js, css, images). + * Will append a querystring parameter containing the time the file was modified. + * This is useful for busting browser caches. + * + * Set to true to apply timestamps when debug is true. Set to 'force' to always + * enable timestamping regardless of debug value. + */ + 'Asset' => [ + //'timestamp' => true, + // 'cacheTime' => '+1 year' + ], + + /** + * Configure the cache adapters. + */ + 'Cache' => [ + 'default' => [ + 'className' => FileEngine::class, + 'path' => CACHE, + 'url' => env('CACHE_DEFAULT_URL', null), + ], + + /** + * Configure the cache used for general framework caching. + * Translation cache files are stored with this configuration. + * Duration will be set to '+2 minutes' in bootstrap.php when debug = true + * If you set 'className' => 'Null' core cache will be disabled. + */ + '_cake_core_' => [ + 'className' => FileEngine::class, + 'prefix' => 'myapp_cake_core_', + 'path' => CACHE . 'persistent/', + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKECORE_URL', null), + ], + + /** + * Configure the cache for model and datasource caches. This cache + * configuration is used to store schema descriptions, and table listings + * in connections. + * Duration will be set to '+2 minutes' in bootstrap.php when debug = true + */ + '_cake_model_' => [ + 'className' => FileEngine::class, + 'prefix' => 'myapp_cake_model_', + 'path' => CACHE . 'models/', + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKEMODEL_URL', null), + ], + + /** + * Configure the cache for routes. The cached routes collection is built the + * first time the routes are processed via `config/routes.php`. + * Duration will be set to '+2 seconds' in bootstrap.php when debug = true + */ + '_cake_routes_' => [ + 'className' => FileEngine::class, + 'prefix' => 'myapp_cake_routes_', + 'path' => CACHE, + 'serialize' => true, + 'duration' => '+1 years', + 'url' => env('CACHE_CAKEROUTES_URL', null), + ], + ], + + /** + * Configure the Error and Exception handlers used by your application. + * + * By default errors are displayed using Debugger, when debug is true and logged + * by Cake\Log\Log when debug is false. + * + * In CLI environments exceptions will be printed to stderr with a backtrace. + * In web environments an HTML page will be displayed for the exception. + * With debug true, framework errors like Missing Controller will be displayed. + * When debug is false, framework errors will be coerced into generic HTTP errors. + * + * Options: + * + * - `errorLevel` - int - The level of errors you are interested in capturing. + * - `trace` - boolean - Whether or not backtraces should be included in + * logged errors/exceptions. + * - `log` - boolean - Whether or not you want exceptions logged. + * - `exceptionRenderer` - string - The class responsible for rendering + * uncaught exceptions. If you choose a custom class you should place + * the file for that class in src/Error. This class needs to implement a + * render method. + * - `skipLog` - array - List of exceptions to skip for logging. Exceptions that + * extend one of the listed exceptions will also be skipped for logging. + * E.g.: + * `'skipLog' => ['Cake\Http\Exception\NotFoundException', 'Cake\Http\Exception\UnauthorizedException']` + * - `extraFatalErrorMemory` - int - The number of megabytes to increase + * the memory limit by when a fatal error is encountered. This allows + * breathing room to complete logging or error handling. + */ + 'Error' => [ + 'errorLevel' => E_ALL, + 'exceptionRenderer' => ExceptionRenderer::class, + 'skipLog' => [], + 'log' => true, + 'trace' => true, + ], + + /** + * Email configuration. + * + * By defining transports separately from delivery profiles you can easily + * re-use transport configuration across multiple profiles. + * + * You can specify multiple configurations for production, development and + * testing. + * + * Each transport needs a `className`. Valid options are as follows: + * + * Mail - Send using PHP mail function + * Smtp - Send using SMTP + * Debug - Do not send the email, just return the result + * + * You can add custom transports (or override existing transports) by adding the + * appropriate file to src/Mailer/Transport. Transports should be named + * 'YourTransport.php', where 'Your' is the name of the transport. + */ + 'EmailTransport' => [ + 'default' => [ + 'className' => MailTransport::class, + /* + * The following keys are used in SMTP transports: + */ + 'host' => 'localhost', + 'port' => 25, + 'timeout' => 30, + 'username' => null, + 'password' => null, + 'client' => null, + 'tls' => null, + 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), + ], + ], + + /** + * Email delivery profiles + * + * Delivery profiles allow you to predefine various properties about email + * messages from your application and give the settings a name. This saves + * duplication across your application and makes maintenance and development + * easier. Each profile accepts a number of keys. See `Cake\Mailer\Email` + * for more information. + */ + 'Email' => [ + 'default' => [ + 'transport' => 'default', + 'from' => 'you@localhost', + //'charset' => 'utf-8', + //'headerCharset' => 'utf-8', + ], + ], + + /** + * Connection information used by the ORM to connect + * to your application's datastores. + * + * ### Notes + * - Drivers include Mysql Postgres Sqlite Sqlserver + * See vendor\cakephp\cakephp\src\Database\Driver for complete list + * - Do not use periods in database name - it may lead to error. + * See https://github.com/cakephp/cakephp/issues/6471 for details. + * - 'encoding' is recommended to be set to full UTF-8 4-Byte support. + * E.g set it to 'utf8mb4' in MariaDB and MySQL and 'utf8' for any + * other RDBMS. + */ + 'Datasources' => [ + 'default' => [ + 'className' => Connection::class, + 'driver' => Mysql::class, + 'persistent' => false, + 'host' => 'localhost', + /* + * CakePHP will use the default DB port based on the driver selected + * MySQL on MAMP uses port 8889, MAMP users will want to uncomment + * the following line and set the port accordingly + */ + //'port' => 'non_standard_port_number', + 'username' => 'my_app', + 'password' => 'secret', + 'database' => 'my_app', + /* + * You do not need to set this flag to use full utf-8 encoding (internal default since CakePHP 3.6). + */ + //'encoding' => 'utf8mb4', + 'timezone' => 'UTC', + 'flags' => [], + 'cacheMetadata' => true, + 'log' => false, + + /** + * Set identifier quoting to true if you are using reserved words or + * special characters in your table or column names. Enabling this + * setting will result in queries built using the Query Builder having + * identifiers quoted when creating SQL. It should be noted that this + * decreases performance because each query needs to be traversed and + * manipulated before being executed. + */ + 'quoteIdentifiers' => false, + + /** + * During development, if using MySQL < 5.6, uncommenting the + * following line could boost the speed at which schema metadata is + * fetched from the database. It can also be set directly with the + * mysql configuration directive 'innodb_stats_on_metadata = 0' + * which is the recommended value in production environments + */ + //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], + + 'url' => env('DATABASE_URL', null), + ], + + /** + * The test connection is used during the test suite. + */ + 'test' => [ + 'className' => Connection::class, + 'driver' => Mysql::class, + 'persistent' => false, + 'host' => 'localhost', + //'port' => 'non_standard_port_number', + 'username' => 'my_app', + 'password' => 'secret', + 'database' => 'test_myapp', + //'encoding' => 'utf8mb4', + 'timezone' => 'UTC', + 'cacheMetadata' => true, + 'quoteIdentifiers' => false, + 'log' => false, + //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], + 'url' => env('DATABASE_TEST_URL', null), + ], + ], + + /** + * Configures logging options + */ + 'Log' => [ + 'debug' => [ + 'className' => FileLog::class, + 'path' => LOGS, + 'file' => 'debug', + 'url' => env('LOG_DEBUG_URL', null), + 'scopes' => false, + 'levels' => ['notice', 'info', 'debug'], + ], + 'error' => [ + 'className' => FileLog::class, + 'path' => LOGS, + 'file' => 'error', + 'url' => env('LOG_ERROR_URL', null), + 'scopes' => false, + 'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'], + ], + // To enable this dedicated query log, you need set your datasource's log flag to true + 'queries' => [ + 'className' => FileLog::class, + 'path' => LOGS, + 'file' => 'queries', + 'url' => env('LOG_QUERIES_URL', null), + 'scopes' => ['queriesLog'], + ], + ], + + /** + * Session configuration. + * + * Contains an array of settings to use for session configuration. The + * `defaults` key is used to define a default preset to use for sessions, any + * settings declared here will override the settings of the default config. + * + * ## Options + * + * - `cookie` - The name of the cookie to use. Defaults to 'CAKEPHP'. Avoid using `.` in cookie names, + * as PHP will drop sessions from cookies with `.` in the name. + * - `cookiePath` - The url path for which session cookie is set. Maps to the + * `session.cookie_path` php.ini config. Defaults to base path of app. + * - `timeout` - The time in minutes the session should be valid for. + * Pass 0 to disable checking timeout. + * Please note that php.ini's session.gc_maxlifetime must be equal to or greater + * than the largest Session['timeout'] in all served websites for it to have the + * desired effect. + * - `defaults` - The default configuration set to use as a basis for your session. + * There are four built-in options: php, cake, cache, database. + * - `handler` - Can be used to enable a custom session handler. Expects an + * array with at least the `engine` key, being the name of the Session engine + * class to use for managing the session. CakePHP bundles the `CacheSession` + * and `DatabaseSession` engines. + * - `ini` - An associative array of additional ini values to set. + * + * The built-in `defaults` options are: + * + * - 'php' - Uses settings defined in your php.ini. + * - 'cake' - Saves session files in CakePHP's /tmp directory. + * - 'database' - Uses CakePHP's database sessions. + * - 'cache' - Use the Cache class to save sessions. + * + * To define a custom session handler, save it at src/Network/Session/.php. + * Make sure the class implements PHP's `SessionHandlerInterface` and set + * Session.handler to + * + * To use database sessions, load the SQL file located at config/schema/sessions.sql + */ + 'Session' => [ + 'defaults' => 'php', + ], + // Gradido specific configuration + // Login Server ip and port + 'LoginServer' => [ + 'host' => 'http://127.0.0.1', + 'port' => 1201 + ] +]; diff --git a/config/bootstrap.php b/config/bootstrap.php new file mode 100644 index 000000000..1c266a499 --- /dev/null +++ b/config/bootstrap.php @@ -0,0 +1,203 @@ +parse() +// ->putenv() +// ->toEnv() +// ->toServer(); +// } + +/* + * Read configuration file and inject configuration into various + * CakePHP classes. + * + * By default there is only one configuration file. It is often a good + * idea to create multiple configuration files, and separate the configuration + * that changes from configuration that does not. This makes deployment simpler. + */ +try { + Configure::config('default', new PhpConfig()); + Configure::load('app', 'default', false); +} catch (\Exception $e) { + exit($e->getMessage() . "\n"); +} + +/* + * Load an environment local configuration file. + * You can use a file like app_local.php to provide local overrides to your + * shared configuration. + */ +//Configure::load('app_local', 'default'); + +/* + * When debug = true the metadata cache should only last + * for a short time. + */ +if (Configure::read('debug')) { + Configure::write('Cache._cake_model_.duration', '+2 minutes'); + Configure::write('Cache._cake_core_.duration', '+2 minutes'); + // disable router cache during development + Configure::write('Cache._cake_routes_.duration', '+2 seconds'); +} + +/* + * Set the default server timezone. Using UTC makes time calculations / conversions easier. + * Check http://php.net/manual/en/timezones.php for list of valid timezone strings. + */ +date_default_timezone_set(Configure::read('App.defaultTimezone')); + +/* + * Configure the mbstring extension to use the correct encoding. + */ +mb_internal_encoding(Configure::read('App.encoding')); + +/* + * Set the default locale. This controls how dates, number and currency is + * formatted and sets the default language to use for translations. + */ +ini_set('intl.default_locale', Configure::read('App.defaultLocale')); + +/* + * Register application error and exception handlers. + */ +$isCli = PHP_SAPI === 'cli'; +if ($isCli) { + (new ConsoleErrorHandler(Configure::read('Error')))->register(); +} else { + (new ErrorHandler(Configure::read('Error')))->register(); +} + +/* + * Include the CLI bootstrap overrides. + */ +if ($isCli) { + require __DIR__ . '/bootstrap_cli.php'; +} + +/* + * Set the full base URL. + * This URL is used as the base of all absolute links. + * + * If you define fullBaseUrl in your config file you can remove this. + */ +if (!Configure::read('App.fullBaseUrl')) { + $s = null; + if (env('HTTPS')) { + $s = 's'; + } + + $httpHost = env('HTTP_HOST'); + if (isset($httpHost)) { + Configure::write('App.fullBaseUrl', 'http' . $s . '://' . $httpHost); + } + unset($httpHost, $s); +} + +Cache::setConfig(Configure::consume('Cache')); +ConnectionManager::setConfig(Configure::consume('Datasources')); +TransportFactory::setConfig(Configure::consume('EmailTransport')); +Email::setConfig(Configure::consume('Email')); +Log::setConfig(Configure::consume('Log')); +Security::setSalt(Configure::consume('Security.salt')); + +/* + * The default crypto extension in 3.0 is OpenSSL. + * If you are migrating from 2.x uncomment this code to + * use a more compatible Mcrypt based implementation + */ +//Security::engine(new \Cake\Utility\Crypto\Mcrypt()); + +/* + * Setup detectors for mobile and tablet. + */ +ServerRequest::addDetector('mobile', function ($request) { + $detector = new \Detection\MobileDetect(); + + return $detector->isMobile(); +}); +ServerRequest::addDetector('tablet', function ($request) { + $detector = new \Detection\MobileDetect(); + + return $detector->isTablet(); +}); + +/* + * Enable immutable time objects in the ORM. + * + * You can enable default locale format parsing by adding calls + * to `useLocaleParser()`. This enables the automatic conversion of + * locale specific date formats. For details see + * @link https://book.cakephp.org/3.0/en/core-libraries/internationalization-and-localization.html#parsing-localized-datetime-data + */ +Type::build('time') + ->useImmutable(); +Type::build('date') + ->useImmutable(); +Type::build('datetime') + ->useImmutable(); +Type::build('timestamp') + ->useImmutable(); + +/* + * Custom Inflector rules, can be set to correctly pluralize or singularize + * table, model, controller names or whatever other string is passed to the + * inflection functions. + */ +//Inflector::rules('plural', ['/^(inflect)or$/i' => '\1ables']); +//Inflector::rules('irregular', ['red' => 'redlings']); +//Inflector::rules('uninflected', ['dontinflectme']); +//Inflector::rules('transliteration', ['/å/' => 'aa']); diff --git a/config/bootstrap_cli.php b/config/bootstrap_cli.php new file mode 100644 index 000000000..d3679d754 --- /dev/null +++ b/config/bootstrap_cli.php @@ -0,0 +1,28 @@ +registerMiddleware('csrf', new CsrfProtectionMiddleware([ + 'httpOnly' => true + ])); + + /** + * Apply a middleware to the current route scope. + * Requires middleware to be registered via `Application::routes()` with `registerMiddleware()` + */ + $routes->applyMiddleware('csrf'); + + /** + * Here, we are connecting '/' (base path) to a controller called 'Pages', + * its action called 'display', and we pass a param to select the view file + * to use (in this case, src/Template/Pages/home.ctp)... + */ + //$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); + $routes->connect('/', ['controller' => 'Dashboard', 'action' => 'index']); + //$routes->connect('/', 'https://gradido2.dario-rekowski.de/account', array('status' => 303)); + + /** + * ...and connect the rest of 'Pages' controller's URLs. + */ + $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); + + /** + * Connect catchall routes for all controllers. + * + * Using the argument `DashedRoute`, the `fallbacks` method is a shortcut for + * + * ``` + * $routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'DashedRoute']); + * $routes->connect('/:controller/:action/*', [], ['routeClass' => 'DashedRoute']); + * ``` + * + * Any route class can be used with this method, such as: + * - DashedRoute + * - InflectedRoute + * - Route + * - Or your own route class + * + * You can remove these routes once you've connected the + * routes you want in your application. + */ + $routes->fallbacks(DashedRoute::class); +}); + +/** + * If you need a different set of middleware or none at all, + * open new scope and define routes there. + * + * ``` + * Router::scope('/api', function (RouteBuilder $routes) { + * // No $routes->applyMiddleware() here. + * // Connect API actions here. + * }); + * ``` + */ diff --git a/config/schema/i18n.sql b/config/schema/i18n.sql new file mode 100644 index 000000000..e59d1e651 --- /dev/null +++ b/config/schema/i18n.sql @@ -0,0 +1,18 @@ +# Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) +# +# Licensed under The MIT License +# For full copyright and license information, please see the LICENSE.txt +# Redistributions of files must retain the above copyright notice. +# MIT License (https://opensource.org/licenses/mit-license.php) + +CREATE TABLE i18n ( + id int NOT NULL auto_increment, + locale varchar(6) NOT NULL, + model varchar(255) NOT NULL, + foreign_key int(10) NOT NULL, + field varchar(255) NOT NULL, + content text, + PRIMARY KEY (id), + UNIQUE INDEX I18N_LOCALE_FIELD(locale, model, foreign_key, field), + INDEX I18N_FIELD(model, foreign_key, field) +); diff --git a/config/schema/sessions.sql b/config/schema/sessions.sql new file mode 100644 index 000000000..1aa0a0f54 --- /dev/null +++ b/config/schema/sessions.sql @@ -0,0 +1,15 @@ +# Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) +# +# Licensed under The MIT License +# For full copyright and license information, please see the LICENSE.txt +# Redistributions of files must retain the above copyright notice. +# MIT License (https://opensource.org/licenses/mit-license.php) + +CREATE TABLE `sessions` ( + `id` char(40) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, + `created` datetime DEFAULT CURRENT_TIMESTAMP, -- optional, requires MySQL 5.6.5+ + `modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- optional, requires MySQL 5.6.5+ + `data` blob DEFAULT NULL, -- for PostgreSQL use bytea instead of blob + `expires` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/src/Controller/TransactionCreationsController.php b/src/Controller/TransactionCreationsController.php index 01e3626c0..77934441d 100644 --- a/src/Controller/TransactionCreationsController.php +++ b/src/Controller/TransactionCreationsController.php @@ -2,7 +2,17 @@ namespace App\Controller; use App\Controller\AppController; +use Cake\ORM\TableRegistry; +use Cake\Routing\Router; +use Cake\I18n\Number; +use Cake\Http\Client; +use Cake\Core\Configure; +use App\Form\CreationForm; +// protobuf transactions +use Model\Messages\Gradido\TransactionCreation; +use Model\Messages\Gradido\TransactionBody; +use Model\Messages\Gradido\ReceiverAmount; /** * TransactionCreations Controller * @@ -17,7 +27,7 @@ class TransactionCreationsController extends AppController { parent::initialize(); //$this->Auth->allow(['add', 'edit']); - $this->Auth->allow('add'); + $this->Auth->allow('create'); } /** * Index method @@ -56,11 +66,101 @@ class TransactionCreationsController extends AppController $this->viewBuilder()->setLayout('frontend'); $session = $this->getRequest()->getSession(); $user = $session->read('StateUser'); - //var_dump($user); +// var_dump($user); + if(!$user) { + return $this->redirect(Router::url('/', true) . 'account/', 303); + } + $creationForm = new CreationForm(); $transactionCreation = $this->TransactionCreations->newEntity(); - $transactionCreation->state_user_id = $user->id; + $transactionCreation->state_user_id = $user['id']; + + // adding possible addresses + input field for copy + $stateUserTable = TableRegistry::getTableLocator()->get('StateUsers'); + $stateUsers = $stateUserTable->find('all'); + $receiverProposal = []; + foreach($stateUsers as $stateUser) { + $name = $stateUser->email; + $keyHex = bin2hex(stream_get_contents($stateUser->public_key)); + if($name === NULL) { + $name = $stateUser->first_name . ' ' . $stateUser->last_name; + } + array_push($receiverProposal, ['name' => $name, 'key' => $keyHex]); + //$stateUser->public_key + } $timeUsed = microtime(true) - $startTime; - $this->set(compact('transactionCreation', 'timeUsed')); + $this->set(compact('transactionCreation', 'timeUsed', 'receiverProposal', 'creationForm')); + + if ($this->request->is('post')) { + $requestData = $this->request->getData(); + if($creationForm->validate($requestData)) { + + $pubKeyHex = ''; + $receiver = new ReceiverAmount(); + //echo 'amount: ' . $requestData['amount'] . '
'; + $floatAmount = floatval(Number::format($requestData['amount'], ['places' => 4, 'locale' => 'en_GB'])); + //echo 'set for receiver: ' . round($floatAmount * 10000) . '
'; + $receiver->setAmount(round($floatAmount * 10000)); + //echo 'after receiver amount set
'; + + if(intval($requestData['receiver']) == 0) { + if(strlen($requestData['receiver_pubkey_hex']) != 64) { + $this->Flash->error(__('Invalid public Key, must contain 64 Character')); + } else { + $pubKeyHex = $requestData['receiver_pubkey_hex']; + } + } else { + $receiverIndex = intval($requestData['receiver'])-1; + + if(count($receiverProposal) > $receiverIndex) { + $pubKeyHex = $receiverProposal[$receiverIndex]['key']; + } + } + if($pubKeyHex != '') { + $receiver->setEd25519ReceiverPubkey(hex2bin($pubKeyHex)); + //var_dump($requestData); + $transactionBody = new TransactionBody(); + $transactionBody->setMemo($requestData['memo']); + + $transaction = new TransactionCreation(); + $transaction->setReceiverAmount($receiver); + $transaction->setIdentHash($user['ident_hash']); + $transactionBody->setCreation($transaction); + + $http = new Client(); + try { + $loginServer = Configure::read('LoginServer'); + $url = $loginServer['host'] . ':' . $loginServer['port']; + $session_id = $session->read('session_id'); + $response = $http->get($url . '/checkTransaction', [ + 'session_id' => $session_id, + 'transaction_base64' => base64_encode($transactionBody->serializeToString()) + ]); + $json = $response->getJson(); + if($json['state'] != 'success') { + if($json['msg'] == 'session not found') { + $session->destroy(); + $this->Flash->error(__('session not found, please login again')); + } else { + $this->Flash->error(__('login server return error: ' . json_encode($json))); + } + } else { + return $this->redirect(Router::url('/', true) . 'account/checkTransactions', 303); + } + + } catch(\Exception $e) { + $msg = $e->getMessage(); + $this->Flash->error(__('error http request: ') . $msg); + } + + } else { + $this->Flash->error(__('No Valid Receiver Public given')); + } + +// */ + } else { + $this->Flash->error(__('Something was invalid, please try again!')); + } + } } /** diff --git a/src/Model/Entity/TransactionCreation.php b/src/Model/Entity/TransactionCreation.php index 5bd34da22..9d7694de7 100644 --- a/src/Model/Entity/TransactionCreation.php +++ b/src/Model/Entity/TransactionCreation.php @@ -1,6 +1,7 @@ gradido.Key + * Generated from protobuf message model.messages.gradido.Key */ final class Key extends \Google\Protobuf\Internal\Message { diff --git a/src/Model/Messages/Gradido/ReceiverAmount.php b/src/Model/Messages/Gradido/ReceiverAmount.php index d09ceab79..7cba93c26 100644 --- a/src/Model/Messages/Gradido/ReceiverAmount.php +++ b/src/Model/Messages/Gradido/ReceiverAmount.php @@ -2,14 +2,14 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: BasicTypes.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.ReceiverAmount + * Generated from protobuf message model.messages.gradido.ReceiverAmount */ final class ReceiverAmount extends \Google\Protobuf\Internal\Message { diff --git a/src/Model/Messages/Gradido/SenderAmount.php b/src/Model/Messages/Gradido/SenderAmount.php index bd1b62fc1..7a53bd10f 100644 --- a/src/Model/Messages/Gradido/SenderAmount.php +++ b/src/Model/Messages/Gradido/SenderAmount.php @@ -2,14 +2,14 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: BasicTypes.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.SenderAmount + * Generated from protobuf message model.messages.gradido.SenderAmount */ final class SenderAmount extends \Google\Protobuf\Internal\Message { diff --git a/src/Model/Messages/Gradido/SignatureMap.php b/src/Model/Messages/Gradido/SignatureMap.php index 6a589c133..1ea3609ee 100644 --- a/src/Model/Messages/Gradido/SignatureMap.php +++ b/src/Model/Messages/Gradido/SignatureMap.php @@ -2,21 +2,21 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: BasicTypes.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.SignatureMap + * Generated from protobuf message model.messages.gradido.SignatureMap */ final class SignatureMap extends \Google\Protobuf\Internal\Message { /** * Each signature pair corresponds to a unique Key required to sign the transaction. * - * Generated from protobuf field repeated .gradido.SignaturePair sigPair = 1; + * Generated from protobuf field repeated .model.messages.gradido.SignaturePair sigPair = 1; */ private $sigPair; @@ -26,7 +26,7 @@ final class SignatureMap extends \Google\Protobuf\Internal\Message * @param array $data { * Optional. Data for populating the Message object. * - * @type \Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $sigPair + * @type \Model\Messages\Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $sigPair * Each signature pair corresponds to a unique Key required to sign the transaction. * } */ @@ -38,7 +38,7 @@ final class SignatureMap extends \Google\Protobuf\Internal\Message /** * Each signature pair corresponds to a unique Key required to sign the transaction. * - * Generated from protobuf field repeated .gradido.SignaturePair sigPair = 1; + * Generated from protobuf field repeated .model.messages.gradido.SignaturePair sigPair = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getSigPair() @@ -49,13 +49,13 @@ final class SignatureMap extends \Google\Protobuf\Internal\Message /** * Each signature pair corresponds to a unique Key required to sign the transaction. * - * Generated from protobuf field repeated .gradido.SignaturePair sigPair = 1; - * @param \Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $var + * Generated from protobuf field repeated .model.messages.gradido.SignaturePair sigPair = 1; + * @param \Model\Messages\Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setSigPair($var) { - $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Gradido\SignaturePair::class); + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Model\Messages\Gradido\SignaturePair::class); $this->sigPair = $arr; return $this; diff --git a/src/Model/Messages/Gradido/SignaturePair.php b/src/Model/Messages/Gradido/SignaturePair.php index 6daef4154..687781269 100644 --- a/src/Model/Messages/Gradido/SignaturePair.php +++ b/src/Model/Messages/Gradido/SignaturePair.php @@ -2,14 +2,14 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: BasicTypes.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.SignaturePair + * Generated from protobuf message model.messages.gradido.SignaturePair */ final class SignaturePair extends \Google\Protobuf\Internal\Message { diff --git a/src/Model/Messages/Gradido/StateCreateGroup.php b/src/Model/Messages/Gradido/StateCreateGroup.php index 785245950..517ca4a29 100644 --- a/src/Model/Messages/Gradido/StateCreateGroup.php +++ b/src/Model/Messages/Gradido/StateCreateGroup.php @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: StateCreateGroup.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * need signature from this group and from parent (if it isn't zero) * - * Generated from protobuf message gradido.StateCreateGroup + * Generated from protobuf message model.messages.gradido.StateCreateGroup */ final class StateCreateGroup extends \Google\Protobuf\Internal\Message { @@ -20,11 +20,11 @@ final class StateCreateGroup extends \Google\Protobuf\Internal\Message */ private $name = ''; /** - * Generated from protobuf field .gradido.Key groupPublicKey = 2; + * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 2; */ private $groupPublicKey = null; /** - * Generated from protobuf field .gradido.Key parentGroupPublicKey = 3; + * Generated from protobuf field .model.messages.gradido.Key parentGroupPublicKey = 3; */ private $parentGroupPublicKey = null; @@ -35,8 +35,8 @@ final class StateCreateGroup extends \Google\Protobuf\Internal\Message * Optional. Data for populating the Message object. * * @type string $name - * @type \Gradido\Key $groupPublicKey - * @type \Gradido\Key $parentGroupPublicKey + * @type \Model\Messages\Gradido\Key $groupPublicKey + * @type \Model\Messages\Gradido\Key $parentGroupPublicKey * } */ public function __construct($data = NULL) { @@ -67,8 +67,8 @@ final class StateCreateGroup extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key groupPublicKey = 2; - * @return \Gradido\Key + * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 2; + * @return \Model\Messages\Gradido\Key */ public function getGroupPublicKey() { @@ -76,21 +76,21 @@ final class StateCreateGroup extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key groupPublicKey = 2; - * @param \Gradido\Key $var + * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 2; + * @param \Model\Messages\Gradido\Key $var * @return $this */ public function setGroupPublicKey($var) { - GPBUtil::checkMessage($var, \Gradido\Key::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\Key::class); $this->groupPublicKey = $var; return $this; } /** - * Generated from protobuf field .gradido.Key parentGroupPublicKey = 3; - * @return \Gradido\Key + * Generated from protobuf field .model.messages.gradido.Key parentGroupPublicKey = 3; + * @return \Model\Messages\Gradido\Key */ public function getParentGroupPublicKey() { @@ -98,13 +98,13 @@ final class StateCreateGroup extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key parentGroupPublicKey = 3; - * @param \Gradido\Key $var + * Generated from protobuf field .model.messages.gradido.Key parentGroupPublicKey = 3; + * @param \Model\Messages\Gradido\Key $var * @return $this */ public function setParentGroupPublicKey($var) { - GPBUtil::checkMessage($var, \Gradido\Key::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\Key::class); $this->parentGroupPublicKey = $var; return $this; diff --git a/src/Model/Messages/Gradido/StateGroupChangeParent.php b/src/Model/Messages/Gradido/StateGroupChangeParent.php index 2fd2bbd48..014652ddd 100644 --- a/src/Model/Messages/Gradido/StateGroupChangeParent.php +++ b/src/Model/Messages/Gradido/StateGroupChangeParent.php @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: StateGroupChangeParent.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; @@ -11,20 +11,20 @@ use Google\Protobuf\Internal\GPBUtil; /** * need signature from this group and from both parents (if it isn't zero) * - * Generated from protobuf message gradido.StateGroupChangeParent + * Generated from protobuf message model.messages.gradido.StateGroupChangeParent */ final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message { /** - * Generated from protobuf field .gradido.Key groupPublicKey = 1; + * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 1; */ private $groupPublicKey = null; /** - * Generated from protobuf field .gradido.Key newParentGroupPublicKey = 2; + * Generated from protobuf field .model.messages.gradido.Key newParentGroupPublicKey = 2; */ private $newParentGroupPublicKey = null; /** - * Generated from protobuf field .gradido.Key oldParentGroupPublicKey = 3; + * Generated from protobuf field .model.messages.gradido.Key oldParentGroupPublicKey = 3; */ private $oldParentGroupPublicKey = null; @@ -34,9 +34,9 @@ final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message * @param array $data { * Optional. Data for populating the Message object. * - * @type \Gradido\Key $groupPublicKey - * @type \Gradido\Key $newParentGroupPublicKey - * @type \Gradido\Key $oldParentGroupPublicKey + * @type \Model\Messages\Gradido\Key $groupPublicKey + * @type \Model\Messages\Gradido\Key $newParentGroupPublicKey + * @type \Model\Messages\Gradido\Key $oldParentGroupPublicKey * } */ public function __construct($data = NULL) { @@ -45,8 +45,8 @@ final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key groupPublicKey = 1; - * @return \Gradido\Key + * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 1; + * @return \Model\Messages\Gradido\Key */ public function getGroupPublicKey() { @@ -54,21 +54,21 @@ final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key groupPublicKey = 1; - * @param \Gradido\Key $var + * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 1; + * @param \Model\Messages\Gradido\Key $var * @return $this */ public function setGroupPublicKey($var) { - GPBUtil::checkMessage($var, \Gradido\Key::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\Key::class); $this->groupPublicKey = $var; return $this; } /** - * Generated from protobuf field .gradido.Key newParentGroupPublicKey = 2; - * @return \Gradido\Key + * Generated from protobuf field .model.messages.gradido.Key newParentGroupPublicKey = 2; + * @return \Model\Messages\Gradido\Key */ public function getNewParentGroupPublicKey() { @@ -76,21 +76,21 @@ final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key newParentGroupPublicKey = 2; - * @param \Gradido\Key $var + * Generated from protobuf field .model.messages.gradido.Key newParentGroupPublicKey = 2; + * @param \Model\Messages\Gradido\Key $var * @return $this */ public function setNewParentGroupPublicKey($var) { - GPBUtil::checkMessage($var, \Gradido\Key::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\Key::class); $this->newParentGroupPublicKey = $var; return $this; } /** - * Generated from protobuf field .gradido.Key oldParentGroupPublicKey = 3; - * @return \Gradido\Key + * Generated from protobuf field .model.messages.gradido.Key oldParentGroupPublicKey = 3; + * @return \Model\Messages\Gradido\Key */ public function getOldParentGroupPublicKey() { @@ -98,13 +98,13 @@ final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Key oldParentGroupPublicKey = 3; - * @param \Gradido\Key $var + * Generated from protobuf field .model.messages.gradido.Key oldParentGroupPublicKey = 3; + * @param \Model\Messages\Gradido\Key $var * @return $this */ public function setOldParentGroupPublicKey($var) { - GPBUtil::checkMessage($var, \Gradido\Key::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\Key::class); $this->oldParentGroupPublicKey = $var; return $this; diff --git a/src/Model/Messages/Gradido/Timestamp.php b/src/Model/Messages/Gradido/Timestamp.php index 38dca8db7..c3d1ceeb2 100644 --- a/src/Model/Messages/Gradido/Timestamp.php +++ b/src/Model/Messages/Gradido/Timestamp.php @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: BasicTypes.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * An exact date and time. This is the same data structure as the protobuf Timestamp.proto (see the comments in https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto) * - * Generated from protobuf message gradido.Timestamp + * Generated from protobuf message model.messages.gradido.Timestamp */ final class Timestamp extends \Google\Protobuf\Internal\Message { diff --git a/src/Model/Messages/Gradido/TimestampSeconds.php b/src/Model/Messages/Gradido/TimestampSeconds.php index 15a402836..007c8646a 100644 --- a/src/Model/Messages/Gradido/TimestampSeconds.php +++ b/src/Model/Messages/Gradido/TimestampSeconds.php @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: BasicTypes.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * An exact date and time, with a resolution of one second (no nanoseconds). * - * Generated from protobuf message gradido.TimestampSeconds + * Generated from protobuf message model.messages.gradido.TimestampSeconds */ final class TimestampSeconds extends \Google\Protobuf\Internal\Message { diff --git a/src/Model/Messages/Gradido/Transaction.php b/src/Model/Messages/Gradido/Transaction.php index 4adb3f95f..e673c3a56 100644 --- a/src/Model/Messages/Gradido/Transaction.php +++ b/src/Model/Messages/Gradido/Transaction.php @@ -2,14 +2,14 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: Transaction.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.Transaction + * Generated from protobuf message model.messages.gradido.Transaction */ final class Transaction extends \Google\Protobuf\Internal\Message { @@ -18,11 +18,11 @@ final class Transaction extends \Google\Protobuf\Internal\Message */ private $id = 0; /** - * Generated from protobuf field .gradido.TimestampSeconds received = 2; + * Generated from protobuf field .model.messages.gradido.TimestampSeconds received = 2; */ private $received = null; /** - * Generated from protobuf field .gradido.SignatureMap sigMap = 3; + * Generated from protobuf field .model.messages.gradido.SignatureMap sigMap = 3; */ private $sigMap = null; /** @@ -41,8 +41,8 @@ final class Transaction extends \Google\Protobuf\Internal\Message * Optional. Data for populating the Message object. * * @type int|string $id - * @type \Gradido\TimestampSeconds $received - * @type \Gradido\SignatureMap $sigMap + * @type \Model\Messages\Gradido\TimestampSeconds $received + * @type \Model\Messages\Gradido\SignatureMap $sigMap * @type string $txHash * @type string $bodyBytes * } @@ -75,8 +75,8 @@ final class Transaction extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.TimestampSeconds received = 2; - * @return \Gradido\TimestampSeconds + * Generated from protobuf field .model.messages.gradido.TimestampSeconds received = 2; + * @return \Model\Messages\Gradido\TimestampSeconds */ public function getReceived() { @@ -84,21 +84,21 @@ final class Transaction extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.TimestampSeconds received = 2; - * @param \Gradido\TimestampSeconds $var + * Generated from protobuf field .model.messages.gradido.TimestampSeconds received = 2; + * @param \Model\Messages\Gradido\TimestampSeconds $var * @return $this */ public function setReceived($var) { - GPBUtil::checkMessage($var, \Gradido\TimestampSeconds::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\TimestampSeconds::class); $this->received = $var; return $this; } /** - * Generated from protobuf field .gradido.SignatureMap sigMap = 3; - * @return \Gradido\SignatureMap + * Generated from protobuf field .model.messages.gradido.SignatureMap sigMap = 3; + * @return \Model\Messages\Gradido\SignatureMap */ public function getSigMap() { @@ -106,13 +106,13 @@ final class Transaction extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.SignatureMap sigMap = 3; - * @param \Gradido\SignatureMap $var + * Generated from protobuf field .model.messages.gradido.SignatureMap sigMap = 3; + * @param \Model\Messages\Gradido\SignatureMap $var * @return $this */ public function setSigMap($var) { - GPBUtil::checkMessage($var, \Gradido\SignatureMap::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\SignatureMap::class); $this->sigMap = $var; return $this; diff --git a/src/Model/Messages/Gradido/TransactionBody.php b/src/Model/Messages/Gradido/TransactionBody.php index b2f3925a9..a42c9fc60 100644 --- a/src/Model/Messages/Gradido/TransactionBody.php +++ b/src/Model/Messages/Gradido/TransactionBody.php @@ -2,14 +2,14 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: TransactionBody.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.TransactionBody + * Generated from protobuf message model.messages.gradido.TransactionBody */ final class TransactionBody extends \Google\Protobuf\Internal\Message { @@ -29,10 +29,10 @@ final class TransactionBody extends \Google\Protobuf\Internal\Message * * @type string $memo * max 150 chars - * @type \Gradido\StateCreateGroup $createGroup - * @type \Gradido\StateGroupChangeParent $groupChangeParent - * @type \Gradido\Transfer $transfer - * @type \Gradido\TransactionCreation $creation + * @type \Model\Messages\Gradido\StateCreateGroup $createGroup + * @type \Model\Messages\Gradido\StateGroupChangeParent $groupChangeParent + * @type \Model\Messages\Gradido\Transfer $transfer + * @type \Model\Messages\Gradido\TransactionCreation $creation * } */ public function __construct($data = NULL) { @@ -67,8 +67,8 @@ final class TransactionBody extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.StateCreateGroup createGroup = 2; - * @return \Gradido\StateCreateGroup + * Generated from protobuf field .model.messages.gradido.StateCreateGroup createGroup = 2; + * @return \Model\Messages\Gradido\StateCreateGroup */ public function getCreateGroup() { @@ -76,21 +76,21 @@ final class TransactionBody extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.StateCreateGroup createGroup = 2; - * @param \Gradido\StateCreateGroup $var + * Generated from protobuf field .model.messages.gradido.StateCreateGroup createGroup = 2; + * @param \Model\Messages\Gradido\StateCreateGroup $var * @return $this */ public function setCreateGroup($var) { - GPBUtil::checkMessage($var, \Gradido\StateCreateGroup::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\StateCreateGroup::class); $this->writeOneof(2, $var); return $this; } /** - * Generated from protobuf field .gradido.StateGroupChangeParent groupChangeParent = 3; - * @return \Gradido\StateGroupChangeParent + * Generated from protobuf field .model.messages.gradido.StateGroupChangeParent groupChangeParent = 3; + * @return \Model\Messages\Gradido\StateGroupChangeParent */ public function getGroupChangeParent() { @@ -98,21 +98,21 @@ final class TransactionBody extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.StateGroupChangeParent groupChangeParent = 3; - * @param \Gradido\StateGroupChangeParent $var + * Generated from protobuf field .model.messages.gradido.StateGroupChangeParent groupChangeParent = 3; + * @param \Model\Messages\Gradido\StateGroupChangeParent $var * @return $this */ public function setGroupChangeParent($var) { - GPBUtil::checkMessage($var, \Gradido\StateGroupChangeParent::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\StateGroupChangeParent::class); $this->writeOneof(3, $var); return $this; } /** - * Generated from protobuf field .gradido.Transfer transfer = 4; - * @return \Gradido\Transfer + * Generated from protobuf field .model.messages.gradido.Transfer transfer = 4; + * @return \Model\Messages\Gradido\Transfer */ public function getTransfer() { @@ -120,21 +120,21 @@ final class TransactionBody extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.Transfer transfer = 4; - * @param \Gradido\Transfer $var + * Generated from protobuf field .model.messages.gradido.Transfer transfer = 4; + * @param \Model\Messages\Gradido\Transfer $var * @return $this */ public function setTransfer($var) { - GPBUtil::checkMessage($var, \Gradido\Transfer::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\Transfer::class); $this->writeOneof(4, $var); return $this; } /** - * Generated from protobuf field .gradido.TransactionCreation creation = 5; - * @return \Gradido\TransactionCreation + * Generated from protobuf field .model.messages.gradido.TransactionCreation creation = 5; + * @return \Model\Messages\Gradido\TransactionCreation */ public function getCreation() { @@ -142,13 +142,13 @@ final class TransactionBody extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.TransactionCreation creation = 5; - * @param \Gradido\TransactionCreation $var + * Generated from protobuf field .model.messages.gradido.TransactionCreation creation = 5; + * @param \Model\Messages\Gradido\TransactionCreation $var * @return $this */ public function setCreation($var) { - GPBUtil::checkMessage($var, \Gradido\TransactionCreation::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\TransactionCreation::class); $this->writeOneof(5, $var); return $this; diff --git a/src/Model/Messages/Gradido/TransactionCreation.php b/src/Model/Messages/Gradido/TransactionCreation.php index 1a8e36752..851e4c353 100644 --- a/src/Model/Messages/Gradido/TransactionCreation.php +++ b/src/Model/Messages/Gradido/TransactionCreation.php @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: TransactionCreation.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; @@ -12,12 +12,12 @@ use Google\Protobuf\Internal\GPBUtil; * need signature from group admin or * percent of group users another than the receiver * - * Generated from protobuf message gradido.TransactionCreation + * Generated from protobuf message model.messages.gradido.TransactionCreation */ final class TransactionCreation extends \Google\Protobuf\Internal\Message { /** - * Generated from protobuf field .gradido.ReceiverAmount receiverAmount = 1; + * Generated from protobuf field .model.messages.gradido.ReceiverAmount receiverAmount = 1; */ private $receiverAmount = null; /** @@ -31,7 +31,7 @@ final class TransactionCreation extends \Google\Protobuf\Internal\Message * @param array $data { * Optional. Data for populating the Message object. * - * @type \Gradido\ReceiverAmount $receiverAmount + * @type \Model\Messages\Gradido\ReceiverAmount $receiverAmount * @type int $ident_hash * } */ @@ -41,8 +41,8 @@ final class TransactionCreation extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.ReceiverAmount receiverAmount = 1; - * @return \Gradido\ReceiverAmount + * Generated from protobuf field .model.messages.gradido.ReceiverAmount receiverAmount = 1; + * @return \Model\Messages\Gradido\ReceiverAmount */ public function getReceiverAmount() { @@ -50,13 +50,13 @@ final class TransactionCreation extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field .gradido.ReceiverAmount receiverAmount = 1; - * @param \Gradido\ReceiverAmount $var + * Generated from protobuf field .model.messages.gradido.ReceiverAmount receiverAmount = 1; + * @param \Model\Messages\Gradido\ReceiverAmount $var * @return $this */ public function setReceiverAmount($var) { - GPBUtil::checkMessage($var, \Gradido\ReceiverAmount::class); + GPBUtil::checkMessage($var, \Model\Messages\Gradido\ReceiverAmount::class); $this->receiverAmount = $var; return $this; diff --git a/src/Model/Messages/Gradido/Transfer.php b/src/Model/Messages/Gradido/Transfer.php index 6d403b0dc..775e25700 100644 --- a/src/Model/Messages/Gradido/Transfer.php +++ b/src/Model/Messages/Gradido/Transfer.php @@ -2,23 +2,23 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: Transfer.proto -namespace Gradido; +namespace Model\Messages\Gradido; use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBUtil; /** - * Generated from protobuf message gradido.Transfer + * Generated from protobuf message model.messages.gradido.Transfer */ final class Transfer extends \Google\Protobuf\Internal\Message { /** - * Generated from protobuf field repeated .gradido.SenderAmount senderAmounts = 1; + * Generated from protobuf field repeated .model.messages.gradido.SenderAmount senderAmounts = 1; */ private $senderAmounts; /** - * Generated from protobuf field repeated .gradido.ReceiverAmount receiverAmounts = 2; + * Generated from protobuf field repeated .model.messages.gradido.ReceiverAmount receiverAmounts = 2; */ private $receiverAmounts; @@ -28,8 +28,8 @@ final class Transfer extends \Google\Protobuf\Internal\Message * @param array $data { * Optional. Data for populating the Message object. * - * @type \Gradido\SenderAmount[]|\Google\Protobuf\Internal\RepeatedField $senderAmounts - * @type \Gradido\ReceiverAmount[]|\Google\Protobuf\Internal\RepeatedField $receiverAmounts + * @type \Model\Messages\Gradido\SenderAmount[]|\Google\Protobuf\Internal\RepeatedField $senderAmounts + * @type \Model\Messages\Gradido\ReceiverAmount[]|\Google\Protobuf\Internal\RepeatedField $receiverAmounts * } */ public function __construct($data = NULL) { @@ -38,7 +38,7 @@ final class Transfer extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field repeated .gradido.SenderAmount senderAmounts = 1; + * Generated from protobuf field repeated .model.messages.gradido.SenderAmount senderAmounts = 1; * @return \Google\Protobuf\Internal\RepeatedField */ public function getSenderAmounts() @@ -47,20 +47,20 @@ final class Transfer extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field repeated .gradido.SenderAmount senderAmounts = 1; - * @param \Gradido\SenderAmount[]|\Google\Protobuf\Internal\RepeatedField $var + * Generated from protobuf field repeated .model.messages.gradido.SenderAmount senderAmounts = 1; + * @param \Model\Messages\Gradido\SenderAmount[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setSenderAmounts($var) { - $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Gradido\SenderAmount::class); + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Model\Messages\Gradido\SenderAmount::class); $this->senderAmounts = $arr; return $this; } /** - * Generated from protobuf field repeated .gradido.ReceiverAmount receiverAmounts = 2; + * Generated from protobuf field repeated .model.messages.gradido.ReceiverAmount receiverAmounts = 2; * @return \Google\Protobuf\Internal\RepeatedField */ public function getReceiverAmounts() @@ -69,13 +69,13 @@ final class Transfer extends \Google\Protobuf\Internal\Message } /** - * Generated from protobuf field repeated .gradido.ReceiverAmount receiverAmounts = 2; - * @param \Gradido\ReceiverAmount[]|\Google\Protobuf\Internal\RepeatedField $var + * Generated from protobuf field repeated .model.messages.gradido.ReceiverAmount receiverAmounts = 2; + * @param \Model\Messages\Gradido\ReceiverAmount[]|\Google\Protobuf\Internal\RepeatedField $var * @return $this */ public function setReceiverAmounts($var) { - $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Gradido\ReceiverAmount::class); + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Model\Messages\Gradido\ReceiverAmount::class); $this->receiverAmounts = $arr; return $this; diff --git a/src/Model/Messages/protobuf/gradido/BasicTypes.proto b/src/Model/Messages/protobuf/gradido/BasicTypes.proto deleted file mode 100644 index 5820b6bb1..000000000 --- a/src/Model/Messages/protobuf/gradido/BasicTypes.proto +++ /dev/null @@ -1,44 +0,0 @@ -syntax = "proto3"; - -package gradido; - -message Key { - oneof key { - bytes ed25519 = 2; // ed25519 signature (libsodium default) - bytes ed25519_ref10 = 3; // ed25519 ref10 signature - } -} - -message SignaturePair { - bytes pubKey = 1; - oneof signature { - bytes ed25519 = 2; // ed25519 signature (libsodium default) - bytes ed25519_ref10 = 3; // ed25519 ref10 signature - } -} - -message SignatureMap { - repeated SignaturePair sigPair = 1; // Each signature pair corresponds to a unique Key required to sign the transaction. -} - -/* An exact date and time. This is the same data structure as the protobuf Timestamp.proto (see the comments in https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto) */ -message Timestamp { - int64 seconds = 1; // Number of complete seconds since the start of the epoch - int32 nanos = 2; // Number of nanoseconds since the start of the last second -} - -/* An exact date and time, with a resolution of one second (no nanoseconds). */ -message TimestampSeconds { - int64 seconds = 1; // Number of complete seconds since the start of the epoch -} - -message SenderAmount { - bytes ed25519_sender_pubkey = 1; - sint64 amount = 2; - sint64 senderFinalBalance = 3; // sender balance after transaction, including perishability -} - -message ReceiverAmount { - bytes ed25519_receiver_pubkey = 1; - sint64 amount = 2; -} \ No newline at end of file diff --git a/src/Model/Messages/protobuf/gradido/StateCreateGroup.proto b/src/Model/Messages/protobuf/gradido/StateCreateGroup.proto deleted file mode 100644 index f43da8779..000000000 --- a/src/Model/Messages/protobuf/gradido/StateCreateGroup.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - -package gradido; - -import "BasicTypes.proto"; - -// need signature from this group and from parent (if it isn't zero) -message StateCreateGroup { - string name = 1; - Key groupPublicKey = 2; - Key parentGroupPublicKey = 3; - reserved "hederaConsensusId"; - reserved 4; - -} \ No newline at end of file diff --git a/src/Model/Messages/protobuf/gradido/StateGroupChangeParent.proto b/src/Model/Messages/protobuf/gradido/StateGroupChangeParent.proto deleted file mode 100644 index f21042a66..000000000 --- a/src/Model/Messages/protobuf/gradido/StateGroupChangeParent.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; - -package gradido; - -import "BasicTypes.proto"; - -// need signature from this group and from both parents (if it isn't zero) -message StateGroupChangeParent { - Key groupPublicKey = 1; - Key newParentGroupPublicKey = 2; - Key oldParentGroupPublicKey = 3; -} \ No newline at end of file diff --git a/src/Model/Messages/protobuf/gradido/Transaction.proto b/src/Model/Messages/protobuf/gradido/Transaction.proto deleted file mode 100644 index 6cd78f1a2..000000000 --- a/src/Model/Messages/protobuf/gradido/Transaction.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package gradido; - -import "BasicTypes.proto"; - -/* - id will be set by Node server - txHash will be also set by Node server, - calculated from previous transaction txHash and this id, sigMap and received; -*/ - -message Transaction { - uint64 id = 1; - TimestampSeconds received = 2; - SignatureMap sigMap = 3; - bytes txHash = 4; - bytes bodyBytes = 5; -} \ No newline at end of file diff --git a/src/Model/Messages/protobuf/gradido/TransactionBody.proto b/src/Model/Messages/protobuf/gradido/TransactionBody.proto deleted file mode 100644 index 352d33745..000000000 --- a/src/Model/Messages/protobuf/gradido/TransactionBody.proto +++ /dev/null @@ -1,18 +0,0 @@ -syntax = "proto3"; - -package gradido; - -import "Transfer.proto"; -import "StateCreateGroup.proto"; -import "StateGroupChangeParent.proto"; -import "TransactionCreation.proto"; - -message TransactionBody { - string memo = 1; // max 150 chars - oneof data { - StateCreateGroup createGroup = 2; - StateGroupChangeParent groupChangeParent = 3; - Transfer transfer = 4; - TransactionCreation creation = 5; - } -} \ No newline at end of file diff --git a/src/Model/Messages/protobuf/gradido/TransactionCreation.proto b/src/Model/Messages/protobuf/gradido/TransactionCreation.proto deleted file mode 100644 index 41c9dce04..000000000 --- a/src/Model/Messages/protobuf/gradido/TransactionCreation.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; - -package gradido; - -import "BasicTypes.proto"; - -// need signature from group admin or -// percent of group users another than the receiver -message TransactionCreation { - ReceiverAmount receiverAmount = 1; - sint32 ident_hash = 2; - -} \ No newline at end of file diff --git a/src/Model/Messages/protobuf/gradido/Transfer.proto b/src/Model/Messages/protobuf/gradido/Transfer.proto deleted file mode 100644 index 60965cc19..000000000 --- a/src/Model/Messages/protobuf/gradido/Transfer.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - -package gradido; - -import "BasicTypes.proto"; - -message Transfer { - repeated SenderAmount senderAmounts = 1; - repeated ReceiverAmount receiverAmounts = 2; -} \ No newline at end of file diff --git a/src/Template/Layout/frontend.ctp b/src/Template/Layout/frontend.ctp index 0f389c99a..0fbeb9a13 100644 --- a/src/Template/Layout/frontend.ctp +++ b/src/Template/Layout/frontend.ctp @@ -26,7 +26,7 @@ $cakeDescription = 'Gradido'; Html->meta('icon') ?> - Html->css('base.css') ?> + Html->css('styles.css') ?> fetch('meta') ?>