Bonjour,
actuellement j'ai une application qui possède 3 types d'utilisateurs différents, je souhaite afficher un menu particulier a chacun d'eux et bloquer certaines pages de ce fait.
Pour l'instant je procède ainsi:
Service de connexion:
1 2 3 4 5 6 7
| auth.$onAuth(function(authData) {
if(authData) {
angular.copy(authData, Auth.user);
Auth.user.profile = $firebaseObject(ref.child('profileExt').child(authData.uid));
} |
Ici je stocke les infos de profile dans un object firebase.
Ces informations sont disponible tout au long de la navigation de l'utilisateurs, tant qu'il ne détruit pas sa "session".
A chaque changement de route je demande:
1 2 3 4 5 6 7 8 9
| .when('/activite-en-cours/:aid', {
templateUrl: 'views/activite-en-cours.html',
controller: 'EncoursCtrl',
resolve: {
currentAuth: function(Auth) {
return Auth.requireAuth();
}
}
}) |
Qui correspond a:
1 2 3
| requireAuth: function() {
return auth.$requireAuth();
} |
Dans mon menu:
1 2
|
$scope.status=Auth.user.profile.status; |
Je récupère dans le scope le status de l'utilisateur actuel (je devrais d'ailleurs voir pour récupérer avec une promise cette information), pour ensuite filtre dans mon html avec des ng-if
<li ng-if="status==='Prestataire'"><a href="#/message">Message</a></li>
Le soucis c'est le rafraîchissement des pages, si l'utilisateur fait un F5, alors l'application perd le status et n'affiche plus le bon menu.
Comment faire pour faire un système propre, permettant le bocage de certaines pages, et l'affichage du menu personnalisé.
Merci
Partager