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.
55 lines
1.6 KiB
55 lines
1.6 KiB
7 years ago
|
<?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);
|
||
|
}
|
||
|
|
||
|
$tosUrl = $this->container->getParameter('vierbergenlars_tos.tos_url');
|
||
|
|
||
|
$formBuilder = $this->createFormBuilder();
|
||
|
$formBuilder->add('vl_tos', AcceptTosType::class, [
|
||
|
'url' => $tosUrl
|
||
|
]);
|
||
|
|
||
|
$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,
|
||
|
'tos_url' => $tosUrl
|
||
|
];
|
||
|
}
|
||
|
}
|