-<% content_for :breadcrumbs do raw '<!-- -->' end %>
-
-<div class="row">
- <div class="col-sm-8 col-sm-push-4" style="margin-top: 1em">
- <div class="well clearfix">
- <%= image_tag "dax.png", style: "width: 147px; height: 197px; max-width: 25%; margin-right: 2em", class: 'pull-left' %>
-
- <h3>Please log in.</h3>
-
- <p>
+<%# Copyright (C) The Arvados Authors. All rights reserved.
- The "Log in" button below will show you a Google sign-in page.
- After you assure Google that you want to log in here with your
- Google account, you will be redirected back here to
- <%= Rails.configuration.site_name %>.
+SPDX-License-Identifier: AGPL-3.0 %>
- </p><p>
-
- If you have never used <%= Rails.configuration.site_name %>
- before, logging in for the first time will automatically
- create a new account.
+<% content_for :breadcrumbs do raw '<!-- -->' end %>
- </p><p>
+<%= javascript_tag do %>
+ async function controller_password_authenticate(event) {
+ event.preventDefault()
+ document.getElementById('login-authenticate-error').innerHTML = '';
+ const resp = await fetch('<%= "#{Rails.configuration.Services.Controller.ExternalURL}" %>arvados/v1/users/authenticate', {
+ method: 'POST',
- <i><%= Rails.configuration.site_name %> uses your name and
- email address only for identification, and does not retrieve
- any other personal information from Google.</i>
+ headers: {'Content-Type': 'application/json'},
+ body: JSON.stringify({
+ username: document.getElementById('login-username').value,
+ password: document.getElementById('login-password').value,
+ }),
+ })
+ if (!resp.ok) {
+ const respj = await resp.json()
+ document.getElementById('login-authenticate-error').innerHTML = `<p>${respj.errors[0]}</p>`;
+ return
+ }
+ var redir = document.getElementById('login-return-to').value
+ if (redir.indexOf('?') > 0) {
+ redir += '&'
+ } else {
+ redir += '?'
+ }
+ const respj = await resp.json()
+ document.location = redir + "api_token=v2/" + respj.uuid + "/" + respj.api_token
+ }
+ // document.getElementById('login-form-tag').
+<% end %>
- </p>
- <p>
- <!-- <%= arvados_api_client.arvados_login_url %> -->
- <%= form_tag(arvados_api_client.arvados_login_url(), :method => :get, :authenticity_token => false) do %>
- <%= hidden_field_tag 'return_to', request.url %>
- <div class="row pull-right">
+<div class="row">
+ <div class="col-sm-8 col-sm-push-4" style="margin-top: 1em">
+ <div class="well clearfix">
- <%# Todo: add list of external authentications providers to
- discovery document, then generate the option list on the fly. Right
- now, don't provide 'auth_provider' and hope that the default one is
- the one we want. %>
+ <%= raw(Rails.configuration.Workbench.WelcomePageHTML) %>
- <%#= select_tag "auth_provider", "<option value='google'>Google OpenID</option><option value='google_oauth2'>Google OAuth2</option>".html_safe, class: "form-control", style: "width: 15em; display: inline" %>
- <%= button_tag type: 'submit', name: nil, class: "btn btn-primary" do %>
- Log in to <%= Rails.configuration.site_name %> <i class="fa fa-fw fa-arrow-circle-right"></i>
+ <% case %>
+ <% when Rails.configuration.Login.Google.Enable %>
+ <% when Rails.configuration.Login.OpenIDConnect.Enable %>
+ <% when Rails.configuration.Login.SSO.Enable %>
+ <div class="pull-right">
+ <%= link_to arvados_api_client.arvados_login_url(return_to: request.url), class: "btn btn-primary" do %>
+ Log in to <%= Rails.configuration.Workbench.SiteName %>
+ <i class="fa fa-fw fa-arrow-circle-right"></i>
<% end %>
</div>
- <% end %>
- </p>
+ <% when Rails.configuration.Login.PAM.Enable %>
+ <% when Rails.configuration.Login.LDAP.Enable %>
+ <% when Rails.configuration.Login.Test.Enable %>
+ <form id="login-form-tag" onsubmit="controller_password_authenticate(event)">
+ <p>username <input type="text" class="form-control" name="login-username" value="" id="login-username" style="width: 50%"></input></p>
+ <p>password <input type="password" class="form-control" name="login-password" value="" id="login-password" style="width: 50%"></input></p>
+ <input type="hidden" name="return_to" value="<%= "#{Rails.configuration.Services.Workbench1.ExternalURL}" %>" id="login-return-to">
+ <p id="login-authenticate-error"></p>
+ <button type="submit" class="btn btn-primary">Login</button>
+ </form>
+ <% end %>
+
</div>
</div>
</div>