PHPackages                             dmstr/yii2-anonymizer-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dmstr/yii2-anonymizer-module

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

dmstr/yii2-anonymizer-module
============================

GDPR-compliant user data anonymization module for Yii2 applications

0276↓50%PHP

Since Feb 20Pushed 2mo agoCompare

[ Source](https://github.com/dmstr/yii2-anonymizer-module)[ Packagist](https://packagist.org/packages/dmstr/yii2-anonymizer-module)[ RSS](/packages/dmstr-yii2-anonymizer-module/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

dmstr/yii2-anonymizer-module
============================

[](#dmstryii2-anonymizer-module)

GDPR-compliant user data anonymization module for Yii2 applications.

Features
--------

[](#features)

- REST API endpoints for user data anonymization
- CLI commands for analysis and execution
- Configurable helper classes for custom anonymization logic
- JWT-based authentication for REST endpoints
- Dry-run mode for previewing changes
- Built-in helper for yii2-usuario tables

Requirements
------------

[](#requirements)

- PHP &gt;= 8.1
- Yii2 &gt;= 2.0.45
- bizley/jwt &gt;= 4.0

Installation
------------

[](#installation)

### Via Composer (recommended)

[](#via-composer-recommended)

```
composer require dmstr/yii2-anonymizer-module
```

### Manual Installation (PSR-4 Autoload)

[](#manual-installation-psr-4-autoload)

If not using Packagist, add to your `composer.json`:

```
{
    "autoload": {
        "psr-4": {
            "dmstr\\anonymizer\\": "path/to/yii2-anonymizer-module/src"
        }
    }
}
```

Then run:

```
composer dump-autoload
```

### 2. Module Configuration

[](#2-module-configuration)

Add to `project/config/main.php` in the `$common['modules']` section:

```
'anonymizer' => [
    'class' => \dmstr\anonymizer\Module::class,
    'helpers' => [
        \dmstr\anonymizer\helpers\UsuarioAnonymizationHelper::class,
        // Add application-specific helpers here
    ],
    'userModelClass' => \project\modules\user\models\User::class,
    'requiredRole' => 'Tech_User',  // Optional: Role required for REST access
    'anonymizationPrefix' => 'ANONYMIZED_USER_',
    'anonymizationDomain' => 'waldportal.local',
],
```

### 3. CLI Command Configuration

[](#3-cli-command-configuration)

Add to `project/config/main.php` in the `$console['controllerMap']` section:

```
$console = [
    'controllerMap' => [
        'anonymizer' => [
            'class' => \dmstr\anonymizer\commands\AnonymizerController::class,
        ],
    ],
];
```

### 4. URL Rules (REST API)

[](#4-url-rules-rest-api)

Add to `project/config/main.php` in the `urlManager.rules` section:

```
[
    'class' => 'yii\rest\UrlRule',
    'controller' => ['anonymizer/anonymize'],
    'patterns' => [
        'DELETE {uuid}' => 'remove',
        'GET {uuid}' => 'analyze',
        'OPTIONS {uuid}' => 'options',
    ],
],
```

### 5. User Model Requirement

[](#5-user-model-requirement)

Your User model must implement a static `findUserByUuid()` method:

```
public static function findUserByUuid(string $uuid): ?self
{
    $socialAccount = \Da\User\Model\SocialNetworkAccount::find()
        ->andWhere(['client_id' => $uuid])
        ->one();

    if (!$socialAccount) {
        return null;
    }

    return static::findOne($socialAccount->user_id);
}
```

Usage
-----

[](#usage)

### REST API

[](#rest-api)

**Anonymize user data:**

```
curl -X DELETE \
  "https://your-app.com/anonymizer/anonymize/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer "
```

**Analyze (dry-run):**

```
curl -X GET \
  "https://your-app.com/anonymizer/anonymize/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer "
```

### CLI Commands

[](#cli-commands)

**List configured helpers:**

```
yii anonymizer/helpers
```

**Analyze user data (dry-run):**

```
yii anonymizer/analyze --uuid=550e8400-e29b-41d4-a716-446655440000
```

**Execute anonymization:**

```
yii anonymizer/execute --uuid=550e8400-e29b-41d4-a716-446655440000 --force
```

**JSON output format:**

```
yii anonymizer/analyze --uuid= --format=json
```

Creating Custom Helpers
-----------------------

[](#creating-custom-helpers)

Implement `AnonymizationHelperInterface`:

```
