From 24152cdb5e48edc5128082b285736b06ebda3c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 15 Feb 2016 22:12:50 +0100 Subject: Fix #1597: first draft to create new client for the API --- .../CoreBundle/Controller/DeveloperController.php | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/Wallabag/CoreBundle/Controller/DeveloperController.php (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php new file mode 100644 index 00000000..3cb86881 --- /dev/null +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -0,0 +1,38 @@ +render('WallabagCoreBundle:Developer:index.html.twig'); + } + + /** + * @param Request $request + * + * @Route("/developer/client/create", name="create_client") + */ + public function createClientAction(Request $request) + { + $clientManager = $this->container->get('fos_oauth_server.client_manager.default'); + $client = $clientManager->createClient(); + $client->setRedirectUris(array('http://www.example.com')); + $client->setAllowedGrantTypes(array('token', 'authorization_code')); + $clientManager->updateClient($client); + + return $this->render('WallabagCoreBundle:Developer:client.html.twig', array( + 'client_id' => $client->getPublicId(), + )); + } +} -- cgit v1.2.3 From b6321bed7b8b8ba34e23a3d0c048f7d05ab309bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 16 Feb 2016 07:55:18 +0100 Subject: Added developer documentation --- .../CoreBundle/Controller/DeveloperController.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index 3cb86881..edbcec4b 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -12,6 +12,8 @@ class DeveloperController extends Controller * @param Request $request * * @Route("/developer", name="developer") + * + * @return \Symfony\Component\HttpFoundation\Response */ public function indexAction(Request $request) { @@ -22,6 +24,8 @@ class DeveloperController extends Controller * @param Request $request * * @Route("/developer/client/create", name="create_client") + * + * @return \Symfony\Component\HttpFoundation\Response */ public function createClientAction(Request $request) { @@ -33,6 +37,19 @@ class DeveloperController extends Controller return $this->render('WallabagCoreBundle:Developer:client.html.twig', array( 'client_id' => $client->getPublicId(), + 'client_secret' => $client->getSecret(), )); } + + /** + * @param Request $request + * + * @Route("/developer/howto/first-app", name="howto-firstapp") + * + * @return \Symfony\Component\HttpFoundation\Response + */ + public function howtoFirstAppAction(Request $request) + { + return $this->render('WallabagCoreBundle:Developer:howto_app.html.twig'); + } } -- cgit v1.2.3 From abc329453be6381bcf4d1b0dfd9f698312ed3b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 16 Feb 2016 13:49:25 +0100 Subject: Enhance documentation and create a form to create a new client --- .../CoreBundle/Controller/DeveloperController.php | 38 ++++++++++++++-------- 1 file changed, 25 insertions(+), 13 deletions(-) (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index edbcec4b..3b9da318 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -5,17 +5,17 @@ namespace Wallabag\CoreBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Component\HttpFoundation\Request; use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Wallabag\ApiBundle\Entity\Client; +use Wallabag\CoreBundle\Form\Type\ClientType; class DeveloperController extends Controller { /** - * @param Request $request - * * @Route("/developer", name="developer") * * @return \Symfony\Component\HttpFoundation\Response */ - public function indexAction(Request $request) + public function indexAction() { return $this->render('WallabagCoreBundle:Developer:index.html.twig'); } @@ -29,26 +29,38 @@ class DeveloperController extends Controller */ public function createClientAction(Request $request) { - $clientManager = $this->container->get('fos_oauth_server.client_manager.default'); - $client = $clientManager->createClient(); - $client->setRedirectUris(array('http://www.example.com')); - $client->setAllowedGrantTypes(array('token', 'authorization_code')); - $clientManager->updateClient($client); + $em = $this->getDoctrine()->getManager(); + $client = new Client(); + $clientForm = $this->createForm(ClientType::class, $client); + $clientForm->handleRequest($request); + + if ($clientForm->isValid()) { + $client->setAllowedGrantTypes(array('token', 'authorization_code')); + $em->persist($client); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'New client created.' + ); + + return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', array( + 'client_id' => $client->getPublicId(), + 'client_secret' => $client->getSecret(), + )); + } return $this->render('WallabagCoreBundle:Developer:client.html.twig', array( - 'client_id' => $client->getPublicId(), - 'client_secret' => $client->getSecret(), + 'form' => $clientForm->createView(), )); } /** - * @param Request $request - * * @Route("/developer/howto/first-app", name="howto-firstapp") * * @return \Symfony\Component\HttpFoundation\Response */ - public function howtoFirstAppAction(Request $request) + public function howtoFirstAppAction() { return $this->render('WallabagCoreBundle:Developer:howto_app.html.twig'); } -- cgit v1.2.3 From 5bc2da5628afe24525ce68cb840ea6c1d4bf951d Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Thu, 25 Feb 2016 16:06:13 +0100 Subject: Add password for auth --- src/Wallabag/CoreBundle/Controller/DeveloperController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index 3b9da318..4688aeef 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -35,7 +35,7 @@ class DeveloperController extends Controller $clientForm->handleRequest($request); if ($clientForm->isValid()) { - $client->setAllowedGrantTypes(array('token', 'authorization_code')); + $client->setAllowedGrantTypes(array('token', 'authorization_code','password')); $em->persist($client); $em->flush(); -- cgit v1.2.3 From 2c2308b7830e24409c6f4a52b52a616803b1a515 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 5 Mar 2016 20:04:19 +0100 Subject: Cleanup form - Avoid too much hidden data in the form (instead of manually define the submit button and hide the default, use the default one !) - Fix HTML syntax in client_parameters - Add developer link in baggy menu - Fix space between link in material footer --- src/Wallabag/CoreBundle/Controller/DeveloperController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index 4688aeef..30cc8beb 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -35,7 +35,7 @@ class DeveloperController extends Controller $clientForm->handleRequest($request); if ($clientForm->isValid()) { - $client->setAllowedGrantTypes(array('token', 'authorization_code','password')); + $client->setAllowedGrantTypes(array('token', 'authorization_code', 'password')); $em->persist($client); $em->flush(); -- cgit v1.2.3 From 9bf15f02695823652a0e783c915b039836f51626 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 5 Mar 2016 21:44:39 +0100 Subject: Add listing clients Rename route to be more consistive (ie: prefixed with developer_) --- .../CoreBundle/Controller/DeveloperController.php | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index 30cc8beb..e7720355 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -17,13 +17,17 @@ class DeveloperController extends Controller */ public function indexAction() { - return $this->render('WallabagCoreBundle:Developer:index.html.twig'); + $clients = $this->getDoctrine()->getRepository('WallabagApiBundle:Client')->findAll(); + + return $this->render('WallabagCoreBundle:Developer:index.html.twig', array( + 'clients' => $clients, + )); } /** * @param Request $request * - * @Route("/developer/client/create", name="create_client") + * @Route("/developer/client/create", name="developer_create_client") * * @return \Symfony\Component\HttpFoundation\Response */ @@ -56,7 +60,30 @@ class DeveloperController extends Controller } /** - * @Route("/developer/howto/first-app", name="howto-firstapp") + * Remove a client. + * + * @param Request $request + * + * @Route("/developer/client/delete/{id}", requirements={"id" = "\d+"}, name="developer_delete_client") + * + * @return \Symfony\Component\HttpFoundation\RedirectResponse + */ + public function deleteClientAction(Request $request, Client $client) + { + $em = $this->getDoctrine()->getManager(); + $em->remove($client); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + 'Client deleted' + ); + + return $this->redirect($this->generateUrl('developer')); + } + + /** + * @Route("/developer/howto/first-app", name="developer_howto_firstapp") * * @return \Symfony\Component\HttpFoundation\Response */ -- cgit v1.2.3 From 1256f6fe34ed4e5f7a1d9eec2ac8092da44de191 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Sat, 5 Mar 2016 22:29:58 +0100 Subject: Add translations --- src/Wallabag/CoreBundle/Controller/DeveloperController.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/CoreBundle/Controller/DeveloperController.php') diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/CoreBundle/Controller/DeveloperController.php index e7720355..71065534 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/CoreBundle/Controller/DeveloperController.php @@ -11,6 +11,8 @@ use Wallabag\CoreBundle\Form\Type\ClientType; class DeveloperController extends Controller { /** + * List all clients and link to create a new one. + * * @Route("/developer", name="developer") * * @return \Symfony\Component\HttpFoundation\Response @@ -25,6 +27,8 @@ class DeveloperController extends Controller } /** + * Create a client (an app). + * * @param Request $request * * @Route("/developer/client/create", name="developer_create_client") @@ -62,13 +66,13 @@ class DeveloperController extends Controller /** * Remove a client. * - * @param Request $request + * @param Client $client * * @Route("/developer/client/delete/{id}", requirements={"id" = "\d+"}, name="developer_delete_client") * * @return \Symfony\Component\HttpFoundation\RedirectResponse */ - public function deleteClientAction(Request $request, Client $client) + public function deleteClientAction(Client $client) { $em = $this->getDoctrine()->getManager(); $em->remove($client); @@ -83,6 +87,8 @@ class DeveloperController extends Controller } /** + * Display developer how to use an existing app. + * * @Route("/developer/howto/first-app", name="developer_howto_firstapp") * * @return \Symfony\Component\HttpFoundation\Response -- cgit v1.2.3