1 dojo.require('dijit.Dialog');
2 dojo.require('dojo.cookie');
3 dojo.require('fieldmapper.AutoIDL'); // make conditional. TT variable sets JS var to enable/disable?
4 dojo.require('fieldmapper.dojoData');
5 dojo.require('openils.User');
6 dojo.require('openils.CGI');
7 dojo.require('openils.Event');
8 dojo.require('openils.Util');
9 dojo.require('openils.XUL');
11 var cgi = new openils.CGI();
13 function oilsSetupUser() {
14 var authtoken = cgi.param('ses') || dojo.cookie('ses');
15 var workstation = cgi.param('ws') || dojo.cookie('ws');
18 openils.User.user = null;
19 openils.User.authtoken = null;
20 openils.User.workstation = null;
22 if(!authtoken && openils.XUL.isXUL()) {
23 stash = openils.XUL.getStash();
24 authtoken = stash.session.key
28 user = new openils.User();
29 delete user.sessionCache[authtoken];
30 user.authtoken = authtoken;
31 user.user = user.getBySession();
34 if(!authtoken || openils.Event.parse(user.user)) {
36 authtoken = oilsLoginFromCookies();
40 dojo.cookie('ses', null, {expires:-1, path:'/'}); // remove the cookie
41 dojo.cookie('ses', null, {expires:-1, path:oilsBasePath}); // remove the cookie
43 dojo.addOnLoad(function(){
44 if(openils.XUL.isXUL()) {
45 // let XUL handle the login dialog
46 dump('getNewSession in base.js\n');
47 openils.XUL.getNewSession( function() { location.href = location.href } );
49 // in web-only mode, use the dojo login dialog
50 oilsLoginDialog.show();
51 var func = function(){ oilsDoLogin(); };
52 openils.Util.registerEnterHandler(dojo.byId('oils-login-username'), func);
53 openils.Util.registerEnterHandler(dojo.byId('oils-login-password'), func);
54 dojo.byId('oils-login-workstation').innerHTML = workstation || '';
61 dojo.cookie('ses', authtoken, {path:oilsBasePath});
62 openils.User.authtoken = authtoken;
63 openils.User.workstation = workstation;
67 // pulls username / password and optional workstation from cgi params or cookies
68 function oilsLoginFromCookies() {
70 var username = cgi.param('username') || dojo.cookie('username');
71 var password = cgi.param('password') || dojo.cookie('password');
72 var workstation = cgi.param('ws') || dojo.cookie('ws');
74 if(username && password) {
76 var user = new openils.User();
84 args.workstation = workstation;
86 if(user.login(args)) {
87 // fetches the login session and sets the global vars
88 user = new openils.User({authtoken : user.authtoken});
89 return (user && !openils.Event.parse(user.user)) ? user.authtoken : null;
96 function oilsDoLogin() {
97 openils.Util.hide('oils-login-failed');
98 var workstation = cgi.param('ws') || dojo.cookie('ws');
99 var user = new openils.User();
101 username: dojo.byId('oils-login-username').value,
102 passwd: dojo.byId('oils-login-password').value,
103 type: 'staff', // hardcode for now
106 args.workstation = workstation;
108 if(user.login(args)) {
109 dojo.cookie('ses', user.authtoken, {path : oilsBasePath});
110 location.href = location.href;
112 openils.Util.show('oils-login-failed');