diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WikiLinks.java @ 6546:7106f9b75004

Add SAML authentication to Info-Button. Not yet working, the saml POST variable is cleared somewhere before submitting.
author Christian Lins <christian.lins@intevation.de>
date Mon, 08 Jul 2013 13:59:24 +0200
parents c28f13c80979
children 244beb29418e
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WikiLinks.java	Mon Jul 08 11:41:10 2013 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/WikiLinks.java	Mon Jul 08 13:59:24 2013 +0200
@@ -8,18 +8,21 @@
 
 package org.dive4elements.river.client.client.ui;
 
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 import com.smartgwt.client.types.FormMethod;
 import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.HiddenItem;
 import com.smartgwt.client.widgets.form.fields.LinkItem;
 import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
 import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
-import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 
 import org.dive4elements.river.client.client.FLYS;
+import org.dive4elements.river.client.shared.model.User;
 
 public class WikiLinks
 {
-    public static String imageLinkHTML(FLYS instance, String url, String imageUrl) {
+    public static String imageLinkForm(FLYS instance, String url, String imageUrl) {
         String saml = null;
         if (instance != null && instance.getCurrentUser() != null) {
             saml = instance.getCurrentUser().getSamlXMLBase64();
@@ -40,11 +43,13 @@
         }
     }
 
-    public static DynamicForm linkHTML(FLYS flys, String url, String text) {
-        String saml = flys.getCurrentUser().getSamlXMLBase64();
+    public static DynamicForm linkDynamicForm(FLYS flys, String url, String text) {
+        User currentUser = flys.getCurrentUser();
         String quotedUrl = SafeHtmlUtils.htmlEscape(url);
         String quotedText = SafeHtmlUtils.htmlEscape(text);
-        if (saml != null) {
+
+        if (currentUser != null) {
+            String saml = currentUser.getSamlXMLBase64();
             final DynamicForm form = new DynamicForm();
             form.setMethod(FormMethod.POST);
             form.setTarget("_blank");
@@ -71,4 +76,31 @@
             return form;
         }
     }
+
+    public static DynamicForm dynamicForm(FLYS flys, String url) {
+        User currentUser = flys.getCurrentUser();
+        String quotedUrl = SafeHtmlUtils.htmlEscape(url);
+
+        if (currentUser != null) {
+            String saml = currentUser.getSamlXMLBase64();
+            saml = SafeHtmlUtils.htmlEscape(saml);
+            GWT.log("saml=" + saml);
+            DynamicForm form = new DynamicForm();
+            form.setMethod(FormMethod.POST);
+            form.setTarget("_blank");
+            form.setAction(quotedUrl);
+            form.setCanSubmit(true);
+            HiddenItem item = new HiddenItem("saml");
+            item.setDefaultValue(saml);
+            form.setFields(item);
+            form.setValue("saml", saml);
+            return form;
+        }
+        else {
+            DynamicForm form = new DynamicForm();
+            form.setTarget("_blank");
+            form.setAction(quotedUrl);
+            return form;
+        }
+    }
 }

http://dive4elements.wald.intevation.org