Subversion Repositories eFlore/Applications.cel

Rev

Rev 3209 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3209 Rev 3213
Line 1... Line 1...
1
// configuration
1
// configuration
-
 
2
// prod :
-
 
3
/*var urlRacine =
2
/*var urlRacine = 'https://www.tela-botanica.org',
4
  'https://www.tela-botanica.org',
3
  config = {
5
  config = {
4
    prod: {
6
    prod: {
5
      urlWidgetNavigation : urlRacine + '/widget:cel:saisie2',
7
      urlWidgetNavigation : urlRacine + '/widget:cel:saisie2',
6
      urlBaseAuth : 'https://www.tela-botanica.org/service:annuaire:auth'
8
      urlBaseAuth : 'https://www.tela-botanica.org/service:annuaire:auth'
7
    },
-
 
8
    test: {
-
 
9
      urlWidgetNavigation : urlRacine + '/widget-test:cel:saisie2',
-
 
10
      urlBaseAuth : 'https://www.tela-botanica.org/service:annuaire-test:auth'
-
 
11
    },
-
 
12
    local: {
-
 
13
      urlWidgetNavigation : 'https://localhost/widget:cel:saisie2',
-
 
14
      urlBaseAuth : 'https://localhost/service:annuaire:auth'
-
 
15
    }
9
    }
16
  }
10
  }
17
  */
11
  */
18
// // Prod: décommenter ci-dessus et commenter ou supprimer ci-dessous
-
 
19
 var urlRacine = 'https://beta.tela-botanica.org',
-
 
20
   config = {
12
// beta (test) :
21
     prod: {
13
var urlRacine =
22
       urlWidgetNavigation : urlRacine + '/widget:cel:saisie2',
-
 
23
       urlBaseAuth : 'https://beta.tela-botanica.org/service:annuaire:auth'
14
  'https://beta.tela-botanica.org',
24
     },
15
  config = {
25
     test: {
16
    test: {
26
       urlWidgetNavigation : urlRacine + '/widget:cel:saisie2',
17
      urlWidgetNavigation : urlRacine + '/widget:cel:saisie2',
27
       urlBaseAuth : 'https://api.tela-botanica.test/service:annuaire:auth'
18
      urlBaseAuth : 'https://beta.tela-botanica.org/service:annuaire:auth'
28
     },
-
 
29
     local: {
-
 
30
       urlWidgetNavigation : 'https://localhost/widget:cel:saisie2',
-
 
31
      urlBaseAuth : 'https://localhost/service:annuaire:auth'
-
 
32
     }
19
    }
33
   }
20
  }
Line -... Line 21...
-
 
21
 
-
 
22
// dev (localhost):
-
 
23
/*var urlRacine =
-
 
24
  'http://localhost',
-
 
25
  config = {
-
 
26
    local: {
-
 
27
      urlWidgetNavigation : urlRacine + '/widget:cel:saisie2',
-
 
28
      urlBaseAuth : 'https://api.tela-botanica.test/service:annuaire:auth'
-
 
29
    }
-
 
30
  }
34
 
31
*/
35
/**
32
/**
36
 * Charge la barre de navigation depuis le widget:reseau:navigation dans un <div id="tb-navigation"> , s'il existe
33
 * Charge la barre de navigation depuis le widget:reseau:navigation dans un <div id="tb-navigation"> , s'il existe
37
 * dans la page appelante.
34
 * dans la page appelante.
38
 *
35
 *
Line 71... Line 68...
71
        var $zoneSource = $div.find( '#contenu-source' );
68
        var $zoneSource = $div.find( '#contenu-source' );
72
        if ( $zoneSource ) {
69
        if ( $zoneSource ) {
73
          $zoneSource.replaceWith( contenu );
70
          $zoneSource.replaceWith( contenu );
74
          // Chargement des informations de connexion SSO
71
          // Chargement des informations de connexion SSO
75
          var urlBaseAuth = config[mode]['urlBaseAuth'];
72
          var urlBaseAuth = config[mode]['urlBaseAuth'];
76
          chargerStatutSSO( urlBaseAuth );
73
          chargerStatutSSO( config[mode]['urlBaseAuth'] );
77
        }
74
        }
78
      },
75
      },
79
      error: function() {
76
      error: function() {
80
        $div.html( 'Erreur: impossible de charger la barre de navigation' );
77
        $div.html( 'Erreur: impossible de charger la barre de navigation' );
81
      }
78
      }
Line 98... Line 95...
98
 * Interroge le SSO pour connaître le statut de l'utilisateur, et change le menu
95
 * Interroge le SSO pour connaître le statut de l'utilisateur, et change le menu
99
 * à droite de la barre en fonction
96
 * à droite de la barre en fonction
100
 */
97
 */
101
function chargerStatutSSO( urlBaseAuth ) {
98
function chargerStatutSSO( urlBaseAuth ) {
102
  var urlAuth = urlBaseAuth + '/identite';
99
  var urlAuth = urlBaseAuth + '/identite';
103
  // Prod: décommenter $.ajax ci-dessous et supprimer la ligne ci-dessus
-
 
104
  $.ajax({
100
  $.ajax({
105
    url: urlAuth,
101
    url: urlAuth,
106
    type: "GET",
102
    type: "GET",
107
    dataType: 'json',
103
    dataType: 'json',
108
    xhrFields: {
104
    xhrFields: {
109
      withCredentials: true
105
      withCredentials: true
110
    }
106
    }
111
  }).done( function( data ) {
107
  }).done( function( data ) {
112
    // connecté
108
    // connecté
-
 
109
    if ( undefined !== data.token ) {
113
    definirUtilisateur( data.token );
110
      definirUtilisateur( data.token );
-
 
111
    }
114
  });
112
  });
115
}
113
}
Line 116... Line 114...
116
 
114
 
117
function definirUtilisateur( jeton ) {
-
 
118
  var nomComplet = '',
-
 
119
      idUtilisateur = '',
-
 
120
      courriel = '',
-
 
121
      nom = '',
-
 
122
      prenom = '';
-
 
123
  if ( undefined !== jeton ) {
115
function definirUtilisateur( jeton ) {
124
    // décodage jeton
116
  // décodage jeton
125
    var jetonDecode = decoderJeton( jeton );
-
 
126
    nomComplet = jetonDecode.intitule;
-
 
127
    idUtilisateur = jetonDecode.id;
-
 
128
    courriel = jetonDecode.sub;
-
 
129
    nom = jetonDecode.nom;
-
 
130
    prenom = jetonDecode.prenom;
117
  var jetonDecode = decoderJeton( jeton );
131
    // console.log(jetonDecode);
-
 
132
  }
118
  // console.log(jetonDecode);
-
 
119
  // affichage
133
  // affichage
120
  $( '.warning' ).remove();
134
  $( '#bouton-connexion, #creation-compte' ).addClass( 'hidden' );
121
  $( '#bouton-connexion, #creation-compte' ).addClass( 'hidden' );
135
  $( '#utilisateur-connecte, #anonyme, #zone-courriel-confirmation, #zone-prenom-nom' ).removeClass( 'hidden' );
122
  $( '#utilisateur-connecte, #anonyme, #zone-courriel-confirmation, #zone-prenom-nom' ).removeClass( 'hidden' );
136
  $( '#nom-complet' ).html( nomComplet );
123
  $( '#nom-complet' ).html( jetonDecode.intitule );
137
  $( '#courriel, #courriel_confirmation' ).val( courriel ).attr( 'disabled', 'disabled' );
124
  $( '#courriel, #courriel_confirmation' ).val( jetonDecode.sub ).attr( 'disabled', 'disabled' );
138
  $( '#id_utilisateur' ).val( idUtilisateur );
125
  $( '#id_utilisateur' ).val( jetonDecode.id );
139
  $( '#prenom' ).val( prenom ).attr( 'disabled', 'disabled' );
126
  $( '#prenom' ).val( jetonDecode.prenom ).attr( 'disabled', 'disabled' );
140
  $( '#nom' ).val( nom ).attr( 'disabled', 'disabled' );
127
  $( '#nom' ).val( jetonDecode.nom ).attr( 'disabled', 'disabled' );
141
  $( '#date-releve' ).focus();
128
  $( '#date-releve' ).focus();
Line 142... Line 129...
142
}
129
}
143
 
130
 
Line 148... Line 135...
148
 * ou ceci : https://code.google.com/p/crypto-js
135
 * ou ceci : https://code.google.com/p/crypto-js
149
 */
136
 */
150
function decoderJeton( jeton ) {
137
function decoderJeton( jeton ) {
151
  parts   = jeton.split( '.' );
138
  parts   = jeton.split( '.' );
152
  payload = parts[1];
139
  payload = parts[1];
-
 
140
  payload = payload.replace('-', '+').replace('_', '/');
153
  payload = atob( payload );
141
  payload = atob( payload );
154
  payload = JSON.parse( payload, true );
142
  payload = JSON.parse( payload, true );
Line 155... Line 143...
155
 
143
 
156
  return payload;
144
  return payload;