alister/reserved-names-bundle

This bundle checks against a list of reserved names, & some variants

Installs: 181

Dependents: 0

Suggesters: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

v2.0.0 2018-12-07 12:52 UTC

README

A bundled service to clean, and check, a given username against an (extensible) list of reserved words/usernames.

Note: This DOES NOT validate usernames. That should happen (and potentially disallow names) before getting to this stage.

Installation and use

  1. Add to app/AppKernel.php

    $bundles = array(
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        // ... many others
    
        new Alister\ReservedNamesBundle\AlisterReservedNamesBundle(),
    );
  2. Add to app/config/config.yml

    alister_reserved_names:
        names:
            # These keys will be lower-cased
            - myname
            - myothername
            - alister
            - private
  3. Use

    $username = 'myname_123';
    $reserved = $this->container->get('alister_reserved_names.check');
    if ($reserved->isReserved($username)) {
        echo "{$username} is reserved";
    }
  4. Services provided:

  • alister_reserved_names.check
    • Check username does not match a reserved name, before or after calling @cleanusername
    • @see Alister\ReservedNamesBundle\Services\ReservedNames
    • The code also strips off trailing 's', and then additional noise characters (digits, -, _) for a final test against the reserved names
  • alister_reserved_names.cleanusername
    • remove 'noise characters' around the given username
    • EG: myname_123 becomes myname
    • @see Alister\ReservedNamesBundle\Services\CleanUserNames

Included tests

Testing is done with the classes directly, and also via a container, to test the service initialisation. This also allows a check for the 'local reservations' - extra names that can be defined in the local application. The container-based test includes a micro-application to build the container, and so run the full test. How to create a test setup for a local test of the service.

@todo

Make a validator (from existing code) and put into this bundle, with tests and examples See: http://stackoverflow.com/questions/7004601/symfony2-testing-entity-validation-constraints

Badges

Build Status SensioLabsInsight Scrutinizer Code Quality Dependency Status

Latest Stable Version Total Downloads Latest Unstable Version License