Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into 4-0-abartlet
[samba.git] / swat / login.esp
index f118eab1a2f3d20ed1a396a1186e142d56090817..9e9f6f99030d8c91c64bb1dc567f93cae9ff5b0e 100644 (file)
@@ -1,6 +1,6 @@
-<% page_header("plain", "SWAT Login"); %>
-
-<%
+<% page_header("plain", "SWAT Login", "");
+   libinclude("auth.js");
+   include("/scripting/forms.js");
 
 if (request['SESSION_EXPIRED'] == "True") {
    write("<b>Your session has expired - please authenticate again<br /></b>\n");
@@ -17,22 +17,30 @@ f.element[2].type  = "select";
 f.element[2].list  = getDomainList();
 f.submit[0] = "Login";
 
-display_form(f);
+f.display();
 %>
 
 <%
        if (request.REQUEST_METHOD == "POST") {
-
-               auth = userAuth(form.Username, form.Password, form.Domain);
-               if (auth.result) {
-
-                       /* for now just authenticate everyone */
+               var creds = credentials_init();
+               creds.set_username(form.Username);
+               creds.set_password(form.Password);
+               creds.set_domain(form.Domain);
+               creds.set_workstation(request['REMOTE_HOST']);
+
+               auth = userAuth(creds, request['REMOTE_SOCKET_ADDRESS']);
+               if (auth == undefined) {
+                       write("<b>Invalid login - please try again<br /></b>\n");
+               } else if (auth.result) {
                        session.AUTHENTICATED = true;
                        session.authinfo = new Object();
 
                        session.authinfo.username = auth.username;
                        session.authinfo.domain = auth.domain;
-
+                       session.authinfo.credentials = creds;
+                       session.authinfo.session_info = auth.session_info;
+                       session.authinfo.user_class = auth.user_class;
+                       
                        /* if the user was asking for the login page, then now
                           redirect them to the main page. Otherwise just
                           redirect them to the current page, which will now
@@ -42,8 +50,10 @@ display_form(f);
                        } else {
                           redirect(session_uri(request.REQUEST_URI));
                        }
-               } else {
+               } else if (auth.report == undefined) {
                        write("<b>Login failed - please try again<br /></b>\n");
+               } else {
+                       write("<b>Login failed: " + auth.report + " - please try again<br /></b>\n");
                }
        }
 %>