1 dojo.require('dijit.form._FormWidget');
3 /* scrollOnFocus is usually terrible, and causes lots of buttons and the like
4 * to require a second click. */
5 dijit.form._FormWidget.prototype.scrollOnFocus = false;
7 dojo.require('dijit.Dialog');
8 dojo.require('dojo.cookie');
9 dojo.require('fieldmapper.AutoIDL'); // make conditional. TT variable sets JS var to enable/disable?
10 dojo.require('openils.User');
11 dojo.require('openils.CGI');
12 dojo.require('openils.Event');
13 dojo.require('openils.Util');
14 dojo.require('openils.XUL');
15 var cgi = new openils.CGI();
17 function oilsSetupUser() {
18 var authtoken = cgi.param('ses') || dojo.cookie('ses');
19 var workstation = cgi.param('ws') || dojo.cookie('ws');
23 openils.User.user = null;
24 openils.User.authtoken = null;
25 openils.User.workstation = null;
27 if(openils.XUL.isXUL()) {
28 stash = openils.XUL.getStash();
29 authtoken = stash.session.key
30 ses_user = stash.list.au[0];
34 user = new openils.User();
35 delete user.sessionCache[authtoken];
36 user.authtoken = authtoken;
39 user.sessionCache[authtoken] = ses_user;
41 user.user = user.getBySession();
44 if(!authtoken || openils.Event.parse(user.user)) {
46 authtoken = oilsLoginFromCookies();
50 dojo.cookie('ses', null, {expires:-1, path:'/'}); // remove the cookie
52 dojo.addOnLoad(function(){
53 if(openils.XUL.isXUL()) {
54 // let XUL handle the login dialog
55 dump('getNewSession in base.js\n');
56 openils.XUL.getNewSession( function() { location.href = location.href } );
58 // in web-only mode, use the dojo login dialog
59 oilsLoginDialog.show();
60 var func = function(){ oilsDoLogin(); };
61 openils.Util.registerEnterHandler(dojo.byId('oils-login-username'), func);
62 openils.Util.registerEnterHandler(dojo.byId('oils-login-password'), func);
63 dojo.byId('oils-login-workstation').innerHTML = workstation || '';
70 dojo.cookie('ses', authtoken, {path:'/', 'secure' : true});
71 openils.User.authtoken = authtoken;
72 openils.User.workstation = workstation;
76 // pulls username / password and optional workstation from cgi params or cookies
77 function oilsLoginFromCookies() {
79 var username = cgi.param('username') || dojo.cookie('username');
80 var password = cgi.param('password') || dojo.cookie('password');
81 var workstation = cgi.param('ws') || dojo.cookie('ws');
83 if(username && password) {
85 var user = new openils.User();
93 args.workstation = workstation;
95 if(user.login(args)) {
96 // fetches the login session and sets the global vars
97 user = new openils.User({authtoken : user.authtoken});
98 return (user && !openils.Event.parse(user.user)) ? user.authtoken : null;
105 function oilsDoLogin() {
106 openils.Util.hide('oils-login-failed');
107 var workstation = cgi.param('ws') || dojo.cookie('ws');
108 var user = new openils.User();
110 username: dojo.byId('oils-login-username').value,
111 passwd: dojo.byId('oils-login-password').value,
112 type: 'staff', // hardcode for now
115 args.workstation = workstation;
117 if(user.login(args)) {
118 dojo.cookie('ses', user.authtoken, {path : '/'});
119 location.href = location.href;
121 openils.Util.show('oils-login-failed');