Move field obfuscation into own class

[MAILPOET-1014]
This commit is contained in:
Pavel Dohnal
2017-08-16 14:58:31 +02:00
parent 18f208cf47
commit 364dd1b2a3
4 changed files with 76 additions and 10 deletions

View File

@ -0,0 +1,38 @@
<?php
namespace MailPoet\Form\Util;
class FieldNameObfuscator {
const OBFUSCATED_FIELD_PREFIX = 'form_field_';
public function obfuscate($name) {
return FieldNameObfuscator::OBFUSCATED_FIELD_PREFIX.base64_encode($name);
}
public function deobfuscate($name) {
$prefixLength = strlen(FieldNameObfuscator::OBFUSCATED_FIELD_PREFIX);
return base64_decode(substr($name, $prefixLength));
}
public function deobfuscateFormPayload($data) {
$result = array();
foreach($data as $key => $value) {
$result[$this->deobfuscateField($key)] = $value;
}
return $result;
}
private function deobfuscateField($name) {
if($this->wasFieldObfuscated($name)) {
return $this->deobfuscate($name);
} else {
return $name;
}
}
private function wasFieldObfuscated($name) {
return strpos($name, FieldNameObfuscator::OBFUSCATED_FIELD_PREFIX) === 0;
}
}