]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/staff/services/user.js
LP#1715767: Allow others to use my account (privacy waiver)
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / services / user.js
1 /** 
2  * Service for fetching fleshed user objects.
3  */
4
5 angular.module('egUserMod', ['egCoreMod'])
6
7 .factory('egUser', 
8        ['$q','$timeout','egNet','egAuth','egOrg',
9 function($q,  $timeout,  egNet,  egAuth,  egOrg) {
10
11     var service = {
12         defaultFleshFields : [
13             'card',                                                                
14             'settings',
15             'standing_penalties',                                                  
16             'addresses',                                                           
17             'billing_address',                                                     
18             'mailing_address',                                                     
19             'stat_cat_entries',                                                    
20             'waiver_entries',
21             'usr_activity',
22             'notes'
23         ]
24     };
25
26     service.format_name = function(patron_obj) {
27         var patron_name = ( patron_obj.prefix() ? patron_obj.prefix() + ' ' : '') +
28             patron_obj.family_name() + ', ' +
29             patron_obj.first_given_name() + ' ' +
30             ( patron_obj.second_given_name() ? patron_obj.second_given_name() + ' ' : '' ) +
31             ( patron_obj.suffix() ? patron_obj.suffix() : '');
32         return patron_name;
33     };
34
35     service.get = function(userId, args) {
36         var deferred = $q.defer();
37
38         if (!userId) deferred.reject();
39
40         var fields = service.defaultFleshFields;
41         if (args) {
42             if (args.useFields) { 
43                 // overridde flesh fields
44                 fields = args.useFields; 
45             }
46             if (args.addFields) {
47                 // append flesh fields
48                 fields = fields.concat(args.addFields);
49             }
50         }
51             
52         egNet.request(
53             'open-ils.actor',
54             'open-ils.actor.user.fleshed.retrieve',
55             egAuth.token(), userId, fields).then(
56             function(user) {
57                 if (user && user.classname == 'au') {
58                     deferred.resolve(user);
59                 } else {
60                     deferred.reject(user);
61                 }
62             }
63         );
64
65         return deferred.promise;
66     };
67
68     service.getByBarcode = function(barcode, args) {
69         return egNet.request(
70             'open-ils.pcrud',
71             'open-ils.pcrud.search.ac.atomic',
72             egAuth.token(), {barcode:barcode}
73         ).then( function(card) {
74             if (card && angular.isArray(card) && card[0] && card[0].classname == 'ac') {
75                 return service.get(card[0].usr(), args)
76             }
77             return service.get(null);
78         }) 
79     };
80
81     return service;
82 }]);
83