Merge branch '19362-all-webdav-via-sitefs'
[arvados.git] / lib / controller / localdb / login_testuser.go
index 823043702a134b72342d58b8685abe56fe19ee05..9988f6997a1b6f03ceb1d46505bbd4b84e7acee2 100644 (file)
@@ -17,12 +17,12 @@ import (
 )
 
 type testLoginController struct {
-       Cluster    *arvados.Cluster
-       RailsProxy *railsProxy
+       Cluster *arvados.Cluster
+       Parent  *Conn
 }
 
 func (ctrl *testLoginController) Logout(ctx context.Context, opts arvados.LogoutOptions) (arvados.LogoutResponse, error) {
-       return noopLogout(ctrl.Cluster, opts)
+       return logout(ctx, ctrl.Cluster, opts)
 }
 
 func (ctrl *testLoginController) Login(ctx context.Context, opts arvados.LoginOptions) (arvados.LoginResponse, error) {
@@ -45,7 +45,7 @@ func (ctrl *testLoginController) UserAuthenticate(ctx context.Context, opts arva
                                "username": username,
                                "email":    user.Email,
                        }).Debug("test authentication succeeded")
-                       return createAPIClientAuthorization(ctx, ctrl.RailsProxy, ctrl.Cluster.SystemRootToken, rpc.UserSessionAuthInfo{
+                       return ctrl.Parent.CreateAPIClientAuthorization(ctx, ctrl.Cluster.SystemRootToken, rpc.UserSessionAuthInfo{
                                Username: username,
                                Email:    user.Email,
                        })
@@ -72,7 +72,7 @@ const loginform = `
          }),
        })
        if (!resp.ok) {
-         document.getElementById('error').innerHTML = 'authentication failed (default accounts are user/user, admin/admin)'
+         document.getElementById('error').innerHTML = '<p>Authentication failed.</p><p>The "test login" users are defined in Clusters.[ClusterID].Login.Test.Users section of config.yml</p><p>If you are using arvbox, use "arvbox adduser" to add users.</p>'
          return
        }
        var redir = document.getElementById('return_to').value
@@ -82,7 +82,7 @@ const loginform = `
          redir += '?'
        }
         const respj = await resp.json()
-       document.location = redir + "api_token=" + respj.api_token
+       document.location = redir + "api_token=v2/" + respj.uuid + "/" + respj.api_token
       }
     </script>
   </head>
@@ -90,7 +90,7 @@ const loginform = `
     <h3>Arvados test login</h3>
     <form method="POST">
       <input id="return_to" type="hidden" name="return_to" value="{{.ReturnTo}}">
-      username <input id="username" type="text" name="username" size=16>
+      username <input id="username" type="text" name="username" autofocus size=16>
       password <input id="password" type="password" name="password" size=16>
       <input type="submit" value="Log in">
       <br>