]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5891 Return default properties in api/properties 923/head
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 2 May 2016 11:45:47 +0000 (13:45 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 3 May 2016 12:26:32 +0000 (14:26 +0200)
server/sonar-web/src/main/webapp/WEB-INF/app/controllers/api/properties_controller.rb

index 26d7987b305fbcc2a750884c636549bb358e5a0a..45c9558585ec6fae06604d5d606374eedd04e5fa 100644 (file)
@@ -46,6 +46,15 @@ class Api::PropertiesController < Api::ApiController
       properties<<prop if keys.add? prop.key
     end
 
+    # Add default properties for properties that are not overloaded
+    java_facade.getSettings().getDefinitions().getAll().each do |prop_def|
+      key = prop_def.key()
+      if keys.add?(key)
+        default_prop = get_default_property(key)
+        properties<<default_prop if default_prop
+      end
+    end
+
     # apply security
     properties = properties.select{|prop| allowed?(prop.key)}
 
@@ -66,6 +75,10 @@ class Api::PropertiesController < Api::ApiController
     else
       prop = Property.by_key(key)
     end
+
+    # Try to get default value if property is null
+    prop ||= get_default_property(key)
+
     unless prop
       # for backward-compatibility with versions <= 2.14 : keep status 200
       message = "Property not found: #{key}"
@@ -146,4 +159,9 @@ class Api::PropertiesController < Api::ApiController
     !property_key.end_with?('.secured') || is_admin?
   end
 
+  def get_default_property(key)
+    value = java_facade.getSettings().getString(key).to_s
+    Property.new({:prop_key => key, :text_value => value}) if java_facade.getSettings().hasDefaultValue(key)
+  end
+
 end