- Configure the VardiusAdminBundle
- Add items to admin menu
- Create crud actions under admin route
- Use i18n_prefix for routes
If you want to enable username config.yml
#app/config/config.yml
twig:
form:
resources: ['bootstrap_3_horizontal_layout.html.twig']
vardius_user:
username: true #default false
email_from: some@email.com #default hostname
routing.yml
#app/config/routing.yml
vardius_admin:
resource: "@VardiusAdminBundle/Resources/config/routing.yml"
prefix: /
security.yml
#app/config/security.yml
encoders:
Vardius\Bundle\UserBundle\Entity\User:
algorithm: bcrypt
cost: 12
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
providers:
vardius:
id: vardius_user.user_provider
firewalls:
admin_area:
pattern: ^/admin
anonymous: ~
form_login:
login_path: login_route
check_path: login_check
csrf_provider: form.csrf_provider
logout:
path: logout_route
target: login_route
invalidate_session: true
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /admin
domain: ~ # Defaults to the current domain from $_SERVER
access_control:
- { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/password-reset, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/terms, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/reset, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Follow the steps from documentation Vardius Menu Bundle
add menu items to admin_menu
//AcmeBundle\EventListener\MenuSubscriber
public static function getSubscribedEvents()
{
return array(
MenuEvents::MENU => 'onMenu',
);
}
public function onMenu(MenuEvent $event)
{
$menu = $event->getMenu();
if ($menu->getName() === 'admin_menu') {
$menu->addChild(new MenuItem('Page Name', 'page_path'));
}
}
Follow the steps from documentation Vardius User Bundle
use vardius_admin.controller.factory
as a factory service
<service id="acme.crud_controller.product" class="%vardius_crud.controller.class%" factory-service="vardius_admin.controller.factory" factory-method="get">
<argument>AcmeBundle:Product</argument>
<argument>/products</argument>
<argument type="service" id="acme.product.list_view"/>
<argument type="service" id="acme.form.type.product"/>
<tag name="vardius_crud.controller" />
</service>
and admin actions to use view from admin bundle for example:
<argument type="collection">
<argument type="service" key="show" id="vardius_admin.action_show"/>
<argument type="service" key="edit" id="vardius_admin.action_edit"/>
</argument>
Change routes as follows
vardius_admin:
resource: "@VardiusAdminBundle/Controller/"
type: annotation
prefix: /
options: { i18n_prefix: admin }
vardius_user:
resource: "@VardiusUserBundle/Resources/config/routing.yml"
prefix: /
options: { i18n_prefix: admin }