effective-solutions / user-bundle
Effective Solutions (Pvt) Ltd. 用户包
3.2.5
2018-03-06 10:29 UTC
Requires
- php: >=5.4
README
安装
在命令行中使用以下命令安装Effective Solutions用户包
php composer.phar require effective-solutions/user-bundle
安装后,在您的 AppKernel.php 文件中添加以下内容
new EffectiveSolutions\UserBundle\EffectiveSolutionsUserBundle(),
在 app/config/routing.yml 文件中添加以下内容
effective_solutions_user:
resource: "@EffectiveSolutionsUserBundle/Controller/"
type: annotation
prefix: /
logout:
path: /logout
在 app/config/services.yml 文件中添加以下内容。
parameters:
registration_default_role: < role metacode >
用法
- 在您的实体文件夹中创建
User.php文件并添加以下代码。
<?php
namespace AppBundle\Entity;
use EffectiveSolutions\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
* @ORM\Table(name="app_users")
*/
class User extends BaseUser
{
public function __construct()
{
parent::__construct();
}
/**
* @ORM\ManyToOne(targetEntity="Role")
* @ORM\JoinColumn(name="role_id", referencedColumnName="id")
*/
private $role;
/**
* Set role
*
* @param \AppBundle\Entity\Role $role
* @return User
*/
public function setRole(\AppBundle\Entity\Role $role = null)
{
$this->role = $role;
return $this;
}
/**
* Get role
*
* @return \AppBundle\Entity\Role
*/
public function getRole()
{
return $this->role;
}
public function getRoles()
{
return array($this->getRole()->getMetacode());
}
}
- 在您的实体文件夹中创建
Role.php文件并添加以下代码。
<?php
namespace AppBundle\Entity;
use EffectiveSolutions\UserBundle\Model\Role as BaseRole;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\RoleRepository")
* @ORM\Table(name="role")
*/
class Role extends BaseRole
{
}
- 在您的存储库文件夹中创建
UserRepository.php文件并添加以下代码。
<?php
namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
/**
* UserRepository
*
* Add your own custom repository methods below.
*/
class UserRepository extends EntityRepository implements UserLoaderInterface
{
public function loadUserByUsername($username)
{
return $this->createQueryBuilder('u')
->where('u.username = :username OR u.email = :email')
->setParameter('username', $username)
->setParameter('email', $username)
->getQuery()
->getOneOrNullResult();
}
}
- 在您的存储库文件夹中创建
RoleRepository.php文件并添加以下代码。
<?php
namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
/**
* RoleRepository
*
* Add your own custom repository methods below.
*/
class RoleRepository extends EntityRepository
{
}
- 运行以下命令以在您的数据库中创建用户和角色表
php app/console doctrine:schema:update --force
- 运行以下命令安装资源
php app/console asset:install
- 在您的
app/config/security.yml文件中添加以下代码
security:
encoders:
AppBundle\Entity\User:
algorithm: bcrypt
cost: 12
# role_hierarchy:
# ROLE_ADMIN: ROLE_USER
providers:
our_db_provider:
entity:
class: AppBundle:User
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
anonymous: ~
http_basic: ~
provider: our_db_provider
form_login:
login_path: login
check_path: login
csrf_token_generator: security.csrf.token_manager
# default_target_path: redirect
logout:
path: /logout
target: /
remember_me:
secret: '%secret%'
lifetime: 604800 # 1 week in seconds
path: /
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
- 然后访问
https:///YourAppName/web/app_dev.php/login
感谢您使用Effective Solutions用户包。由 EffectiveSolutions.lk 提供支持