X-Git-Url: http://juplo.de/gitweb/?p=examples%2Ffacebook-app;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fyourshouter%2FPermissionsController.java;h=4439717ebfe71b1c6e186a9cf3600f4f79e5fcc8;hp=1ce9c1d313b4645eff96ddb31bf6951f7c1f6f92;hb=de9e60175568c4489c45339d18b7bb3955605747;hpb=2e34ba96c79aa0da75e33a60201a681bb7cfde0e diff --git a/src/main/java/de/juplo/yourshouter/PermissionsController.java b/src/main/java/de/juplo/yourshouter/PermissionsController.java index 1ce9c1d..4439717 100644 --- a/src/main/java/de/juplo/yourshouter/PermissionsController.java +++ b/src/main/java/de/juplo/yourshouter/PermissionsController.java @@ -1,7 +1,15 @@ 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; import org.springframework.social.facebook.api.Facebook; import org.springframework.social.facebook.api.Permission; @@ -9,6 +17,9 @@ import org.springframework.stereotype.Controller; 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; /** @@ -17,23 +28,83 @@ import org.springframework.web.bind.annotation.RequestMethod; * @author Kai Moritz */ @Controller -public class PermissionsController +@RequestMapping("/permissions.html") +public class PermissionsController extends ConnectController { private final Facebook facebook; @Inject - public PermissionsController(Facebook facebook) + public PermissionsController( + ConnectionFactoryLocator connectionFactoryLocator, + ConnectionRepository connectionRepository, + Facebook facebook + ) { + super(connectionFactoryLocator, connectionRepository); this.facebook = facebook; } - @RequestMapping(value = "/permissions.html", method = RequestMethod.GET) - public String list(Model model) + @PostConstruct + public void init() + { + connectSu + } + + + @Override + public String connectionStatus(NativeWebRequest request, Model model) { List permissions = facebook.userOperations().getUserPermissions(); model.addAttribute("permissions", permissions); return "permissions"; } + + @RequestMapping(method=RequestMethod.POST) + public View connect(NativeWebRequest request) + { + final RedirectView redirect = super.connect("facebook", request); + return new View() + { + @Override + public String getContentType() + { + return "text/html"; + } + + @Override + public void render( + Map model, + HttpServletRequest request, + HttpServletResponse response + ) + throws + Exception + { + PrintWriter writer = response.getWriter(); + writer.write(""); + response.flushBuffer(); + } + + @Override + public String toString() + { + return redirect.getUrl(); + } + }; + } + + @Override + protected RedirectView connectionStatusRedirect( + String providerId, + NativeWebRequest request + ) + { + return new RedirectView("https://apps.facebook.com/juplo-spielwiese/", true); + } }