Commit 7aafda9

mo <mo@mokhan.ca>
2017-11-24 19:21:16
generate login buttons based on supported bindings.
1 parent 08259dd
Changed files (2)
airport
app
views
registrations
saml-kit
lib
saml
airport/app/views/registrations/index.html.erb
@@ -7,6 +7,15 @@
         <% @metadatum.each do |metadata| %>
           <tr>
             <td><%= link_to metadata.entity_id, registration_path(metadata) %></td>
+            <% metadata.to_saml.single_sign_on_services.each do |service| %>
+              <td>
+                <%= form_with url: session_path, data: { remote: false } do |form| %>
+                  <%= form.hidden_field :entity_id, value: metadata.entity_id %>
+                  <%= form.hidden_field :binding, value: Saml::Kit::Bindings.to_symbol(service.binding) %>
+                  <%= form.submit service.binding %>
+                <% end %>
+              </td>
+            <% end %>
           </tr>
         <% end %>
         </tbody>
saml-kit/lib/saml/kit/bindings.rb
@@ -19,6 +19,17 @@ module Saml
         ALL[binding]
       end
 
+      def self.to_symbol(binding)
+        case binding
+        when HTTP_REDIRECT
+          :http_redirect
+        when HTTP_POST
+          :http_post
+        else
+          binding
+        end
+      end
+
       def self.create_for(binding, location)
         case binding
         when HTTP_REDIRECT