UserService nous permet d’accéder à ce qui est stocké dans localstorage sous la clé “user”

Untitled

Exemple pour obtenir la liste des partenaires

fct.partenairesList = UserService.getPartenaires();
/**
* @ngdoc service
* @name UserService
* @description 
* Gestion des données utilisateur
* @param {service} $http service angular permettant d'effectuer une requête http
* @param {service} store service permettant d'enregistrer des données json dans les localstorage du navigateur
* @param {constant} constants constantes générées par grunt
* @requires angular-storage
*/
angular.module('services.user', ['core.service.http', 'webStorageModule'])
    .service('UserService', function (BaseHttpService, $http, $q, webStorage, constants,$window) {
        'ngInject';
        'use strict';

        var service = this;
        BaseHttpService.init(service, '/utilisateur/');
        service.surchargerConfAgence=false;
        service.libProp='nom_utilisateur_PersonneR';
        service.pwdExpired='passwordExpired_UtilisateurLoginTokenR';
        /**
        * @ngdoc method
        * @name cache
        * @description enregistre dans le localstorage les données utilisateur et renvoi celles-ci
        * @param {json} resultat de la requête vers l'API
        * @return json
        */
        function cache(result) {
            if (result.data) {
                // agence par défaut...
                result.data.data.currentAgence={};
                if (result.data.data.agenceList_UtilisateurLoginTokenR.length>0) {
                    result.data.data.currentAgence=result.data.data.agenceList_UtilisateurLoginTokenR[0];
                }
                webStorage.local.set('user', result.data);
            }
            return result.data;
        }

        service.updateCache = function (user) {
            webStorage.local.set('user',user);
        };

        /**
        * @ngdoc method
        * @name authenticate
        * @description authentification
        * @param {string} login
        * @param {string} password
        * @return promise
        */
        service.authenticate = function (login, password) {
            /*return $http.get('/data/user.json').then(cache);*/
            return $http.post(constants.server + '/user/login', {
                data:
                {
                    'login':login,
                    'mdp':password
                }
            }).then(cache);
    
        };

        service.loginArcad = function (a_code) {
            /*return $http.get('/data/user.json').then(cache);*/
            return $http.post(constants.server + '/user/arcad/login',{
                data:
                {
                    code:a_code,
                    redirectUri:$window.location.href.replace($window.location.hash,"")
                }
            }).then(cache);
    
        };   

        service.paramsArcad = function () {
            return $http.post(constants.server + '/user/arcad/params');    
        };        
        
        

        service.updatePwd = function(login,oldPwd,newPwd) {                        
            var params = {
                version : '1.0',
                data : {
                    login:login,
	                ancienMotDePasse:oldPwd,
	                nouveauMotDePasse:newPwd
                }
            };
            
            return $http.post(constants.server + '/user/chgtmdp', params);       
        };            

        /**
        * @ngdoc method
        * @name disconnect
        * @description déconnexion en supprimant les données utilisateur de localstorage
        */
        service.disconnect = function () {
            var user = service.getUserConnected();
            // on reprend le fonctionnement pour renvoyer un $q
            var deferred=$q.defer();
            
            
           
            if (user) {
                $http.post(constants.server + '/user/logout', {
                    contexteUsr:
                    {
                        'token':user.data.token_UtilisateurLoginTokenR
                    }
                }).then(function (result) {
                    if (result.status===200) {
                        webStorage.local.remove('user');   
                        
                    }
                    deferred.resolve(result);
                     
                });
            } else {
                deferred.resolve({status:200});
            }
            return deferred.promise;  
            
           
        };

        /**
        * @ngdoc method
        * @name get
        * @description récupération des données utilisateur de localstorage
        */
        service.getUserConnected = function () {
            var l_result=webStorage.local.get('user');
            if ((l_result) && (l_result.data) &&(l_result.data.utilisateur_UtilisateurLoginTokenR.estClient_utilisateur_UtilisateurR==="1")&&(constants.messagesState)) {
                constants.messagesState=null;
            }
            return l_result;
        };
    
        service.getPersonneUser = function () {
            return service.getUserConnected().data.utilisateur_UtilisateurLoginTokenR.idPersonne;
        };
    
    
        service.getUserId=function() {
            return service.getUserConnected().data.utilisateur_UtilisateurLoginTokenR.id_utilisateur_UtilisateurR;
        };
    

    
        /* fonction renvoyant les activités associées a l'agence en cours */
        service.getActivites = function() {
            var result=[],user=webStorage.local.get('user');
            if ((user.data.currentAgence)&&(user.data.currentAgence.activiteList_agenceList_AgenceR)) {
                return user.data.currentAgence.activiteList_agenceList_AgenceR;
            }
        };
        
        /* fonction renvoyant les partenaires associés a l'agence en cours */
        service.getPartenaires = function() {
            var result=[],user=webStorage.local.get('user');
            if ((user.data.currentAgence)&&(user.data.currentAgence.partenaireList_agenceList_AgenceUtilTokenAPI)) {
                return user.data.currentAgence.partenaireList_agenceList_AgenceUtilTokenAPI;
            }
        };

        /* function renvoyant les modules actif sur l'agence en cours */
        service.getModuleList = function() {
            var user=webStorage.local.get('user');
            if((user.data.currentAgence)&&(user.data.currentAgence.moduleList_agenceList_AgenceR)) {
                return user.data.currentAgence.moduleList_agenceList_AgenceR;
            }
        };
    
        /**
        * @ngdoc method
        * @name validatePwd
        * @description valide la saisie d'un mot de passe
        */
        service.validatePwd = function(value) {
            return $http.post(constants.server + '/user/validermdp', {
                    data:
                    {
                        mdp:value
                    }
                });            
        };
        // renvoie le contexte fonction de l'application...
        service.getContext = function (user,config) {
            var context={
                token: '',
                refAgence:null
            };
            context.token = user.data.token_UtilisateurLoginTokenR;
            if ((user.data.currentAgence)&&(user.data.currentAgence.id_agenceList_AgenceR)) {
                context.refAgence=user.data.currentAgence.id_agenceList_AgenceR;
            }
            return context;
        };
    
        // permet d'indiquer si l'on surcharge on non le message de confirmation de sotie d'un formulaire
        service.surchargerConfForm = function() {
            return service.surchargerConfAgence;
        };
        
        service.setSurchargerConfForm = function(bool) {
            service.surchargerConfAgence=bool;
        };
    
        // récupère les entités (id / libellé)
        service.getEntites = function(user) {
            var deferred=$q.defer(),entites =[];
           entites=service.agencesToEntites(user.data.agenceList_UtilisateurLoginTokenR);
           deferred.resolve(entites);    
           return deferred.promise;            
        };
        service.agencesToEntites = function(agences) {
            var entites=[];
            for(var i=0;i<agences.length;i++) {
                entites.push({id:agences[i].id_agenceList_AgenceR,libelle:agences[i].nom_agenceList_PersonneR,niveau:0});
            }
            return entites;
        };
        service.getCurrentEntite = function(user) {
            var entiteC = user.data.currentAgence;
            if (entiteC) {
                return {id:entiteC.id_agenceList_AgenceR,libelle:entiteC.nom_agenceList_PersonneR,niveau:0};
            } else {
                return undefined;
            }
        };  
        
    
        service.selectEntite = function(id) {
            var user=webStorage.local.get('user'),
                idAgence=0;
            for(var i=0;i<user.data.agenceList_UtilisateurLoginTokenR.length;i++) {
                idAgence=user.data.agenceList_UtilisateurLoginTokenR[i].id_agenceList_AgenceR;
                if (idAgence===id) {
                    user.data.currentAgence=user.data.agenceList_UtilisateurLoginTokenR[i];
                }
            }
            service.surchargerConfAgence=true;
            webStorage.local.set('user',user);
            return service.getCurrentEntite(user);
        };

    });