diff --git a/assets/javascripts/discourse/connectors/admin-user-details/mozilla-iam.js.es6 b/assets/javascripts/discourse/connectors/admin-user-details/mozilla-iam.js.es6
new file mode 100644
index 0000000..4d7885f
--- /dev/null
+++ b/assets/javascripts/discourse/connectors/admin-user-details/mozilla-iam.js.es6
@@ -0,0 +1,13 @@
+export default {
+ setupComponent(args, component) {
+ var custom_fields = args.model.mozilla_iam
+ if (custom_fields) {
+ var dinopark_enabled = custom_fields.dinopark_enabled
+ if (dinopark_enabled === true || dinopark_enabled === "t") {
+ args.model.mozilla_iam.dinopark_enabled = true
+ } else {
+ args.model.mozilla_iam.dinopark_enabled = false
+ }
+ }
+ }
+}
diff --git a/assets/javascripts/discourse/templates/connectors/admin-user-details/mozilla-iam.hbs b/assets/javascripts/discourse/templates/connectors/admin-user-details/mozilla-iam.hbs
index 9cc7628..8182d2e 100644
--- a/assets/javascripts/discourse/templates/connectors/admin-user-details/mozilla-iam.hbs
+++ b/assets/javascripts/discourse/templates/connectors/admin-user-details/mozilla-iam.hbs
@@ -43,4 +43,16 @@
+
+
Linked to DinoPark?
+
+
+ {{#if model.mozilla_iam.dinopark_enabled}}
+ True
+ {{else}}
+ False
+ {{/if}}
+
+
+
diff --git a/lib/mozilla_iam/profile.rb b/lib/mozilla_iam/profile.rb
index 2fd121b..2f74599 100644
--- a/lib/mozilla_iam/profile.rb
+++ b/lib/mozilla_iam/profile.rb
@@ -103,3 +103,4 @@ def set(key, value)
require_relative "profile/update_emails"
require_relative "profile/duplicate_accounts"
require_relative "profile/is_aal_enough"
+require_relative "profile/dinopark_enabled"
diff --git a/lib/mozilla_iam/profile/dinopark_enabled.rb b/lib/mozilla_iam/profile/dinopark_enabled.rb
new file mode 100644
index 0000000..ae9f08e
--- /dev/null
+++ b/lib/mozilla_iam/profile/dinopark_enabled.rb
@@ -0,0 +1,16 @@
+module MozillaIAM
+ Profile.class_eval do
+ def dinopark_enabled?
+ if get("dinopark_enabled") === "t" ||
+ get("dinopark_enabled") === true
+ return true
+ else
+ return false
+ end
+ end
+
+ def dinopark_enabled=(enabled)
+ set("dinopark_enabled", enabled)
+ end
+ end
+end
diff --git a/plugin.rb b/plugin.rb
index 236e38e..6b072cd 100644
--- a/plugin.rb
+++ b/plugin.rb
@@ -1,6 +1,6 @@
# name: mozilla-iam
# about: A plugin to integrate Discourse with Mozilla's Identity and Access Management (IAM) system
-# version: 1.1.2
+# version: 1.2.0
# authors: Leo McArdle
# url: https://github.com/mozilla/discourse-mozilla-iam
diff --git a/spec/components/mozilla_iam/profile/dinopark_enabled_spec.rb b/spec/components/mozilla_iam/profile/dinopark_enabled_spec.rb
new file mode 100644
index 0000000..ffbdbff
--- /dev/null
+++ b/spec/components/mozilla_iam/profile/dinopark_enabled_spec.rb
@@ -0,0 +1,23 @@
+require_relative '../../../iam_helper'
+
+describe MozillaIAM::Profile do
+ describe "#dinopark_enabled" do
+ let(:user) { Fabricate(:user) }
+ let(:profile) { MozillaIAM::Profile.new(user, "uid") }
+
+ it "defaults to false" do
+ expect(profile.dinopark_enabled?).to eq false
+ end
+
+ it "can be set to true" do
+ profile.dinopark_enabled = true
+ expect(profile.dinopark_enabled?).to eq true
+ end
+
+ it "returns false if set to anything but true" do
+ profile.dinopark_enabled = "blah"
+ expect(profile.dinopark_enabled?).to eq false
+ end
+
+ end
+end
diff --git a/test/javascripts/acceptance/user-preferences-account-test.js.es6 b/test/javascripts/acceptance/user-preferences-account-test.js.es6
new file mode 100644
index 0000000..dc1d17f
--- /dev/null
+++ b/test/javascripts/acceptance/user-preferences-account-test.js.es6
@@ -0,0 +1,64 @@
+import { acceptance } from "helpers/qunit-helpers"
+
+acceptance("Mozilla IAM - Admin User Details", {
+ loggedIn: true
+})
+
+const response = (server, mozilla_iam) => {
+ server.get("/admin/users/1.json", () => [
+ 200,
+ { "Content-Type": "application/json" },
+ {
+ id: 1,
+ username: "eviltrout",
+ email: "eviltrout@example.com",
+ mozilla_iam
+ }
+ ])
+}
+
+const assert_dinopark = (assert, value) => {
+ assert.equal(
+ find(".mozilla-iam.admin-user-details-outlet .dinopark-enabled .value").text().trim(),
+ value,
+ `dinopark enabled should show ${value}`
+ )
+}
+
+QUnit.test("viewing profile with dinopark_enabled undefined", async assert => {
+ response(server, {})
+
+ await visit("/admin/users/1/eviltrout")
+
+ assert_dinopark(assert, "False")
+})
+
+QUnit.test("viewing profile with dinopark_enabled set to anything but true", async assert => {
+ response(server, {
+ dinopark_enabled: "foo"
+ })
+
+ await visit("/admin/users/1/eviltrout")
+
+ assert_dinopark(assert, "False")
+})
+
+QUnit.test("viewing profile with dinopark_enabled set to true", async assert => {
+ response(server, {
+ dinopark_enabled: true
+ })
+
+ await visit("/admin/users/1/eviltrout")
+
+ assert_dinopark(assert, "True")
+})
+
+QUnit.test("viewing profile with dinopark_enabled set to 't'", async assert => {
+ response(server, {
+ dinopark_enabled: "t"
+ })
+
+ await visit("/admin/users/1/eviltrout")
+
+ assert_dinopark(assert, "True")
+})