mirror of
				https://github.com/kevinveenbirkenbach/infinito.git
				synced 2025-10-31 17:29:04 +00:00 
			
		
		
		
	Implemented FOS bundle
This commit is contained in:
		| @@ -21,4 +21,8 @@ APP_SECRET=997425e20bc2144c301a312511101613 | ||||
| # For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode=" | ||||
| # Delivery is disabled by default via "null://localhost" | ||||
| MAILER_URL=null://localhost | ||||
| ###< symfony/swiftmailer-bundle ### | ||||
|  | ||||
| ###> friendsofsymfony/user-bundle ### | ||||
| MAILER_SENDER=test@test.de | ||||
| MAILER_USER=user | ||||
| ###< friendsofsymfony/user-bundle ### | ||||
|   | ||||
| @@ -5,6 +5,7 @@ | ||||
|         "php": "^7.1.3", | ||||
|         "ext-ctype": "*", | ||||
|         "ext-iconv": "*", | ||||
|         "friendsofsymfony/user-bundle": "~2.1", | ||||
|         "knplabs/knp-menu-bundle": "^2.0", | ||||
|         "sensio/framework-extra-bundle": "^5.1", | ||||
|         "symfony/asset": "*", | ||||
|   | ||||
							
								
								
									
										134
									
								
								application/composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										134
									
								
								application/composer.lock
									
									
									
										generated
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", | ||||
|         "This file is @generated automatically" | ||||
|     ], | ||||
|     "content-hash": "46e513d742140ba387e272208c8a9dc9", | ||||
|     "content-hash": "49bb78c3c5e9cebe665f0e40f98e14b8", | ||||
|     "packages": [ | ||||
|         { | ||||
|             "name": "doctrine/annotations", | ||||
| @@ -1281,6 +1281,82 @@ | ||||
|             ], | ||||
|             "time": "2016-10-17T18:31:11+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "friendsofsymfony/user-bundle", | ||||
|             "version": "v2.1.2", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git", | ||||
|                 "reference": "1049935edd24ec305cc6cfde1875372fa9600446" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/1049935edd24ec305cc6cfde1875372fa9600446", | ||||
|                 "reference": "1049935edd24ec305cc6cfde1875372fa9600446", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "paragonie/random_compat": "^1 || ^2", | ||||
|                 "php": "^5.5.9 || ^7.0", | ||||
|                 "symfony/form": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/framework-bundle": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/security-bundle": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/templating": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/twig-bundle": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/validator": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "twig/twig": "^1.28 || ^2.0" | ||||
|             }, | ||||
|             "conflict": { | ||||
|                 "doctrine/doctrine-bundle": "<1.3", | ||||
|                 "symfony/doctrine-bridge": "<2.7" | ||||
|             }, | ||||
|             "require-dev": { | ||||
|                 "doctrine/doctrine-bundle": "^1.3", | ||||
|                 "friendsofphp/php-cs-fixer": "^2.2", | ||||
|                 "phpunit/phpunit": "^4.8.35|^5.7.11|^6.5", | ||||
|                 "swiftmailer/swiftmailer": "^4.3 || ^5.0 || ^6.0", | ||||
|                 "symfony/console": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/phpunit-bridge": "^2.8 || ^3.0 || ^4.0", | ||||
|                 "symfony/yaml": "^2.8 || ^3.0 || ^4.0" | ||||
|             }, | ||||
|             "type": "symfony-bundle", | ||||
|             "extra": { | ||||
|                 "branch-alias": { | ||||
|                     "dev-master": "2.1.x-dev" | ||||
|                 } | ||||
|             }, | ||||
|             "autoload": { | ||||
|                 "psr-4": { | ||||
|                     "FOS\\UserBundle\\": "" | ||||
|                 }, | ||||
|                 "exclude-from-classmap": [ | ||||
|                     "/Tests/" | ||||
|                 ] | ||||
|             }, | ||||
|             "notification-url": "https://packagist.org/downloads/", | ||||
|             "license": [ | ||||
|                 "MIT" | ||||
|             ], | ||||
|             "authors": [ | ||||
|                 { | ||||
|                     "name": "Christophe Coevoet", | ||||
|                     "email": "stof@notk.org" | ||||
|                 }, | ||||
|                 { | ||||
|                     "name": "FriendsOfSymfony Community", | ||||
|                     "homepage": "https://github.com/friendsofsymfony/FOSUserBundle/contributors" | ||||
|                 }, | ||||
|                 { | ||||
|                     "name": "Thibault Duplessis" | ||||
|                 } | ||||
|             ], | ||||
|             "description": "Symfony FOSUserBundle", | ||||
|             "homepage": "http://friendsofsymfony.github.com", | ||||
|             "keywords": [ | ||||
|                 "User management" | ||||
|             ], | ||||
|             "time": "2018-03-08T08:59:27+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "jdorn/sql-formatter", | ||||
|             "version": "v1.2.17", | ||||
| @@ -4292,6 +4368,62 @@ | ||||
|             "homepage": "http://symfony.com", | ||||
|             "time": "2018-08-29T08:49:17+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "symfony/templating", | ||||
|             "version": "v4.1.4", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/symfony/templating.git", | ||||
|                 "reference": "411b8c324ee3e8b36e71d938e8d043d6e16582d2" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/symfony/templating/zipball/411b8c324ee3e8b36e71d938e8d043d6e16582d2", | ||||
|                 "reference": "411b8c324ee3e8b36e71d938e8d043d6e16582d2", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "php": "^7.1.3", | ||||
|                 "symfony/polyfill-ctype": "~1.8" | ||||
|             }, | ||||
|             "require-dev": { | ||||
|                 "psr/log": "~1.0" | ||||
|             }, | ||||
|             "suggest": { | ||||
|                 "psr/log-implementation": "For using debug logging in loaders" | ||||
|             }, | ||||
|             "type": "library", | ||||
|             "extra": { | ||||
|                 "branch-alias": { | ||||
|                     "dev-master": "4.1-dev" | ||||
|                 } | ||||
|             }, | ||||
|             "autoload": { | ||||
|                 "psr-4": { | ||||
|                     "Symfony\\Component\\Templating\\": "" | ||||
|                 }, | ||||
|                 "exclude-from-classmap": [ | ||||
|                     "/Tests/" | ||||
|                 ] | ||||
|             }, | ||||
|             "notification-url": "https://packagist.org/downloads/", | ||||
|             "license": [ | ||||
|                 "MIT" | ||||
|             ], | ||||
|             "authors": [ | ||||
|                 { | ||||
|                     "name": "Fabien Potencier", | ||||
|                     "email": "fabien@symfony.com" | ||||
|                 }, | ||||
|                 { | ||||
|                     "name": "Symfony Community", | ||||
|                     "homepage": "https://symfony.com/contributors" | ||||
|                 } | ||||
|             ], | ||||
|             "description": "Symfony Templating Component", | ||||
|             "homepage": "https://symfony.com", | ||||
|             "time": "2018-07-26T11:24:31+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "symfony/translation", | ||||
|             "version": "v4.1.4", | ||||
|   | ||||
| @@ -15,4 +15,5 @@ return [ | ||||
|     Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], | ||||
|     Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true], | ||||
|     Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true], | ||||
|     FOS\UserBundle\FOSUserBundle::class => ['all' => true], | ||||
| ]; | ||||
|   | ||||
							
								
								
									
										7
									
								
								application/config/packages/fos_user.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								application/config/packages/fos_user.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| fos_user: | ||||
|     db_driver: orm # other valid values are 'mongodb' and 'couchdb' | ||||
|     firewall_name: main | ||||
|     user_class: App\Entity\User | ||||
|     from_email: | ||||
|         address: "%env(MAILER_SENDER)%" | ||||
|         sender_name: "%env(MAILER_USER)%" | ||||
| @@ -28,3 +28,5 @@ framework: | ||||
|  | ||||
|         # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) | ||||
|         #app: cache.adapter.apcu | ||||
|     templating: | ||||
|         engines: ['twig', 'php'] | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
| security: | ||||
|     # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers | ||||
|     encoders: | ||||
|         App\Entity\User: | ||||
|             algorithm: bcrypt | ||||
|         FOS\UserBundle\Model\UserInterface: bcrypt | ||||
|     providers: | ||||
|         our_db_provider: | ||||
|             entity: | ||||
|                 class: App\Entity\User | ||||
|                 property: username | ||||
|         fos_userbundle: | ||||
|             id: fos_user.user_provider.username | ||||
|     role_hierarchy: | ||||
|         ROLE_ADMIN:       ROLE_USER | ||||
|         ROLE_SUPER_ADMIN: ROLE_ADMIN | ||||
|     hide_user_not_found: false | ||||
|     firewalls: | ||||
|         dev: | ||||
| @@ -16,21 +16,18 @@ security: | ||||
|         main: | ||||
|             anonymous: true | ||||
|             form_login: | ||||
|                 login_path: login | ||||
|                 check_path: login | ||||
|             logout: | ||||
|                 path:   /logout | ||||
|                 target: / | ||||
|                 provider: fos_userbundle | ||||
|                 csrf_token_generator: security.csrf.token_manager | ||||
|             logout:       true | ||||
|  | ||||
|             # activate different ways to authenticate | ||||
|  | ||||
|             # http_basic: true | ||||
|             # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate | ||||
|  | ||||
|             # form_login: true | ||||
|             # https://symfony.com/doc/current/security/form_login_setup.html | ||||
|  | ||||
|     # Easy way to control access for large sections of your site | ||||
|     # Note: Only the *first* access control that matches will be used | ||||
|     access_control: | ||||
|         # - { path: ^/admin, roles: ROLE_ADMIN } | ||||
|         # - { path: ^/profile, roles: ROLE_USER } | ||||
|         - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } | ||||
|         - { path: ^/admin/, role: ROLE_ADMIN } | ||||
|   | ||||
| @@ -1,2 +1,4 @@ | ||||
| logout: | ||||
|     path: /logout | ||||
| fos_user: | ||||
|     resource: "@FOSUserBundle/Resources/config/routing/all.xml" | ||||
|   | ||||
| @@ -1,61 +0,0 @@ | ||||
| <?php | ||||
| namespace App\Controller; | ||||
|  | ||||
| use App\Form\UserType; | ||||
| use App\Entity\User; | ||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| use Symfony\Component\Routing\Annotation\Route; | ||||
| use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface; | ||||
| use Symfony\Component\HttpFoundation\RedirectResponse; | ||||
| use Symfony\Component\HttpFoundation\Response; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
| use Symfony\Component\Form\FormInterface; | ||||
|  | ||||
| class RegistrationController extends AbstractController | ||||
| { | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      * @var User | ||||
|      */ | ||||
|     private $user; | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      * @Route("/register", name="user_register") | ||||
|      */ | ||||
|     public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder,TranslatorInterface $translator): Response | ||||
|     { | ||||
|         $this->user = new User(); | ||||
|         $form = $this->createForm(UserType::class, $this->user); | ||||
|         $form->handleRequest($request); | ||||
|         if ($form->isSubmitted() && $form->isValid()) { | ||||
|             $this->encodePassword($passwordEncoder); | ||||
|             $this->saveUser($translator); | ||||
|             return $this->redirectToRoute('login'); | ||||
|         } | ||||
|         return $this->render("user/register.html.twig", array( | ||||
|             'form' => $form->createView() | ||||
|         )); | ||||
|     } | ||||
|  | ||||
|     public function encodePassword(UserPasswordEncoderInterface $passwordEncoder): void | ||||
|     { | ||||
|         $password = $passwordEncoder->encodePassword($this->user, $this->user->getPlainPassword()); | ||||
|         $this->user->setPassword($password); | ||||
|     } | ||||
|  | ||||
|     private function saveUser(TranslatorInterface $translator): void | ||||
|     { | ||||
|         $entityManager = $this->getDoctrine()->getManager(); | ||||
|         $entityManager->persist($this->user); | ||||
|         try { | ||||
|             $entityManager->flush(); | ||||
|             $this->addFlash('success', $translator->trans('User "%username%" created!',['%username%'=>$this->user->getUsername()])); | ||||
|         } catch (\Exception $exception) { | ||||
|             $this->addFlash('danger', $translator->trans('User "%username%" could not be created!',['%username%'=>$this->user->getUsername()])); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -1,37 +0,0 @@ | ||||
| <?php | ||||
| namespace App\Controller; | ||||
|  | ||||
| use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; | ||||
| use Symfony\Component\HttpFoundation\Response; | ||||
| use Symfony\Component\Routing\Annotation\Route; | ||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\Translation\TranslatorInterface; | ||||
|  | ||||
| /** | ||||
|  * | ||||
|  * @author kevinfrantz | ||||
|  *         | ||||
|  */ | ||||
| class SecurityController extends AbstractController | ||||
| { | ||||
|     /** | ||||
|      * | ||||
|      * @Route("/login", name="login") | ||||
|      */ | ||||
|     public function login(AuthenticationUtils $authenticationUtils,TranslatorInterface $translator): Response | ||||
|     { | ||||
|         $error = $authenticationUtils->getLastAuthenticationError(); | ||||
|         if ($error) { | ||||
|             $this->addFlash('danger', $translator->trans($error->getMessageKey(),$error->getMessageData(),'security')); | ||||
|         }else{ | ||||
|             $lastUsername = $authenticationUtils->getLastUsername(); | ||||
|             if($lastUsername){ | ||||
|                 $this->addFlash('success', $translator->trans('User %user% loged in.',['%user%'=>$lastUsername])); | ||||
|             } | ||||
|         } | ||||
|         return $this->render("user/login.html.twig",[ | ||||
|             'last_username'=>$authenticationUtils->getLastUsername(), | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -1,6 +1,8 @@ | ||||
| <?php | ||||
| namespace App\Entity\Attribut; | ||||
|  | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
|  | ||||
| /** | ||||
|  * | ||||
|  * @author kevinfrantz | ||||
| @@ -8,7 +10,7 @@ namespace App\Entity\Attribut; | ||||
|  */ | ||||
| trait IdAttribut { | ||||
|     /** | ||||
|      * @ORM\Id | ||||
|      * @ORM\Id() | ||||
|      * @ORM\GeneratedValue | ||||
|      * @ORM\Column(type="integer")(strategy="AUTO") | ||||
|      */ | ||||
|   | ||||
| @@ -2,9 +2,8 @@ | ||||
| namespace App\Entity; | ||||
|  | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use App\Entity\Attribut\UsernameAttribut; | ||||
| use App\Entity\Attribut\PasswordAttribut; | ||||
| use App\Entity\Attribut\PlainPasswordAttribute; | ||||
| use FOS\UserBundle\Model\User as BaseUser; | ||||
| use App\Entity\Attribut\NodeAttribut; | ||||
|  | ||||
| /** | ||||
|  * | ||||
| @@ -12,51 +11,39 @@ use App\Entity\Attribut\PlainPasswordAttribute; | ||||
|  * @ORM\Table(name="source_user") | ||||
|  * @ORM\Entity(repositoryClass="App\Repository\UserRepository") | ||||
|  */ | ||||
| class User extends AbstractSource implements UserInterface | ||||
| class User extends BaseUser implements SourceInterface | ||||
| { | ||||
|     use UsernameAttribut,PasswordAttribut,PlainPasswordAttribute; | ||||
|     use NodeAttribut; | ||||
|   | ||||
|     /** | ||||
|      * @ORM\Column(name="is_active", type="boolean") | ||||
|      */ | ||||
|     private $isActive; | ||||
|      | ||||
|     /** | ||||
|      * @ORM\Id() | ||||
|      * @ORM\GeneratedValue | ||||
|      * @ORM\Column(type="integer")(strategy="AUTO") | ||||
|      */ | ||||
|     protected $id; | ||||
|      | ||||
|     public function setId(int $id): void | ||||
|     { | ||||
|         $this->id = $id; | ||||
|     } | ||||
|      | ||||
|     public function getId(): int | ||||
|     { | ||||
|         return $this->id; | ||||
|     } | ||||
|  | ||||
|     public function __construct() | ||||
|     { | ||||
|         parent::__construct (); | ||||
|         /** | ||||
|          * @todo Remove this later | ||||
|          * @var \App\Entity\User $isActive | ||||
|          */ | ||||
|         $this->isActive = true; | ||||
|     } | ||||
|  | ||||
|     public function getSalt() | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public function getRoles() | ||||
|     { | ||||
|         return array('ROLE_USER'); | ||||
|     } | ||||
|  | ||||
|     public function eraseCredentials() | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     /** @see \Serializable::serialize() */ | ||||
|     public function serialize() | ||||
|     { | ||||
|         return serialize(array( | ||||
|             $this->id, | ||||
|             $this->username, | ||||
|             $this->password, | ||||
|         )); | ||||
|     } | ||||
|  | ||||
|     /** @see \Serializable::unserialize() */ | ||||
|     public function unserialize($serialized) | ||||
|     { | ||||
|         list ( | ||||
|             $this->id, | ||||
|             $this->username, | ||||
|             $this->password, | ||||
|         ) = unserialize($serialized, array('allowed_classes' => false)); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,14 +0,0 @@ | ||||
| <?php | ||||
| namespace App\Entity; | ||||
|  | ||||
| use Symfony\Component\Security\Core\User\UserInterface as SymfonyUserInterface; | ||||
|  | ||||
| /** | ||||
|  * | ||||
|  * @author kevinfrantz | ||||
|  *         | ||||
|  */ | ||||
| interface UserInterface extends SymfonyUserInterface, \Serializable | ||||
| { | ||||
| } | ||||
|  | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/ChangePassword/change_password_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,8 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {{ form_start(form, { 'action': path('fos_user_change_password'), 'attr': { 'class': 'fos_user_change_password' } }) }} | ||||
|     {{ form_widget(form) }} | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'change_password.submit'|trans }}" /> | ||||
|     </div> | ||||
| {{ form_end(form) }} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Group/edit_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,8 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {{ form_start(form, { 'action': path('fos_user_group_edit', {'groupName': group_name}), 'attr': { 'class': 'fos_user_group_edit' } }) }} | ||||
|     {{ form_widget(form) }} | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'group.edit.submit'|trans }}" /> | ||||
|     </div> | ||||
| {{ form_end(form) }} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Group/list_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,7 @@ | ||||
| <div class="fos_user_group_list"> | ||||
|     <ul> | ||||
|     {% for group in groups %} | ||||
|         <li><a href="{{ path('fos_user_group_show', {'groupName': group.getName()} ) }}">{{ group.getName() }}</a></li> | ||||
|     {% endfor %} | ||||
|     </ul> | ||||
| </div> | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Group/new_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,8 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {{ form_start(form, { 'action': path('fos_user_group_new'), 'attr': { 'class': 'fos_user_group_new' } }) }} | ||||
|     {{ form_widget(form) }} | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'group.new.submit'|trans }}" /> | ||||
|     </div> | ||||
| {{ form_end(form) }} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Group/show_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| <div class="fos_user_group_show"> | ||||
|     <p>{{ 'group.show.name'|trans }}: {{ group.getName() }}</p> | ||||
| </div> | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Profile/edit_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,8 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {{ form_start(form, { 'action': path('fos_user_profile_edit'), 'attr': { 'class': 'fos_user_profile_edit' } }) }} | ||||
|     {{ form_widget(form) }} | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'profile.edit.submit'|trans }}" /> | ||||
|     </div> | ||||
| {{ form_end(form) }} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Profile/show_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,6 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| <div class="fos_user_user_show"> | ||||
|     <p>{{ 'profile.show.username'|trans }}: {{ user.username }}</p> | ||||
|     <p>{{ 'profile.show.email'|trans }}: {{ user.email }}</p> | ||||
| </div> | ||||
| @@ -0,0 +1,7 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
|     <p>{{ 'registration.check_email'|trans({'%email%': user.email}) }}</p> | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,10 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
|     <p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p> | ||||
|     {% if targetUrl %} | ||||
|     <p><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p> | ||||
|     {% endif %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,13 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
| {% block subject %} | ||||
| {%- autoescape false -%} | ||||
| {{ 'registration.email.subject'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }} | ||||
| {%- endautoescape -%} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block body_text %} | ||||
| {% autoescape false %} | ||||
| {{ 'registration.email.message'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }} | ||||
| {% endautoescape %} | ||||
| {% endblock %} | ||||
| {% block body_html %}{% endblock %} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Registration/register_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,8 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }} | ||||
|     {{ form_widget(form) }} | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'registration.submit'|trans }}" /> | ||||
|     </div> | ||||
| {{ form_end(form) }} | ||||
| @@ -0,0 +1,9 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| <p> | ||||
| {{ 'resetting.check_email'|trans({'%tokenLifetime%': tokenLifetime})|nl2br }} | ||||
| </p> | ||||
| {% endblock %} | ||||
| @@ -0,0 +1,13 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
| {% block subject %} | ||||
| {%- autoescape false -%} | ||||
| {{ 'resetting.email.subject'|trans({'%username%': user.username}) }} | ||||
| {%- endautoescape -%} | ||||
| {% endblock %} | ||||
|  | ||||
| {% block body_text %} | ||||
| {% autoescape false %} | ||||
| {{ 'resetting.email.message'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }} | ||||
| {% endautoescape %} | ||||
| {% endblock %} | ||||
| {% block body_html %}{% endblock %} | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Resetting/request_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,11 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| <form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="fos_user_resetting_request"> | ||||
|     <div> | ||||
|         <label for="username">{{ 'resetting.request.username'|trans }}</label> | ||||
|         <input type="text" id="username" name="username" required="required" /> | ||||
|     </div> | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'resetting.request.submit'|trans }}" /> | ||||
|     </div> | ||||
| </form> | ||||
| @@ -0,0 +1,5 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
|  | ||||
| {% block fos_user_content %} | ||||
| {% include "@FOSUser/Resetting/reset_content.html.twig" %} | ||||
| {% endblock fos_user_content %} | ||||
| @@ -0,0 +1,8 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
|  | ||||
| {{ form_start(form, { 'action': path('fos_user_resetting_reset', {'token': token}), 'attr': { 'class': 'fos_user_resetting_reset' } }) }} | ||||
|     {{ form_widget(form) }} | ||||
|     <div> | ||||
|         <input type="submit" value="{{ 'resetting.reset.submit'|trans }}" /> | ||||
|     </div> | ||||
| {{ form_end(form) }} | ||||
| @@ -0,0 +1,10 @@ | ||||
| {% extends "@FOSUser/layout.html.twig" %} | ||||
| {% block title %} | ||||
| {% trans %}login{% endtrans %} | ||||
| {% endblock %} | ||||
| {% block content %} | ||||
| <h1> | ||||
| 	{% trans %}login{% endtrans %} | ||||
| </h1> | ||||
| {{ include('@FOSUser/Security/login_content.html.twig') }} | ||||
| {% endblock %} | ||||
| @@ -0,0 +1,27 @@ | ||||
| {% trans_default_domain 'FOSUserBundle' %} | ||||
| {% if error %} | ||||
| 	{% include "frames/structure/message/message.html.twig" with {'message':error.messageKey|trans(error.messageData, 'security'),'label':'danger'} %} | ||||
| {% endif %} | ||||
|  | ||||
| <form action="{{ path("fos_user_security_check") }}" method="post"> | ||||
| 	{% if csrf_token %} | ||||
| 	<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" /> | ||||
| 	{% endif %} | ||||
| 	<div class="form-group"> | ||||
| 		<label for="username">{{ 'security.login.username'|trans }}</label> <input | ||||
| 			type="text" id="username" name="_username" | ||||
| 			value="{{ last_username }}" required="required" class="form-control" | ||||
| 			autocomplete="username" /> | ||||
| 	</div> | ||||
| 	<div class="form-group"> | ||||
| 		<label for="password">{{ 'security.login.password'|trans }}</label> <input | ||||
| 			type="password" id="password" name="_password" class="form-control" required="required" | ||||
| 			autocomplete="current-password" /> | ||||
| 	</div> | ||||
| 	<div class="form-group"> | ||||
| 		<input type="checkbox" id="remember_me" name="_remember_me" value="on" /> | ||||
| 		<label for="remember_me">{{ 'security.login.remember_me'|trans }}</label> | ||||
| 	</div> | ||||
| 	<input type="submit" id="_submit" name="_submit" | ||||
| 		value="{{ 'security.login.submit'|trans }}" class="btn btn-primary"/> | ||||
| </form> | ||||
| @@ -0,0 +1,28 @@ | ||||
|  | ||||
| {% extends "frames/default.html.twig" %} | ||||
| {% block content %} | ||||
| <div> | ||||
| 	{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} | ||||
| 	{{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }} | ||||
| 	| <a href="{{ path('fos_user_security_logout') }}"> {{ 'layout.logout'|trans({}, 'FOSUserBundle') }} | ||||
| 	</a> | ||||
| 	{% else %} | ||||
| 	<a href="{{ path('fos_user_security_login') }}">{{ 'layout.login'|trans({}, 'FOSUserBundle') }}</a> | ||||
| 	{% endif %} | ||||
| </div> | ||||
|  | ||||
| {% if app.request.hasPreviousSession %} | ||||
| {% for type, messages in app.session.flashbag.all() %} | ||||
| {% for message in messages %} | ||||
| <div class="flash-{{ type }}"> | ||||
| 	{{ message }} | ||||
| </div> | ||||
| {% endfor %} | ||||
| {% endfor %} | ||||
| {% endif %} | ||||
|  | ||||
| <div> | ||||
| 	{% block fos_user_content %} | ||||
| 	{% endblock fos_user_content %} | ||||
| </div> | ||||
| {% endblock content %} | ||||
| @@ -63,7 +63,7 @@ class UserMenuSubscriber implements EventSubscriberInterface | ||||
|             ]); | ||||
|         } else { | ||||
|             $dropdown->addChild('login', [ | ||||
|                 'route' => 'login', | ||||
|                 'route' => 'fos_user_security_login', | ||||
|                 'attributes' => [ | ||||
|                     'divider_append' => true, | ||||
|                     'icon' => 'fas fa-sign-in-alt' | ||||
| @@ -71,7 +71,7 @@ class UserMenuSubscriber implements EventSubscriberInterface | ||||
|             ]); | ||||
|         } | ||||
|         $dropdown->addChild('register', [ | ||||
|             'route' => 'user_register', | ||||
|             'route' => 'fos_user_registration_register', | ||||
|             'attributes' => [ | ||||
|                 'icon' => 'fas fa-file-signature' | ||||
|             ] | ||||
|   | ||||
| @@ -80,6 +80,9 @@ | ||||
|     "fig/link-util": { | ||||
|         "version": "1.0.0" | ||||
|     }, | ||||
|     "friendsofsymfony/user-bundle": { | ||||
|         "version": "v2.1.2" | ||||
|     }, | ||||
|     "jdorn/sql-formatter": { | ||||
|         "version": "v1.2.17" | ||||
|     }, | ||||
| @@ -395,6 +398,9 @@ | ||||
|             "ref": "3db029c03e452b4a23f7fc45cec7c922c2247eb8" | ||||
|         } | ||||
|     }, | ||||
|     "symfony/templating": { | ||||
|         "version": "v4.1.4" | ||||
|     }, | ||||
|     "symfony/test-pack": { | ||||
|         "version": "v1.0.2" | ||||
|     }, | ||||
|   | ||||
| @@ -1,8 +1,5 @@ | ||||
| {% set icons = {'success':'fas fa-check-circle','danger':'fas fa-times','warning':'fas fa-exclamation-triangle','info':'fas fa-info'} %} | ||||
| {% for label,messages in app.flashes %} | ||||
| {% for message in messages %} | ||||
| <div class="alert alert-{{ label }}"> | ||||
| 	<i class="{{ icons[label] }}"></i> {{ message }} | ||||
| </div> | ||||
| {% include "frames/structure/message/message.html.twig" with {'message':message,'label':label} %} | ||||
| {% endfor %} | ||||
| {% endfor %} | ||||
| @@ -0,0 +1,4 @@ | ||||
| {% set icons = {'success':'fas fa-check-circle','danger':'fas fa-times','warning':'fas fa-exclamation-triangle','info':'fas fa-info'} %} | ||||
| <div class="alert alert-{{ label }}"> | ||||
| 	<i class="{{ icons[label] }}"></i> {{ message }} | ||||
| </div> | ||||
| @@ -1,25 +0,0 @@ | ||||
| {% extends "frames/default.html.twig" %} | ||||
| {% block title %} | ||||
| {% trans %}login{% endtrans %} | ||||
| {% endblock %} | ||||
| {% block content %} | ||||
| <h1> | ||||
| 	{% trans %}login{% endtrans %} | ||||
| </h1> | ||||
| <form action={{ path('login') }} method="post"> | ||||
| 	<div class="form-group"> | ||||
| 		<label for="username">{% trans %}Username{% endtrans %}</label> <input | ||||
| 			type="username" name="_username" class="form-control" id="username" | ||||
| 			aria-describedby="usernameHelp" | ||||
| 			placeholder="{% trans %}Enter username{% endtrans %}'"> | ||||
| 	</div> | ||||
| 	<div class="form-group"> | ||||
| 		<label for="password">{% trans %}Password{% endtrans %}</label> <input | ||||
| 			type="password" name="_password" class="form-control" id="password" | ||||
| 			placeholder="{% trans %}Password{% endtrans %}"> | ||||
| 	</div> | ||||
| 	<button type="submit" class="btn btn-primary"> | ||||
| 		{% trans %}Submit{% endtrans %} | ||||
| 	</button> | ||||
| </form> | ||||
| {% endblock %} | ||||
		Reference in New Issue
	
	Block a user