antoinelemaire/blacklist-bundle

Provides a Blacklist system for Symfony using Annotations with Sonata admin integration.

1.0.0 2018-04-09 07:04 UTC

README

Blacklist system with integration in Symfony. Just insert blacklist value/type combinaison inside database and use Annotation to assert.

Example Database

Installation

Add the package to your composer.json file

"antoinelemaire/blacklist-bundle": "dev-master",

Add this to app/AppKernel.php

<?php
    public function registerBundles()
    {
        $bundles = array(
            ...
            new AntoineLemaire\BlacklistBundle\AntoineLemaireBlacklistBundle(),
        );

        ...

        return $bundles;
    }

Configuration

Sonata admin:

sonata_admin:
    dashboard:
        groups:
            antoinelemaire_blacklist:
                label: Blacklist
                label_catalogue: AntoineLemaireBlacklistBundle
                items:
                    - AntoineLemaire\BlacklistBundle\Admin\BlacklistAdmin

Usage

Available types:

  • email
  • email_domain (when 'email=true' is defined, apply the constraint only on the domain part of the value)
  • ip
class User
{
    /**
     * @var string
     
     * @IsNotBlacklisted(type="email")
     * @IsNotBlacklisted(type="email_domain", email=true)
     */
    private $email;
    
    /**
     * @var string
     
     * @IsNotBlacklisted(type="ip", message="This IP is blacklisted.")
     */
    private $ip;
    
}