Advertisement
Guest User

Untitled

a guest
Aug 8th, 2017
2,599
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.86 KB | None | 0 0
  1. #!/usr/bin/env php
  2. <?php
  3.  
  4. use Anonymizer\Anonymizer;
  5. use Anonymizer\Factory;
  6. use Anonymizer\Generator;
  7. use Anonymizer\Providers\PrestamerProvider;
  8. use Arrilot\DataAnonymization\Blueprint;
  9. use Arrilot\DataAnonymization\Database\SqlDatabase;
  10. use josegonzalez\Dotenv\Loader;
  11.  
  12. require './vendor/autoload.php';
  13.  
  14. $environment = (new Loader('.env'))->parse()->toArray();
  15.  
  16. $dsn = $environment['DB_CONNECTION'] . ':dbname=' . $environment['DB_DATABASE'] . ';host=' . $environment['DB_HOST'];
  17. $user = $environment['DB_USERNAME'];
  18. $password = $environment['DB_PASSWORD'];
  19.  
  20. $database = new SqlDatabase($dsn, $user, $password);
  21.  
  22. $generator = Factory::create('es_ES');
  23.  
  24. $provider = new PrestamerProvider($generator);
  25. $generator->addProvider($provider);
  26.  
  27. $anonymizer = new Anonymizer($database, $generator);
  28.  
  29. $anonymizer->table('account_details', function (Blueprint $table) {
  30.     $table->column('value')->where("name = 'iban'")->replaceWith(function (\Faker\Generator $generator) {
  31.         return $generator->iban('ES');
  32.     });
  33.     $table->column('value')->where("name IN ('bik','number','provider_account_id')")->replaceWith(function (\Faker\Generator $generator) {
  34.         return $generator->randomNumberBig();
  35.     });
  36. });
  37.  
  38. /*Допустимо что одобренная сумма меньше взятой, иначе придется писать сложную анонимизацию*/
  39. $anonymizer->table('application', function (Blueprint $table) {
  40.     $table->column('requested_amount')->replaceWith(function (Generator $generator) {
  41.         return $generator->applicationAmount();
  42.     });
  43.     $table->column('approved_amount')->replaceWith(function (Generator $generator) {
  44.         return $generator->applicationAmount();
  45.     });
  46.     $table->column('amount')->replaceWith(function (Generator $generator) {
  47.         return $generator->applicationAmount();
  48.     });
  49.     $table->column('requested_period')->replaceWith(function (Generator $generator) {
  50.         return $generator->applicationPeriod();
  51.     });
  52.     $table->column('approved_period')->replaceWith(function (Generator $generator) {
  53.         return $generator->applicationPeriod();
  54.     });
  55.     $table->column('period')->replaceWith(function (Generator $generator) {
  56.         return $generator->applicationPeriod();
  57.     });
  58. });
  59.  
  60.  
  61. $anonymizer->table('attribute_history', function (Blueprint $table) {
  62.     $table->column('value_before')->where("attribute = 'name'")->replaceWith(function (Generator $generator) {
  63.         return $generator->firstName;
  64.     });
  65.     $table->column('value_after')->where("attribute = 'name'")->replaceWith(function (Generator $generator) {
  66.         return $generator->firstName;
  67.     });
  68.     $table->column('value_before')->where("attribute = 'phone'")->replaceWith(function (Generator $generator) {
  69.         return $generator->spainMobilePhoneNumber;
  70.     });
  71.     $table->column('value_after')->where("attribute = 'phone'")->replaceWith(function (Generator $generator) {
  72.         return $generator->spainMobilePhoneNumber;
  73.     });
  74. });
  75.  
  76. $anonymizer->table('client', function (Blueprint $table) {
  77.     $table->column('phone')->replaceWith(function (Generator $generator) {
  78.         return $generator->spainMobilePhoneNumber;
  79.     });
  80.     $table->column('name')->replaceWith(function (Generator $generator) {
  81.         return $generator->firstName;
  82.     });
  83.     $table->column('surname')->replaceWith(function (Generator $generator) {
  84.         return $generator->lastName;
  85.     });
  86.     $table->column('second_surname')->replaceWith(function (Generator $generator) {
  87.         return $generator->suffix;
  88.     });
  89.     $table->column('email')->replaceWith(function (Generator $generator) {
  90.         return $generator->safeEmail;
  91.     });
  92.     $table->column('password')->replaceWith(function (Generator $generator) {
  93.         //123456
  94.         return '$2y$10$arhI4DTWwwAf7ZztWFdzYOooxjcXrSWLOmWM3vET97DVo6VTJjg.K';
  95.     });
  96. });
  97.  
  98. $anonymizer->table('client_initial_registration', function (Blueprint $table) {
  99.     $table->column('phone')->replaceWith(function (Generator $generator) {
  100.         return $generator->spainMobilePhoneNumber;
  101.     });
  102.     $table->column('name')->replaceWith(function (Generator $generator) {
  103.         return $generator->firstName;
  104.     });
  105.     $table->column('surname')->replaceWith(function (Generator $generator) {
  106.         return $generator->lastName;
  107.     });
  108.     $table->column('second_surname')->replaceWith(function (Generator $generator) {
  109.         return $generator->suffix;
  110.     });
  111.     $table->column('email')->replaceWith(function (Generator $generator) {
  112.         return $generator->safeEmail;
  113.     });
  114. });
  115.  
  116. /*todo до anonymize employee*/
  117. $anonymizer->table('employee', function (Blueprint $table) {
  118.     $table->column('password')->replaceWith(function (Generator $generator) {
  119.         //123456
  120.         return '$2y$10$arhI4DTWwwAf7ZztWFdzYOooxjcXrSWLOmWM3vET97DVo6VTJjg.K';
  121.     });
  122. });
  123.  
  124. $anonymizer->table('experian', function (Blueprint $table) {
  125.     $codes = ['0000', '1008', '1063', '1003'];
  126.     foreach ($codes as $code) {
  127.         $table->column('result')->where("error_code = '" . $code . "'")->replaceWith(function (Generator $generator) use ($code) {
  128.             return $generator->experianResponse($code);
  129.         });
  130.     }
  131.     $table->column('result')->where("error_code NOT IN ('" . implode("','", $codes) . "')")->replaceWith(function (Generator $generator) {
  132.         return '{}';
  133.     });
  134. });
  135.  
  136. $anonymizer->table('kontomatik', function (Blueprint $table) {
  137.     $table->column('xmldata')->where("identification = 1 OR identification = -1")->replaceWith(function (Generator $generator) {
  138.         return $generator->goodKontomatikResponse;
  139.     });
  140.     $table->column('xmldata')->where("identification = 0")->replaceWith(function (Generator $generator) {
  141.         return $generator->errorKontomatikResponse;
  142.     });
  143.     $table->column('fhi')->where("identification = 1 OR identification = -1")->replaceWith(function (Generator $generator) {
  144.         return $generator->goodKontomatikFHIResponse;
  145.     });
  146.     $table->column('fhi')->where("identification = 0")->replaceWith(function (Generator $generator) {
  147.         return $generator->errorKontomatikFHIResponse;
  148.     });
  149. });
  150.  
  151. $anonymizer->table('passport', function (Blueprint $table) {
  152.     $table->column('personnum')->replaceWith(function (Generator $generator) {
  153.         return $generator->dni;
  154.     });
  155.     $table->column('birthday')->replaceWith(function (Generator $generator) {
  156.         return $generator->date('Y-m-d','-18 years');
  157.     });
  158. });
  159.  
  160. $anonymizer->table('photo_verification', function (Blueprint $table) {
  161.     $table->column('file_name')->replaceWith(function (Generator $generator) {
  162.         return 'test.png';
  163.     });
  164. });
  165.  
  166. $anonymizer->table('sms', function (Blueprint $table) {
  167.     $table->column('phone')->replaceWith(function (Generator $generator) {
  168.         return $generator->spainMobilePhoneNumber;
  169.     });
  170. });
  171.  
  172. $anonymizer->table('trustly_notification', function (Blueprint $table) {
  173.     $table->column('attributes')->replaceWith(function (Generator $generator) {
  174.         return '{}';
  175.     });
  176. });
  177.  
  178. $anonymizer->table('trustly_transaction', function (Blueprint $table) {
  179.     $table->setDefaultPrimary('messageid');
  180.     $table->column('attributes')->where("method = 'Deposit'")->replaceWith(function (Generator $generator) {
  181.         return json_encode([
  182.             'EndUser' => $generator->randomNumber(),
  183.             'Attributes' => [
  184.                 'Amount' => $generator->randomFloat(2, 60, 200),
  185.                 'Email' => $generator->safeEmail,
  186.                 'Lastname' => $generator->lastName,
  187.                 'Firstname' => $generator->firstName,
  188.                 'SuccessURL' => 'https://prestamer.es/trustly/success',
  189.                 'DateOfBirth' => $generator->date()
  190.             ]
  191.         ]);
  192.     });
  193. });
  194.  
  195. $anonymizer->run();
  196.  
  197. echo "Anonymization has been completed!\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement