diff --git a/composer.lock b/composer.lock index e31a1b846..6a9610751 100644 --- a/composer.lock +++ b/composer.lock @@ -613,16 +613,16 @@ }, { "name": "psr/log", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/php-fig/log/zipball/bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2", + "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2", "shasum": "" }, "require": { @@ -631,7 +631,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -656,7 +656,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2019-10-25T08:06:51+00:00" }, { "name": "psr/simple-cache", @@ -2468,16 +2468,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.2.4", + "version": "v4.2.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" + "reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4", - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/b76bbc3c51f22c570648de48e8c2d941ed5e2cf2", + "reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2", "shasum": "" }, "require": { @@ -2485,6 +2485,7 @@ "php": ">=7.0" }, "require-dev": { + "ircmaxell/php-yacc": "0.0.4", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ @@ -2515,7 +2516,7 @@ "parser", "php" ], - "time": "2019-09-01T07:51:21+00:00" + "time": "2019-10-25T18:33:07+00:00" }, { "name": "phar-io/manifest", @@ -3953,16 +3954,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.1", + "version": "3.5.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "82cd0f854ceca17731d6d019c7098e3755c45060" + "reference": "65b12cdeaaa6cd276d4c3033a95b9b88b12701e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/82cd0f854ceca17731d6d019c7098e3755c45060", - "reference": "82cd0f854ceca17731d6d019c7098e3755c45060", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/65b12cdeaaa6cd276d4c3033a95b9b88b12701e7", + "reference": "65b12cdeaaa6cd276d4c3033a95b9b88b12701e7", "shasum": "" }, "require": { @@ -4000,7 +4001,7 @@ "phpcs", "standards" ], - "time": "2019-10-16T21:14:26+00:00" + "time": "2019-10-28T04:36:32+00:00" }, { "name": "symfony/finder", diff --git a/src/Controller/DashboardController.php b/src/Controller/DashboardController.php index 4414dc476..fef0856f9 100644 --- a/src/Controller/DashboardController.php +++ b/src/Controller/DashboardController.php @@ -45,43 +45,51 @@ class DashboardController extends AppController // login server cannot detect host ip //echo "client ip: $ip
"; - //echo $session_id; - if($session_id != 0 && $session->read('session_id') != $session_id) { - - $http = new Client(); - try { - $loginServer = Configure::read('LoginServer'); - $url = $loginServer['host'] . ':' . $loginServer['port']; - //$url = 'http://***REMOVED***'; - $response = $http->get($url . '/login', ['session_id' => $session_id]); - $json = $response->getJson(); - - if(isset($json) && count($json) > 0) { - - if($json['state'] === 'success' && intval($json['user']['email_checked']) === 1) { - //echo "email checked: " . $json['user']['email_checked'] . ";
"; - $session->destroy(); - foreach($json['user'] as $key => $value) { - if($key === 'state') { continue; } - $session->write('StateUser.' . $key, $value ); - } - $session->write('session_id', $session_id); - $stateUserTable = TableRegistry::getTableLocator()->get('StateUsers'); - if($json['user']['public_hex'] != '') { - $public_key_bin = hex2bin($json['user']['public_hex']); - $stateUserQuery = $stateUserTable->find('all')->where(['public_key' => $public_key_bin]); - if($stateUserQuery->count() == 1) { - $stateUser = $stateUserQuery->first(); - $session->write('StateUser.id', $stateUser['id']); - //echo $stateUser['id']; - } else { - $newStateUser = $stateUserTable->newEntity(); - $newStateUser->public_key = $public_key_bin; - $newStateUser->first_name = $json['user']['first_name']; - $newStateUser->last_name = $json['user']['last_name']; - $stateUserTable->save($newStateUser); - $session->write('StateUser.id', $newStateUser->id); - //echo $newStateUser->id; + //echo $session_id; echo "
"; + //echo $session->read('session_id'); + if($session_id != 0) { + $userStored = $session->read('StateUser'); + $transactionPendings = $session->read('Transactions.pending'); + if($session->read('session_id') != $session_id || + ( $userStored && !isset($userStored['id'])) || + intval($transactionPendings) > 0) { + $http = new Client(); + try { + $loginServer = Configure::read('LoginServer'); + $url = $loginServer['host'] . ':' . $loginServer['port']; + //$url = 'http://***REMOVED***'; + $response = $http->get($url . '/login', ['session_id' => $session_id]); + $json = $response->getJson(); + + if(isset($json) && count($json) > 0) { + + if($json['state'] === 'success' && intval($json['user']['email_checked']) === 1) { + //echo "email checked: " . $json['user']['email_checked'] . ";
"; + $session->destroy(); + foreach($json['user'] as $key => $value) { + if($key === 'state') { continue; } + $session->write('StateUser.' . $key, $value ); + } + $transactionPendings = $json['Transaction.pending']; + $session->write('Transaction.pending', $transactionPendings); + $session->write('session_id', $session_id); + $stateUserTable = TableRegistry::getTableLocator()->get('StateUsers'); + if($json['user']['public_hex'] != '') { + $public_key_bin = hex2bin($json['user']['public_hex']); + $stateUserQuery = $stateUserTable->find('all')->where(['public_key' => $public_key_bin]); + if($stateUserQuery->count() == 1) { + $stateUser = $stateUserQuery->first(); + $session->write('StateUser.id', $stateUser['id']); + //echo $stateUser['id']; + } else { + $newStateUser = $stateUserTable->newEntity(); + $newStateUser->public_key = $public_key_bin; + $newStateUser->first_name = $json['user']['first_name']; + $newStateUser->last_name = $json['user']['last_name']; + $stateUserTable->save($newStateUser); + $session->write('StateUser.id', $newStateUser->id); + //echo $newStateUser->id; + } } } @@ -89,7 +97,7 @@ class DashboardController extends AppController // for debugging $this->set('user', $json['user']); - $this->set('json', $json); + //$this->set('json', $json); $this->set('timeUsed', microtime(true) - $startTime); } else { @@ -98,19 +106,25 @@ class DashboardController extends AppController //echo $json['user']['email_checked']; //var_dump($json); // - return $this->redirect(Router::url('/', true) . 'account/', 303); + //return $this->redirect(Router::url('/', true) . 'account/', 303); } } - } - } catch(\Exception $e) { - $msg = $e->getMessage(); - $this->Flash->error(__('error http request: ') . $msg); - - //continue; + } catch(\Exception $e) { + $msg = $e->getMessage(); + $this->Flash->error(__('error http request: ') . $msg); + + //continue; + } + } else { + // login already in session + $user = $session->read('StateUser'); + $this->set('user', $user); + $this->set('timeUsed', microtime(true) - $startTime); } } else { + // no login return $this->redirect(Router::url('/', true) . 'account/', 303); } } diff --git a/src/Controller/TransactionCreationsController.php b/src/Controller/TransactionCreationsController.php index 77934441d..5e312b4e7 100644 --- a/src/Controller/TransactionCreationsController.php +++ b/src/Controller/TransactionCreationsController.php @@ -92,6 +92,8 @@ class TransactionCreationsController extends AppController if ($this->request->is('post')) { $requestData = $this->request->getData(); + $mode = 'next'; + if(isset($requestData['add'])) {$mode = 'add'; } if($creationForm->validate($requestData)) { $pubKeyHex = ''; @@ -139,14 +141,27 @@ class TransactionCreationsController extends AppController if($json['state'] != 'success') { if($json['msg'] == 'session not found') { $session->destroy(); - $this->Flash->error(__('session not found, please login again')); + return $this->redirect(Router::url('/', true) . 'account', 303); + //$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); + $pendingTransactionCount = $session->read('Transactions.pending'); + if($pendingTransactionCount == null) { + $pendingTransactionCount = 1; + } else { + $pendingTransactionCount++; + } + $session->write('Transactions.pending', $pendingTransactionCount); + //echo "pending: " . $pendingTransactionCount; + if($mode === 'next') { + return $this->redirect(Router::url('/', true) . 'account/checkTransactions', 303); + } else { + $this->Flash->success(__('Transaction submitted for review.')); + } } - + } catch(\Exception $e) { $msg = $e->getMessage(); $this->Flash->error(__('error http request: ') . $msg); diff --git a/src/Form/CreationForm.php b/src/Form/CreationForm.php index 5bf2fef33..1e59088ea 100644 --- a/src/Form/CreationForm.php +++ b/src/Form/CreationForm.php @@ -12,7 +12,7 @@ class CreationForm extends Form protected function _buildSchema(Schema $schema) { return $schema - ->addField('receiver_pubkey_hex', ['type' => 'string']) + //->addField('receiver_pubkey_hex', ['type' => 'string']) ->addField('receiver', ['type' => 'select']) ->addField('amount', ['type' => 'decimal', 'precision' => 2]) ->addField('memo', ['type' =>'string', 'default' => '']); @@ -37,12 +37,12 @@ class CreationForm extends Form ]) ->ascii('memo', __('Only Ascii Character allowed')) ->allowEmptyString('memo', null, 'create') - ->add('receiver_pubkey_hex', 'custom', [ + /*->add('receiver_pubkey_hex', 'custom', [ 'rule' => 'hexKey64', 'provider' => 'custom', 'message' => 'a valid pubkey in hex format is required (64 character)' ]) - ->allowEmptyString('receiver_pubkey_hex', null, 'create') + ->allowEmptyString('receiver_pubkey_hex', null, 'create')*/ ->add('amount', 'custom', [ 'rule' => 'amount', 'provider' => 'custom', diff --git a/src/Model/Messages/Gradido/Key.php b/src/Model/Messages/Gradido/Key.php index 1e34212fd..b6190304c 100644 --- a/src/Model/Messages/Gradido/Key.php +++ b/src/Model/Messages/Gradido/Key.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.Key */ -final class Key extends \Google\Protobuf\Internal\Message +class Key extends \Google\Protobuf\Internal\Message { protected $key; diff --git a/src/Model/Messages/Gradido/ReceiverAmount.php b/src/Model/Messages/Gradido/ReceiverAmount.php index 7cba93c26..240c5a6fe 100644 --- a/src/Model/Messages/Gradido/ReceiverAmount.php +++ b/src/Model/Messages/Gradido/ReceiverAmount.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.ReceiverAmount */ -final class ReceiverAmount extends \Google\Protobuf\Internal\Message +class ReceiverAmount extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field bytes ed25519_receiver_pubkey = 1; diff --git a/src/Model/Messages/Gradido/SenderAmount.php b/src/Model/Messages/Gradido/SenderAmount.php index 7a53bd10f..52a41f71f 100644 --- a/src/Model/Messages/Gradido/SenderAmount.php +++ b/src/Model/Messages/Gradido/SenderAmount.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.SenderAmount */ -final class SenderAmount extends \Google\Protobuf\Internal\Message +class SenderAmount extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field bytes ed25519_sender_pubkey = 1; diff --git a/src/Model/Messages/Gradido/SignatureMap.php b/src/Model/Messages/Gradido/SignatureMap.php index 1ea3609ee..228282747 100644 --- a/src/Model/Messages/Gradido/SignatureMap.php +++ b/src/Model/Messages/Gradido/SignatureMap.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.SignatureMap */ -final class SignatureMap extends \Google\Protobuf\Internal\Message +class SignatureMap extends \Google\Protobuf\Internal\Message { /** * Each signature pair corresponds to a unique Key required to sign the transaction. diff --git a/src/Model/Messages/Gradido/SignaturePair.php b/src/Model/Messages/Gradido/SignaturePair.php index 687781269..203eb5677 100644 --- a/src/Model/Messages/Gradido/SignaturePair.php +++ b/src/Model/Messages/Gradido/SignaturePair.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.SignaturePair */ -final class SignaturePair extends \Google\Protobuf\Internal\Message +class SignaturePair extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field bytes pubKey = 1; diff --git a/src/Model/Messages/Gradido/StateCreateGroup.php b/src/Model/Messages/Gradido/StateCreateGroup.php index 517ca4a29..4273ef93d 100644 --- a/src/Model/Messages/Gradido/StateCreateGroup.php +++ b/src/Model/Messages/Gradido/StateCreateGroup.php @@ -13,7 +13,7 @@ use Google\Protobuf\Internal\GPBUtil; * * Generated from protobuf message model.messages.gradido.StateCreateGroup */ -final class StateCreateGroup extends \Google\Protobuf\Internal\Message +class StateCreateGroup extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field string name = 1; diff --git a/src/Model/Messages/Gradido/StateGroupChangeParent.php b/src/Model/Messages/Gradido/StateGroupChangeParent.php index 014652ddd..c5371d76c 100644 --- a/src/Model/Messages/Gradido/StateGroupChangeParent.php +++ b/src/Model/Messages/Gradido/StateGroupChangeParent.php @@ -13,7 +13,7 @@ use Google\Protobuf\Internal\GPBUtil; * * Generated from protobuf message model.messages.gradido.StateGroupChangeParent */ -final class StateGroupChangeParent extends \Google\Protobuf\Internal\Message +class StateGroupChangeParent extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field .model.messages.gradido.Key groupPublicKey = 1; diff --git a/src/Model/Messages/Gradido/Timestamp.php b/src/Model/Messages/Gradido/Timestamp.php index c3d1ceeb2..19721729b 100644 --- a/src/Model/Messages/Gradido/Timestamp.php +++ b/src/Model/Messages/Gradido/Timestamp.php @@ -13,7 +13,7 @@ use Google\Protobuf\Internal\GPBUtil; * * Generated from protobuf message model.messages.gradido.Timestamp */ -final class Timestamp extends \Google\Protobuf\Internal\Message +class Timestamp extends \Google\Protobuf\Internal\Message { /** * Number of complete seconds since the start of the epoch diff --git a/src/Model/Messages/Gradido/TimestampSeconds.php b/src/Model/Messages/Gradido/TimestampSeconds.php index 007c8646a..2a588a312 100644 --- a/src/Model/Messages/Gradido/TimestampSeconds.php +++ b/src/Model/Messages/Gradido/TimestampSeconds.php @@ -13,7 +13,7 @@ use Google\Protobuf\Internal\GPBUtil; * * Generated from protobuf message model.messages.gradido.TimestampSeconds */ -final class TimestampSeconds extends \Google\Protobuf\Internal\Message +class TimestampSeconds extends \Google\Protobuf\Internal\Message { /** * Number of complete seconds since the start of the epoch diff --git a/src/Model/Messages/Gradido/Transaction.php b/src/Model/Messages/Gradido/Transaction.php index e673c3a56..065cd80bb 100644 --- a/src/Model/Messages/Gradido/Transaction.php +++ b/src/Model/Messages/Gradido/Transaction.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.Transaction */ -final class Transaction extends \Google\Protobuf\Internal\Message +class Transaction extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field uint64 id = 1; diff --git a/src/Model/Messages/Gradido/TransactionBody.php b/src/Model/Messages/Gradido/TransactionBody.php index a42c9fc60..0b8b05005 100644 --- a/src/Model/Messages/Gradido/TransactionBody.php +++ b/src/Model/Messages/Gradido/TransactionBody.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.TransactionBody */ -final class TransactionBody extends \Google\Protobuf\Internal\Message +class TransactionBody extends \Google\Protobuf\Internal\Message { /** * max 150 chars diff --git a/src/Model/Messages/Gradido/TransactionCreation.php b/src/Model/Messages/Gradido/TransactionCreation.php index 851e4c353..0673cf9b9 100644 --- a/src/Model/Messages/Gradido/TransactionCreation.php +++ b/src/Model/Messages/Gradido/TransactionCreation.php @@ -14,7 +14,7 @@ use Google\Protobuf\Internal\GPBUtil; * * Generated from protobuf message model.messages.gradido.TransactionCreation */ -final class TransactionCreation extends \Google\Protobuf\Internal\Message +class TransactionCreation extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field .model.messages.gradido.ReceiverAmount receiverAmount = 1; diff --git a/src/Model/Messages/Gradido/Transfer.php b/src/Model/Messages/Gradido/Transfer.php index 775e25700..2c031d02b 100644 --- a/src/Model/Messages/Gradido/Transfer.php +++ b/src/Model/Messages/Gradido/Transfer.php @@ -11,7 +11,7 @@ use Google\Protobuf\Internal\GPBUtil; /** * Generated from protobuf message model.messages.gradido.Transfer */ -final class Transfer extends \Google\Protobuf\Internal\Message +class Transfer extends \Google\Protobuf\Internal\Message { /** * Generated from protobuf field repeated .model.messages.gradido.SenderAmount senderAmounts = 1; diff --git a/src/Template/Dashboard/index.ctp b/src/Template/Dashboard/index.ctp index 39e20243c..aec371855 100644 --- a/src/Template/Dashboard/index.ctp +++ b/src/Template/Dashboard/index.ctp @@ -9,17 +9,20 @@ if(isset($user)) { //var_dump($user); } +$this->assign('title', __('Willkommen') . ' ' . $user['first_name'] . ' ' . $user['last_name']); ?> -
-

Willkommen  

-

Geld ...

- Html->link(__('schöpfen'), ['controller' => 'TransactionCreations', 'action' => 'create'], ['class' => 'grd_bn grd_bg-bn']); ?> - überweisen +

Gradido ...

+ Html->link( + __('schöpfen'), + ['controller' => 'TransactionCreations', 'action' => 'create'], + ['class' => 'grd-nav-bn grd-nav-bn-large'] + ); ?> + überweisen +
+
+

Account ...

+
-
-
- ms -
\ No newline at end of file diff --git a/src/Template/Layout/default.ctp b/src/Template/Layout/default.ctp index 926f3a556..6d2b969e6 100644 --- a/src/Template/Layout/default.ctp +++ b/src/Template/Layout/default.ctp @@ -52,7 +52,8 @@ $cakeDescription = 'Gradido';
fetch('content') ?>
- +
+ ms +
diff --git a/src/Template/Layout/frontend.ctp b/src/Template/Layout/frontend.ctp index 0fbeb9a13..bfc6eaa08 100644 --- a/src/Template/Layout/frontend.ctp +++ b/src/Template/Layout/frontend.ctp @@ -1,4 +1,5 @@ getRequest()->getSession(); +$transactionPendings = $session->read('Transactions.pending'); + ?> @@ -34,23 +38,34 @@ $cakeDescription = 'Gradido'; fetch('script') ?> -