Merge pull request #455 from gradido/require_memo_in_send

Require memo in send
This commit is contained in:
einhornimmond 2021-05-20 14:09:13 +02:00 committed by GitHub
commit d951812d9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 33 additions and 2 deletions

View File

@ -156,6 +156,9 @@ class AppRequestsController extends AppController
if($required_fields !== true) {
return $this->returnJson($required_fields);
}
if(!isset($params['memo']) || strlen($params['memo']) < 5 || strlen($params['memo']) > 150) {
return $this->returnJson(['state' => 'error', 'msg' => 'memo is not set or not in expected range [5;150]']);
}
$params['transaction_type'] = 'transfer';
$requestAnswear = $this->JsonRequestClient->sendRequest(json_encode($params), '/createTransaction');

View File

@ -237,6 +237,11 @@ class TransactionSendCoinsController extends AppController
$this->set('timeUsed', microtime(true) - $startTime);
return;
}
if($answear_data['msg'] === 'memo is not set or not in expected range [5;150]') {
$this->Flash->error(__('Ein Verwendungszweck zwischen 5 und 150 Zeichen wird benötig!'));
$this->set('timeUsed', microtime(true) - $startTime);
return;
}
} else if($answear_data['state'] === 'not found' && $answear_data['msg'] === 'receiver not found') {
$this->Flash->error(__('Der Empfänger wurde nicht auf dem Login-Server gefunden, hat er sein Konto schon angelegt?'));
$this->set('timeUsed', microtime(true) - $startTime);

View File

@ -84,7 +84,22 @@
style="font-size: xx-large; padding-left: 20px"
></b-form-input>
</b-input-group>
<b-col class="text-left p-3 p-sm-1">{{ $t('form.memo') }}</b-col>
</validation-provider>
<validation-provider
:rules="{
required: true,
min: 5,
max: 150,
}"
:name="$t('form.memo')"
v-slot="{ errors }"
>
<b-row>
<b-col class="text-left p-3 p-sm-1">{{ $t('form.memo') }}</b-col>
<b-col v-if="errors" class="text-right p-3 p-sm-1">
<span v-for="error in errors" class="errors" :key="error">{{ error }}</span>
</b-col>
</b-row>
<b-input-group id="input-group-3">
<b-input-group-prepend class="p-3 d-none d-md-block">
<b-icon icon="chat-right-text" class="display-3"></b-icon>

View File

@ -108,6 +108,9 @@ Poco::JSON::Object* JsonCreateTransaction::transfer(Poco::Dynamic::Var params)
else {
result = stateError("parameter format unknown");
}
if (mMemo.size() < 5 || mMemo.size() > 150) {
result = stateError("memo is not set or not in expected range [5;150]");
}
if (result) {
mm->releaseMemory(target_pubkey);
return result;

View File

@ -31,7 +31,8 @@ namespace model {
TRANSACTION_VALID_INVALID_AMOUNT,
TRANSACTION_VALID_INVALID_PUBKEY,
TRANSACTION_VALID_INVALID_GROUP_ALIAS,
TRANSACTION_VALID_INVALID_SIGN
TRANSACTION_VALID_INVALID_SIGN,
TRANSACTION_VALID_INVALID_MEMO
};
const char* TransactionValidationToString(TransactionValidation result);

View File

@ -186,6 +186,10 @@ namespace model {
addError(new Error(function_name, "sender and receiver are the same"));
return TRANSACTION_VALID_INVALID_PUBKEY;
}
if (mMemo.size() < 5 || mMemo.size() > 150) {
addError(new Error(function_name, "memo is not set or not in expected range [5;150]"));
return TRANSACTION_VALID_INVALID_MEMO;
}
return TRANSACTION_VALID_OK;
}