tobur/simple-user

There is no license information available for the latest version (v0.3) of this package.

Installs: 34

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 1

Open Issues: 0

Type:symfony-bundle

v0.3 2018-10-17 09:16 UTC

This package is not auto-updated.

Last update: 2024-05-12 02:56:34 UTC


README

Install

composer require tobur/simple-user v0.2
SimpleUser\SimpleUserBundle::class => ['all' => true],

Change you routing file:

simple_user_login:
    resource: '@SimpleUserBundle/Resources/config/routing_login.yaml'
    prefix: /admin/

simple_user_registration:
    resource: '@SimpleUserBundle/Resources/config/routing_registration.yaml'
    prefix: /

simple_user_password_reset:
    resource: '@SimpleUserBundle/Resources/config/routing_password_reset.yaml'
    prefix: /

Modify your firewalls:

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        admin:
            pattern: ^/admin
            anonymous: ~
            provider: user_provider
            form_login:
                login_path: simple_user_login
                check_path: simple_user_login_check
                default_target_path: '%redirect_after_login%'
                username_parameter: '_username'
                password_parameter: '_password'
                post_only: true
            logout:
                path: simple_user_logout
                target: simple_user_login


    access_control:
        - { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, roles: ROLE_USER }
        - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }

Create simple_user.yaml for configure bundle:

simple_user:
  user_class: App\Entity\User
  role_class: App\Entity\Role
  firewall_name: admin
  redirect_after_login: '%redirect_after_login%'
  email:
    from: %email_from%

Create entity classes:

<?php

namespace App\Entity;

use SimpleUser\Model\Role as BaseRole;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="role")
 */
class Role extends BaseRole
{
    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\User", mappedBy="roles", cascade={"persist","remove"})
     *
     * @var ArrayCollection
     */
    protected $users;

    public function __construct() {
        $this->users = new ArrayCollection();
    }
}
<?php

namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use SimpleUser\Interfaces\SimpleUserRoleInterface;
use SimpleUser\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\Role", inversedBy="users", cascade={"persist","remove"})
     * @ORM\JoinTable(name="simple_user_to_role",
     *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
     * )
     * @var SimpleUserRoleInterface[]
     */
    protected $roles;

    public function __construct() {
        $this->roles = new ArrayCollection();
    }
}

Update your database:

php bin/console doctrine:schema:update

Rewrite templates example:

/templates/bundles/SimpleUserBundle/Security/login.html.twig