Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env php
- <?php
- use Anonymizer\Anonymizer;
- use Anonymizer\Factory;
- use Anonymizer\Generator;
- use Anonymizer\Providers\PrestamerProvider;
- use Arrilot\DataAnonymization\Blueprint;
- use Arrilot\DataAnonymization\Database\SqlDatabase;
- use josegonzalez\Dotenv\Loader;
- require './vendor/autoload.php';
- $environment = (new Loader('.env'))->parse()->toArray();
- $dsn = $environment['DB_CONNECTION'] . ':dbname=' . $environment['DB_DATABASE'] . ';host=' . $environment['DB_HOST'];
- $user = $environment['DB_USERNAME'];
- $password = $environment['DB_PASSWORD'];
- $database = new SqlDatabase($dsn, $user, $password);
- $generator = Factory::create('es_ES');
- $provider = new PrestamerProvider($generator);
- $generator->addProvider($provider);
- $anonymizer = new Anonymizer($database, $generator);
- $anonymizer->table('account_details', function (Blueprint $table) {
- $table->column('value')->where("name = 'iban'")->replaceWith(function (\Faker\Generator $generator) {
- return $generator->iban('ES');
- });
- $table->column('value')->where("name IN ('bik','number','provider_account_id')")->replaceWith(function (\Faker\Generator $generator) {
- return $generator->randomNumberBig();
- });
- });
- /*Допустимо что одобренная сумма меньше взятой, иначе придется писать сложную анонимизацию*/
- $anonymizer->table('application', function (Blueprint $table) {
- $table->column('requested_amount')->replaceWith(function (Generator $generator) {
- return $generator->applicationAmount();
- });
- $table->column('approved_amount')->replaceWith(function (Generator $generator) {
- return $generator->applicationAmount();
- });
- $table->column('amount')->replaceWith(function (Generator $generator) {
- return $generator->applicationAmount();
- });
- $table->column('requested_period')->replaceWith(function (Generator $generator) {
- return $generator->applicationPeriod();
- });
- $table->column('approved_period')->replaceWith(function (Generator $generator) {
- return $generator->applicationPeriod();
- });
- $table->column('period')->replaceWith(function (Generator $generator) {
- return $generator->applicationPeriod();
- });
- });
- $anonymizer->table('attribute_history', function (Blueprint $table) {
- $table->column('value_before')->where("attribute = 'name'")->replaceWith(function (Generator $generator) {
- return $generator->firstName;
- });
- $table->column('value_after')->where("attribute = 'name'")->replaceWith(function (Generator $generator) {
- return $generator->firstName;
- });
- $table->column('value_before')->where("attribute = 'phone'")->replaceWith(function (Generator $generator) {
- return $generator->spainMobilePhoneNumber;
- });
- $table->column('value_after')->where("attribute = 'phone'")->replaceWith(function (Generator $generator) {
- return $generator->spainMobilePhoneNumber;
- });
- });
- $anonymizer->table('client', function (Blueprint $table) {
- $table->column('phone')->replaceWith(function (Generator $generator) {
- return $generator->spainMobilePhoneNumber;
- });
- $table->column('name')->replaceWith(function (Generator $generator) {
- return $generator->firstName;
- });
- $table->column('surname')->replaceWith(function (Generator $generator) {
- return $generator->lastName;
- });
- $table->column('second_surname')->replaceWith(function (Generator $generator) {
- return $generator->suffix;
- });
- $table->column('email')->replaceWith(function (Generator $generator) {
- return $generator->safeEmail;
- });
- $table->column('password')->replaceWith(function (Generator $generator) {
- //123456
- return '$2y$10$arhI4DTWwwAf7ZztWFdzYOooxjcXrSWLOmWM3vET97DVo6VTJjg.K';
- });
- });
- $anonymizer->table('client_initial_registration', function (Blueprint $table) {
- $table->column('phone')->replaceWith(function (Generator $generator) {
- return $generator->spainMobilePhoneNumber;
- });
- $table->column('name')->replaceWith(function (Generator $generator) {
- return $generator->firstName;
- });
- $table->column('surname')->replaceWith(function (Generator $generator) {
- return $generator->lastName;
- });
- $table->column('second_surname')->replaceWith(function (Generator $generator) {
- return $generator->suffix;
- });
- $table->column('email')->replaceWith(function (Generator $generator) {
- return $generator->safeEmail;
- });
- });
- /*todo до anonymize employee*/
- $anonymizer->table('employee', function (Blueprint $table) {
- $table->column('password')->replaceWith(function (Generator $generator) {
- //123456
- return '$2y$10$arhI4DTWwwAf7ZztWFdzYOooxjcXrSWLOmWM3vET97DVo6VTJjg.K';
- });
- });
- $anonymizer->table('experian', function (Blueprint $table) {
- $codes = ['0000', '1008', '1063', '1003'];
- foreach ($codes as $code) {
- $table->column('result')->where("error_code = '" . $code . "'")->replaceWith(function (Generator $generator) use ($code) {
- return $generator->experianResponse($code);
- });
- }
- $table->column('result')->where("error_code NOT IN ('" . implode("','", $codes) . "')")->replaceWith(function (Generator $generator) {
- return '{}';
- });
- });
- $anonymizer->table('kontomatik', function (Blueprint $table) {
- $table->column('xmldata')->where("identification = 1 OR identification = -1")->replaceWith(function (Generator $generator) {
- return $generator->goodKontomatikResponse;
- });
- $table->column('xmldata')->where("identification = 0")->replaceWith(function (Generator $generator) {
- return $generator->errorKontomatikResponse;
- });
- $table->column('fhi')->where("identification = 1 OR identification = -1")->replaceWith(function (Generator $generator) {
- return $generator->goodKontomatikFHIResponse;
- });
- $table->column('fhi')->where("identification = 0")->replaceWith(function (Generator $generator) {
- return $generator->errorKontomatikFHIResponse;
- });
- });
- $anonymizer->table('passport', function (Blueprint $table) {
- $table->column('personnum')->replaceWith(function (Generator $generator) {
- return $generator->dni;
- });
- $table->column('birthday')->replaceWith(function (Generator $generator) {
- return $generator->date('Y-m-d','-18 years');
- });
- });
- $anonymizer->table('photo_verification', function (Blueprint $table) {
- $table->column('file_name')->replaceWith(function (Generator $generator) {
- return 'test.png';
- });
- });
- $anonymizer->table('sms', function (Blueprint $table) {
- $table->column('phone')->replaceWith(function (Generator $generator) {
- return $generator->spainMobilePhoneNumber;
- });
- });
- $anonymizer->table('trustly_notification', function (Blueprint $table) {
- $table->column('attributes')->replaceWith(function (Generator $generator) {
- return '{}';
- });
- });
- $anonymizer->table('trustly_transaction', function (Blueprint $table) {
- $table->setDefaultPrimary('messageid');
- $table->column('attributes')->where("method = 'Deposit'")->replaceWith(function (Generator $generator) {
- return json_encode([
- 'EndUser' => $generator->randomNumber(),
- 'Attributes' => [
- 'Amount' => $generator->randomFloat(2, 60, 200),
- 'Email' => $generator->safeEmail,
- 'Lastname' => $generator->lastName,
- 'Firstname' => $generator->firstName,
- 'SuccessURL' => 'https://prestamer.es/trustly/success',
- 'DateOfBirth' => $generator->date()
- ]
- ]);
- });
- });
- $anonymizer->run();
- echo "Anonymization has been completed!\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement