You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
tos/Controller/TosController.php

54 lines
1.5 KiB

<?php
namespace vierbergenlars\AuthserverTosBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use FOS\RestBundle\Controller\Annotations\View;
use vierbergenlars\AuthserverTosBundle\Entity\UserTos;
use vierbergenlars\AuthserverTosBundle\Form\AcceptTosType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Braincrafted\Bundle\BootstrapBundle\Form\Type\FormActionsType;
class TosController extends Controller
{
/**
* @View()
*/
public function acceptAction(Request $request)
{
$user = $this->getUser();
$em = $this->getDoctrine()->getManagerForClass(UserTos::class);
$userTos = $em->find(UserTos::class, $user);
if (!$userTos) {
$userTos = new UserTos($user);
$em->persist($userTos);
}
$terms = $this->container->getParameter('vierbergenlars_tos.terms');
$formBuilder = $this->createFormBuilder();
$formBuilder->add('vl_tos', AcceptTosType::class, [
'terms' => $terms
]);
$formBuilder->add('submit', SubmitType::class, [
'label' => 'Submit'
]);
$form = $formBuilder->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
$userTos->setAcceptedVersion($this->container->getParameter('vierbergenlars_tos.tos_version'));
$em->flush();
return $this->redirectToRoute('user_profile');
}
return [
'form' => $form
];
}
}