]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/base.js
replace Cookie.js/cookieManager with dojo.cookie. Some things to watch out for as...
[Evergreen.git] / Open-ILS / web / js / ui / base.js
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');
10
11 var cgi = new openils.CGI();
12
13 function oilsSetupUser() {
14     var authtoken = cgi.param('ses') || dojo.cookie('ses');
15     var workstation = cgi.param('ws') || dojo.cookie('ws');
16     var user;
17
18     openils.User.user = null;
19     openils.User.authtoken = null;
20     openils.User.workstation = null;
21
22     if(!authtoken && openils.XUL.isXUL()) {
23                 stash = openils.XUL.getStash();
24                 authtoken = stash.session.key
25         }
26
27     if(authtoken) {
28         user = new openils.User();
29         delete user.sessionCache[authtoken];
30         user.authtoken = authtoken;
31         user.user = user.getBySession();
32     }
33
34     if(!authtoken || openils.Event.parse(user.user)) {
35
36         authtoken = oilsLoginFromCookies();
37
38         if(!authtoken) {
39
40             dojo.cookie('ses', null, {expires:-1, path:'/'}); // remove the cookie
41             dojo.cookie('ses', null, {expires:-1, path:oilsBasePath}); // remove the cookie
42
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 } );
48                 } else {
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 || '';
55                 }
56             });
57             return null;
58         }
59     }
60
61     dojo.cookie('ses', authtoken, {path:oilsBasePath});
62     openils.User.authtoken = authtoken;
63     openils.User.workstation = workstation;
64     return authtoken;
65 }
66
67 // pulls username / password and optional workstation from cgi params or cookies
68 function oilsLoginFromCookies() {
69
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');
73
74     if(username && password) {
75
76         var user = new openils.User();
77         var args = {
78             username : username,
79             passwd : password,
80             type : 'staff'
81         };
82
83         if(workstation) 
84             args.workstation = workstation;
85
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;
90         } 
91     }
92
93     return null;
94 }
95
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();
100     var args = {
101         username: dojo.byId('oils-login-username').value,
102         passwd: dojo.byId('oils-login-password').value,
103         type: 'staff', // hardcode for now
104     };
105     if(workstation) 
106         args.workstation = workstation;
107
108     if(user.login(args)) {
109         dojo.cookie('ses', user.authtoken, {path : oilsBasePath});
110         location.href = location.href;
111     } else {
112         openils.Util.show('oils-login-failed');
113     }
114
115     return false;
116 }
117
118 oilsSetupUser();
119