WIP: Added a controller, to manage permissions CAUGHT IN THE ACT
[examples/facebook-app] / src / main / java / de / juplo / yourshouter / PermissionsController.java
index e3a9820..4439717 100644 (file)
@@ -1,7 +1,12 @@
 package de.juplo.yourshouter;
 
+import java.io.PrintWriter;
 import java.util.List;
+import java.util.Map;
+import javax.annotation.PostConstruct;
 import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import org.springframework.social.connect.ConnectionFactoryLocator;
 import org.springframework.social.connect.ConnectionRepository;
 import org.springframework.social.connect.web.ConnectController;
@@ -13,6 +18,7 @@ import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.servlet.View;
 import org.springframework.web.servlet.view.RedirectView;
 
 
@@ -40,6 +46,13 @@ public class PermissionsController extends ConnectController
   }
 
 
+  @PostConstruct
+  public void init()
+  {
+    connectSu
+  }
+
+
   @Override
   public String connectionStatus(NativeWebRequest request, Model model)
   {
@@ -49,9 +62,41 @@ public class PermissionsController extends ConnectController
   }
 
   @RequestMapping(method=RequestMethod.POST)
-  public RedirectView connect(NativeWebRequest request)
+  public View connect(NativeWebRequest request)
   {
-    return super.connect("facebook", request);
+    final RedirectView redirect = super.connect("facebook", request);
+    return new View()
+    {
+      @Override
+      public String getContentType()
+      {
+        return "text/html";
+      }
+
+      @Override
+      public void render(
+          Map<String, ?> model,
+          HttpServletRequest request,
+          HttpServletResponse response
+          )
+          throws
+            Exception
+      {
+        PrintWriter writer = response.getWriter();
+        writer.write("<script>");
+        writer.write("top.location.href='");
+        writer.write(redirect.getUrl());
+        writer.write("';");
+        writer.write("</script>");
+        response.flushBuffer();
+      }
+
+      @Override
+      public String toString()
+      {
+        return redirect.getUrl();
+      }
+    };
   }
 
   @Override
@@ -60,6 +105,6 @@ public class PermissionsController extends ConnectController
       NativeWebRequest request
       )
   {
-    return new RedirectView("/permissions.html", true);
+    return new RedirectView("https://apps.facebook.com/juplo-spielwiese/", true);
   }
 }