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

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);
};
});