diff --git a/CHANGELOG.md b/CHANGELOG.md
index d0358f7e572..517fa82779b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
**Backend**
- [Issue #1905](https://github.com/grafana/grafana/issues/1905). Github OAuth: You can now configure a Github team membership requirement, thx @dewski
+- [Issue #1891](https://github.com/grafana/grafana/issues/1891). Security: New config option to disable the use of gravatar for profile images
# 2.0.3 (unreleased - 2.0.x branch)
diff --git a/conf/defaults.ini b/conf/defaults.ini
index 4fef290b908..891c04920e1 100644
--- a/conf/defaults.ini
+++ b/conf/defaults.ini
@@ -109,6 +109,9 @@ login_remember_days = 7
cookie_username = grafana_user
cookie_remember_name = grafana_remember
+# disable gravatar profile images
+disable_gravatar = false
+
#################################### Users ####################################
[users]
# disable user signup / registration
diff --git a/conf/sample.ini b/conf/sample.ini
index 62d5c2a09ce..aa333cdc5de 100644
--- a/conf/sample.ini
+++ b/conf/sample.ini
@@ -108,6 +108,9 @@
;cookie_username = grafana_user
;cookie_remember_name = grafana_remember
+# disable gravatar profile images
+;disable_gravatar = false
+
#################################### Users ####################################
[users]
# disable user signup / registration
diff --git a/docs/sources/installation/configuration.md b/docs/sources/installation/configuration.md
index ace8c57184f..7ccee50fbc9 100644
--- a/docs/sources/installation/configuration.md
+++ b/docs/sources/installation/configuration.md
@@ -134,6 +134,9 @@ The number of days the keep me logged in / remember me cookie lasts.
### secret_key
Used for signing keep me logged in / remember me cookies.
+### disable_gravatar
+Set to true to disable the use of Gravatar for user profile images. Default is `false`.
+
## [user]
diff --git a/pkg/api/index.go b/pkg/api/index.go
index 86a5e3f1882..386bb3351df 100644
--- a/pkg/api/index.go
+++ b/pkg/api/index.go
@@ -25,6 +25,10 @@ func setIndexViewData(c *middleware.Context) error {
IsGrafanaAdmin: c.IsGrafanaAdmin,
}
+ if setting.DisableGravatar {
+ currentUser.GravatarUrl = setting.AppSubUrl + "/img/user_profile.png"
+ }
+
if len(currentUser.Name) == 0 {
currentUser.Name = currentUser.Login
}
diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go
index 46f98e32efe..520267fb871 100644
--- a/pkg/setting/setting.go
+++ b/pkg/setting/setting.go
@@ -71,6 +71,7 @@ var (
LogInRememberDays int
CookieUserName string
CookieRememberName string
+ DisableGravatar bool
// User settings
AllowUserSignUp bool
@@ -358,6 +359,8 @@ func NewConfigContext(args *CommandLineArgs) {
LogInRememberDays = security.Key("login_remember_days").MustInt()
CookieUserName = security.Key("cookie_username").String()
CookieRememberName = security.Key("cookie_remember_name").String()
+ DisableGravatar = security.Key("disable_gravatar").MustBool(true)
+
// admin
AdminUser = security.Key("admin_user").String()
AdminPassword = security.Key("admin_password").String()
diff --git a/public/app/plugins/datasource/influxdb_08/datasource.js b/public/app/plugins/datasource/influxdb_08/datasource.js
index 7462bdb41b9..8ff01c8553f 100644
--- a/public/app/plugins/datasource/influxdb_08/datasource.js
+++ b/public/app/plugins/datasource/influxdb_08/datasource.js
@@ -42,9 +42,9 @@ function (angular, _, kbn, InfluxSeries, InfluxQueryBuilder) {
query = query.replace(/\$interval/g, (target.interval || options.interval));
// replace templated variables
- query = templateSrv.replace(query);
+ query = templateSrv.replace(query, options.scopedVars);
- var alias = target.alias ? templateSrv.replace(target.alias) : '';
+ var alias = target.alias ? templateSrv.replace(target.alias, options.scopedVars) : '';
var handleResponse = _.partial(handleInfluxQueryResponse, alias, queryBuilder.groupByField);
return this._seriesQuery(query).then(handleResponse);
diff --git a/public/img/user_profile.png b/public/img/user_profile.png
new file mode 100644
index 00000000000..bc492598e4f
Binary files /dev/null and b/public/img/user_profile.png differ