diff --git a/assets/calendar.js b/assets/calendar.js index 56af72e59627ea6d15fc58d60649b9a726e94129..2c181f4f9616c46c618513b83da39d82c31cbdac 100644 --- a/assets/calendar.js +++ b/assets/calendar.js @@ -21,7 +21,6 @@ $(function () { useCreationPopup: true, useDetailPopup: true }); - console.log(calendar); function getStartAndEndDates() { let dateStart = String(calendar.getDateRangeStart().toDate()).slice(4, 15); @@ -35,7 +34,6 @@ $(function () { var currentSchedule = 1 function sendCalendarData() { - console.log(scheduleIds) var schedules = [] scheduleIds.forEach(function (id) { var schedule = calendar.getSchedule(String(id), '1'); @@ -47,7 +45,6 @@ $(function () { type: "POST", url: "/calendar/send", data: JSON.stringify(schedules), - success: function (data) { console.log(data) }, dataType: "json", contentType: 'application/json' }); @@ -83,7 +80,6 @@ $(function () { }); calendar.on('beforeDeleteSchedule', function (event) { - console.log('schedule delete'); calendar.deleteSchedule(event.schedule.id, event.schedule.calendarId, event.schedule); sendCalendarData(); }); @@ -102,8 +98,10 @@ $(function () { var schedule = event.schedule; var changes = event.changes; + changes.calendarId = "1" + calendar.updateSchedule(schedule.id, schedule.calendarId, changes); - calendar.sendCalendarData(); + sendCalendarData(); }); @@ -112,7 +110,6 @@ $(function () { url: "/calendar/receive", success: function (data) { var cleanedData = [] - console.log(data) if (Array.isArray(data)) { data.forEach(function (schedule) { if (schedule) { diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 1723448b85e7d1bf7aa66fb814b68fd1a177d098..3f32e2f12c64497651a1964505126c3c6c82b2c1 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -25,6 +25,9 @@ security: login_path: login check_path: login + logout: + path: app_logout + # activate different ways to authenticate # https://symfony.com/doc/current/security.html#the-firewall diff --git a/src/Controller/CalendarController.php b/src/Controller/CalendarController.php index 0023f099791c24bb700168485b69638fdde32dbd..d3d22e7b56c094ee56799a1c7c0ea11214eadfff 100644 --- a/src/Controller/CalendarController.php +++ b/src/Controller/CalendarController.php @@ -12,9 +12,10 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; +#[IsGranted('ROLE_USER')] class CalendarController extends AbstractController { - #[Route('/calendar', name: 'calendar')] + #[Route('/', name: 'calendar')] public function index(): Response { return $this->render('calendar/index.html.twig', [ @@ -23,7 +24,6 @@ class CalendarController extends AbstractController } #[Route('/calendar/receive', name: 'calendar_receive')] - #[IsGranted('ROLE_USER')] public function calendarReceive() { $user = $this->getUser(); @@ -38,7 +38,6 @@ class CalendarController extends AbstractController } #[Route('/calendar/send', name: 'calendar_send')] - #[IsGranted('ROLE_USER')] public function calendarSend(Request $request, EntityManagerInterface $manager) { $json = $request->getContent(); diff --git a/src/Controller/SignUpController.php b/src/Controller/SignUpController.php index b116111fc0cbd40a618f3f1d073ecb9357e6aea6..663b43f45a9e4f9dd9695e06aaf10e6fc54b8e6e 100644 --- a/src/Controller/SignUpController.php +++ b/src/Controller/SignUpController.php @@ -8,20 +8,30 @@ use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\Request; use App\Entity\User; use App\Form\UserType; +use Doctrine\ORM\EntityManagerInterface; +use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; class SignUpController extends AbstractController { #[Route('/sign_up', name: 'sign_up')] - public function new(Request $request): Response + public function new(Request $request, EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher): Response { $user = new User(); $form = $this->createForm(UserType::class, $user); - + $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $user = $form->getData(); - $this->addFlash('succes', 'Vous pouvez maintenant vous connecter à votre compte.'); + $user->setPassword($passwordHasher->hashPassword( + $user, + $user->getPassword() + )); + + $entityManager->persist($user); + $entityManager->flush(); + + $this->addFlash('success', 'Your account has been created. You may now log in.'); return $this->redirectToRoute('login'); } diff --git a/src/Form/UserType.php b/src/Form/UserType.php index f752ed2785bf4f60a85ca32454bb9186b86333ee..6baed0f63ceb8f35b4629124b8737b7392ba8ee5 100644 --- a/src/Form/UserType.php +++ b/src/Form/UserType.php @@ -16,12 +16,14 @@ class UserType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $builder - ->add('email', TextType::class) + ->add('email', TextType::class, ["label" => "Email address"]) ->add('password', RepeatedType::class, [ - 'type' => PasswordType::class + 'type' => PasswordType::class, + 'first_options' => ['label' => 'Password'], + 'second_options' => ['label' => 'Repeat password'], ]) - ->add('displayName', TextType::class) - ->add('submit', SubmitType::class); + ->add('displayName', TextType::class, ["label" => "Display name"]) + ->add('submit', SubmitType::class, ["label" => "Sign up"]); } public function configureOptions(OptionsResolver $resolver): void diff --git a/templates/login/index.html.twig b/templates/login/index.html.twig index a1cb0022b6a957a471d7c5209209a518c0c102f4..ed542ad95d3d577878cf26a96543420312ea632f 100644 --- a/templates/login/index.html.twig +++ b/templates/login/index.html.twig @@ -2,28 +2,30 @@ {% block body %} - {% if error %} - <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div> - {% endif %} - {% for message in app.flashes('success') %} - <div class="alert alert-success"> - {{ message }} - </div> - {% endfor %} + <div class="container mt-5 card"> + {% if error %} + <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div> + {% endif %} + {% for message in app.flashes('success') %} + <div class="alert alert-success"> + {{ message }} + </div> + {% endfor %} - <form action="{{ path('login') }}" method="post"> - <label for="username">Email:</label> - <input type="text" id="username" name="_username" value="{{ last_username }}"/> - <label for="password">Password:</label> - <input - type="password" id="password" name="_password"/> + <form action="{{ path('login') }}" method="post"> + <label class="form-label" for="username">Email address:</label> + <input class="form-control" type="text" id="username" name="_username" value="{{ last_username }}"/> - {# If you want to control the URL the user is redirected to on success - <input type="hidden" name="_target_path" value="/account"/> #} + <label class="form-label" for="password">Password:</label> + <input class="form-control" type="password" id="password" name="_password"/> - <button type="submit">login</button> - </form> + {# If you want to control the URL the user is redirected to on success + <input type="hidden" name="_target_path" value="/account"/> #} + + <button class="btn btn-primary" type="submit">Log in</button> + </form> + </div> {% endblock %} diff --git a/templates/sign_up/index.html.twig b/templates/sign_up/index.html.twig index 1ab255d6f454dae90abdbed51f8035c6e274be39..f839c266e61ec475d23bce8a0947990a452fa46a 100644 --- a/templates/sign_up/index.html.twig +++ b/templates/sign_up/index.html.twig @@ -6,7 +6,7 @@ -<div class="container"> +<div class="container card mt-5"> {{ form(form) }} </div>