Sfoglia il codice sorgente

Refactoring pull request for basic auth improvement

Torkel Ödegaard 12 anni fa
parent
commit
d79dcb952d

+ 18 - 15
src/app/components/settings.js

@@ -34,15 +34,19 @@ function (_, crypto) {
       settings[key] = typeof options[key] !== 'undefined' ? options[key]  : defaults[key];
       settings[key] = typeof options[key] !== 'undefined' ? options[key]  : defaults[key];
     });
     });
 
 
-    var basicAuth = function(url) {
-      var passwordAt = url.indexOf('@');
-      if (passwordAt > 0) {
-        var userStart = url.indexOf('//') + 2;
-        var userAndPassword = url.substring(userStart, passwordAt);
+    var parseBasicAuth = function(datasource) {
+      var passwordEnd = datasource.url.indexOf('@');
+      if (passwordEnd > 0) {
+        var userStart = datasource.url.indexOf('//') + 2;
+        var userAndPassword = datasource.url.substring(userStart, passwordEnd);
         var bytes = crypto.charenc.Binary.stringToBytes(userAndPassword);
         var bytes = crypto.charenc.Binary.stringToBytes(userAndPassword);
-        var base64 = crypto.util.bytesToBase64(bytes);
-        return base64;
+        datasource.basicAuth = crypto.util.bytesToBase64(bytes);
+
+        var urlHead = datasource.url.substring(0, userStart);
+        datasource.url = urlHead + datasource.url.substring(passwordEnd + 1);
       }
       }
+
+      return datasource;
     };
     };
 
 
     if (options.graphiteUrl) {
     if (options.graphiteUrl) {
@@ -50,18 +54,17 @@ function (_, crypto) {
         graphite: {
         graphite: {
           name: 'default',
           name: 'default',
           url: options.graphiteUrl,
           url: options.graphiteUrl,
-          default: true,
-          basicAuth: basicAuth(options.graphiteUrl)
+          default: true
         }
         }
       };
       };
     }
     }
-    else {
-      _.each(_.values(settings.datasources), function(source) {
-        source.basicAuth = basicAuth(source.url);
-      });
-    }
 
 
-    settings.elasticsearchBasicAuth = basicAuth(settings.elasticsearch);
+    _.map(settings.datasources, parseBasicAuth);
+
+    var elasticParsed = parseBasicAuth({ url: settings.elasticsearch });
+    settings.elasticsearchBasicAuth = elasticParsed.basicAuth;
+    settings.elasticsearch = elasticParsed.url;
+
     return settings;
     return settings;
   };
   };
 });
 });

+ 1 - 9
src/app/services/graphite/graphiteDatasource.js

@@ -14,17 +14,9 @@ function (angular, _, $, config, kbn, moment) {
   module.factory('GraphiteDatasource', function(dashboard, $q, filterSrv, $http) {
   module.factory('GraphiteDatasource', function(dashboard, $q, filterSrv, $http) {
 
 
     function GraphiteDatasource(datasource) {
     function GraphiteDatasource(datasource) {
-      var passwordEnd = datasource.url.indexOf('@');
-      if(passwordEnd > 0) {
-        var userStart = datasource.url.indexOf('//') + 2;
-        var urlHead = datasource.url.substring(0,userStart);
-        this.url = urlHead + datasource.url.substring(passwordEnd);
-      }
-      else {
-        this.url = datasource.url;
-      }
       this.type = 'graphite';
       this.type = 'graphite';
       this.basicAuth = datasource.basicAuth;
       this.basicAuth = datasource.basicAuth;
+      this.url = datasource.url;
     }
     }
 
 
     GraphiteDatasource.prototype.query = function(options) {
     GraphiteDatasource.prototype.query = function(options) {