1 /* ---------------------------------------------------------------------------
2 * Copyright (C) 2008 Georgia Public Library Service
3 * Bill Erickson <erickson@esilibrary.com>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 * ---------------------------------------------------------------------------
17 if(!dojo._hasResource["openils.User"]) {
19 dojo._hasResource["openils.User"] = true;
20 dojo.provide("openils.User");
21 dojo.require('openils.Event');
23 dojo.declare('openils.User', null, {});
25 openils.User.user = null;
26 openils.User.authtoken = null;
27 openils.User.authtime = null;
29 var ses = new OpenSRF.ClientSession('open-ils.auth');
31 openils.User.getBySession = function(onComplete) {
32 var req = ses.request('open-ils.auth.session.retrieve', openils.User.authtoken);
34 req.oncomplete = function(r) {
35 var user = r.recv().content();
36 openils.User.user = user;
44 return openils.User.user = req.recv().content();
48 openils.User.getById = function(id, onComplete) {
49 var ases = new OpenSRF.ClientSession('open-ils.actor');
50 var req = ases.request('open-ils.actor.user.retrieve', openils.User.authtoken, id);
52 req.oncomplete = function(r) {
53 var user = r.recv().content();
60 return req.recv().content();
66 * Logs in, sets the authtoken/authtime vars, and fetches the logged in user
68 openils.User.login = function(args, onComplete) {
69 var initReq = ses.request('open-ils.auth.authenticate.init', args.username);
71 initReq.oncomplete = function(r) {
72 var seed = r.recv().content();
75 password : hex_md5(seed + hex_md5(args.passwd)),
76 type : args.type || 'opac',
80 var authReq = ses.request('open-ils.auth.authenticate.complete', loginInfo);
81 authReq.oncomplete = function(rr) {
82 var data = rr.recv().content();
83 openils.User.authtoken = data.payload.authtoken;
84 openils.User.authtime = data.payload.authtime;
85 openils.User.getBySession(onComplete);
94 * Returns a list of the "highest" org units where the user
95 * has the given permission.
97 openils.User.getPermOrgList = function(perm, onload) {
99 var ases = new OpenSRF.ClientSession('open-ils.actor');
100 var req = ases.request(
101 'open-ils.actor.user.work_perm.highest_org_set',
102 openils.User.authtoken, perm);
104 req.oncomplete = function(r) {
105 org_list = r.recv().content();