Created
April 15, 2019 14:49
-
-
Save Bakhshi-Faisal/b0eda6075af53130b2e6513059e07802 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
imports: | |
- { resource: parameters.yml } | |
- { resource: security.yml } | |
- { resource: services.yml } | |
# Put parameters here that don't need to change on each machine where the app is deployed | |
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration | |
parameters: | |
locale: fr | |
framework: | |
#esi: ~ | |
translator: { fallbacks: ['%locale%'] } | |
secret: '%secret%' | |
router: | |
resource: '%kernel.project_dir%/app/config/routing.yml' | |
strict_requirements: ~ | |
form: ~ | |
templating: | |
engines: ['twig'] | |
csrf_protection: ~ | |
validation: { enable_annotations: true } | |
#serializer: { enable_annotations: true } | |
default_locale: '%locale%' | |
trusted_hosts: ~ | |
session: | |
# https://symfony.com/doc/current/reference/configuration/framework.html#handler-id | |
handler_id: session.handler.native_file | |
save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%' | |
fragments: ~ | |
http_method_override: true | |
assets: ~ | |
php_errors: | |
log: true | |
# Twig Configuration | |
twig: | |
debug: '%kernel.debug%' | |
strict_variables: '%kernel.debug%' | |
# Doctrine Configuration | |
doctrine: | |
dbal: | |
driver: pdo_mysql | |
host: '%database_host%' | |
port: '%database_port%' | |
dbname: '%database_name%' | |
user: '%database_user%' | |
password: '%database_password%' | |
charset: UTF8 | |
# if using pdo_sqlite as your database driver: | |
# 1. add the path in parameters.yml | |
# e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite' | |
# 2. Uncomment database_path in parameters.yml.dist | |
# 3. Uncomment next line: | |
#path: '%database_path%' | |
orm: | |
auto_generate_proxy_classes: '%kernel.debug%' | |
naming_strategy: doctrine.orm.naming_strategy.underscore | |
auto_mapping: true | |
# Swiftmailer Configuration | |
swiftmailer: | |
transport: '%mailer_transport%' | |
host: '%mailer_host%' | |
username: '%mailer_user%' | |
password: '%mailer_password%' | |
spool: { type: memory } | |
sensio_framework_extra: | |
router: | |
annotations: false | |
fos_user: | |
db_driver: orm # other valid values are 'mongodb' and 'couchdb' | |
firewall_name: main | |
user_class: AppBundle\Entity\User | |
registration: | |
form: | |
type: AppBundle\Form\UserType | |
from_email: | |
address: Demi@live.com | |
sender_name: Demi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace AppBundle\Controller; | |
use Symfony\Bundle\FrameworkBundle\Controller\Controller; | |
use Symfony\Component\HttpFoundation\Request; | |
use Symfony\Component\Routing\Annotation\Route; | |
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; | |
class DefaultController extends Controller | |
{ | |
/** | |
* @Route("/", name="home") | |
*/ | |
public function indexAction(Request $request , AuthenticationUtils $authenticationUtils) | |
{ | |
$error = $authenticationUtils->getLastAuthenticationError(); | |
$lastUsername = $authenticationUtils->getLastUsername(); | |
return $this->render('userLogin.html.twig', [ | |
'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR, | |
'last_username' => $lastUsername, | |
'error' => $error, | |
]); | |
} | |
/** | |
* @Route("/",name="visiteur") | |
*/ | |
public function dark(Request $request) | |
{ | |
return $this->render('visiteur.html.twig'); | |
} | |
/** | |
* @Route("/",name="comptable") | |
*/ | |
public function comptable(Request $request) | |
{ | |
return $this->render('comptable.html.twig'); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace AppBundle\Controller; | |
use Symfony\Component\HttpFoundation\Request; | |
use Symfony\Component\Routing\RouterInterface; | |
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; | |
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface; | |
use Symfony\Component\HttpFoundation\RedirectResponse; | |
class LoginController implements AuthenticationSuccessHandlerInterface | |
{ | |
private $router; | |
public function __construct(RouterInterface $router) | |
{ | |
$this->router = $router; | |
} | |
public function onAuthenticationSuccess(Request $request, TokenInterface $token) | |
{ | |
$roles = $token->getRoles(); | |
$rolesTab = array_map(function ($role) { | |
return $role->getRole(); | |
}, $roles); | |
if (in_array('ROLE_COMPTABLE', $rolesTab, true)) { | |
// c'est un aministrateur : on le rediriger vers l'espace admin | |
$redirection = new RedirectResponse($this->router->generate('comptable')); | |
} else { | |
// c'est un utilisaeur lambda : on le rediriger vers l'accueil | |
$redirection = new RedirectResponse($this->router->generate('visiteur')); | |
} | |
return $redirection; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# To get started with security, check out the documentation: | |
# https://symfony.com/doc/current/security.html | |
security: | |
encoders: | |
FOS\UserBundle\Model\UserInterface: bcrypt | |
role_hierarchy: | |
ROLE_ADMIN: ROLE_USER | |
ROLE_SUPER_ADMIN: ROLE_ADMIN | |
ROLE_VISITEUR: ROLE_VISITEUR | |
ROLE_COMPTABLE: ROLE_COMPTABLE | |
providers: | |
fos_userbundle: | |
id: fos_user.user_provider.username | |
firewalls: | |
dev: | |
pattern: ^/(_(profiler|wdt)|css|images|js)/ | |
security: false | |
form_login: | |
# ... | |
csrf_token_generator: security.csrf.token_manager | |
csrf_parameter: _csrf_security_token | |
csrf_token_id: a_private_string | |
main: | |
pattern: ^/ | |
user_checker: security.user_checker | |
form_login: | |
provider: fos_userbundle | |
csrf_token_generator: security.csrf.token_manager | |
default_target_path: home | |
success_handler: redirect.after.login | |
logout: true | |
anonymous: true | |
access_control: | |
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } | |
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } | |
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } | |
- { path: ^/admin/, role: ROLE_ADMIN } | |
- { path: ^/user/, role: ROLE_USER } | |
- { path: ^/profile/, role: ROLE_USER } | |
- { path: ^/, role: IS_AUTHENTICATED_ANONYMOUSLY } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Learn more about services, parameters and containers at | |
# https://symfony.com/doc/current/service_container.html | |
parameters: | |
#parameter_name: value | |
services: | |
app.form.registration: | |
class: AppBundle\Form\UserType | |
tags: | |
- { name: form.type, alias: app_user_registration } | |
redirect.after.login: | |
class: AppBundle\Controller\LoginController | |
arguments: ['@router'] | |
# default configuration for services in *this* file | |
_defaults: | |
# automatically injects dependencies in your services | |
autowire: true | |
# automatically registers your services as commands, event subscribers, etc. | |
autoconfigure: true | |
# this means you cannot fetch services directly from the container via $container->get() | |
# if you need to do this, you can override this setting on individual services | |
public: false | |
# makes classes in src/AppBundle available to be used as services | |
# this creates a service per class whose id is the fully-qualified class name | |
AppBundle\: | |
resource: '../../src/AppBundle/*' | |
# you can exclude directories or files | |
# but if a service is unused, it's removed anyway | |
exclude: '../../src/AppBundle/{Entity,Repository,Tests}' | |
# controllers are imported separately to make sure they're public | |
# and have a tag that allows actions to type-hint services | |
AppBundle\Controller\: | |
resource: '../../src/AppBundle/Controller' | |
public: true | |
tags: ['controller.service_arguments'] | |
# add more services, or override services that need manual wiring | |
# AppBundle\Service\ExampleService: | |
# arguments: | |
# $someArgument: 'some_value' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment