Add error message if receiver hasn't activated his account yet

This commit is contained in:
Dario Rekowski on RockPI 2020-05-19 05:04:19 +00:00 committed by Dario via Pythagoras
parent a45a1a8b46
commit bd2aaecc95
2 changed files with 18 additions and 6 deletions

View File

@ -173,12 +173,13 @@ class StateBalancesController extends AppController
}
$user = $session->read('StateUser');
$requestResult = $this->JsonRequestClient->sendRequestGDT(['email' => $user['email']], 'GdtEntries' . DS . 'listPerEmailApi');
if ('success' === $requestResult['state'] && 'success' === $requestResult['data']['state']) {
//var_dump($requestResult);
if('success' === $requestResult['state'] && 'success' === $requestResult['data']['state']) {
//var_dump(array_keys($requestResult['data']));
$ownEntries = $requestResult['data']['ownEntries'];
//$gdtEntries = $requestResult['data']['entries'];
$gdtSum = 0;

View File

@ -179,6 +179,7 @@ class TransactionSendCoinsController extends AppController
'ask' => ['user.pubkeyhex']
]), '/getUserInfos');
if('success' == $requestAnswear['state'] && 'success' == $requestAnswear['data']['state']) {
// will be allways 64 byte long, even if it is empty
$receiverPubKeyHex = $requestAnswear['data']['userData']['pubkeyhex'];
} else {
$this->addAdminError('TransactionSendCoins', 'create', $requestAnswear, $user['id']);
@ -186,20 +187,30 @@ class TransactionSendCoinsController extends AppController
$this->set('timeUsed', microtime(true) - $startTime);
return;
}
if('' == $receiverPubKeyHex) {
if(0 == ord($receiverPubKeyHex)) {
$stateUserTable = TableRegistry::getTableLocator()->get('StateUsers');
$receiverUser = $stateUserTable
->find('all')
->select(['public_key'])
->contain(false)
->where(['email' => $receiverEmail])->first();
//var_dump($receiverUser);
->where(['email' => $receiverEmail]);
if(!$receiverUser) {
$this->Flash->error(__('Diese E-Mail ist mir nicht bekannt, hat dein Empfänger denn schon ein Gradido-Konto?'));
$this->set('timeUsed', microtime(true) - $startTime);
return;
}
$receiverPubKeyHex = bin2hex(stream_get_contents($receiverUser->public_key));
if(isset($receiverUser->public_key)) {
$receiverPubKeyHex = bin2hex(stream_get_contents($receiverUser->public_key));
} else {
$this->Flash->error(__('Das Konto mit der E-Mail: ' . $receiverEmail . ' wurde noch nicht aktiviert und kann noch keine GDD empfangen!'));
$this->set('timeUsed', microtime(true) - $startTime);
return;
}
}
//var_dump($sessionStateUser);