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']);
?>
-