From e8424bd54e4c7d1bff5f8c3f87f931648ee94020 Mon Sep 17 00:00:00 2001
From: Robin Ward <robin.ward@gmail.com>
Date: Wed, 14 Oct 2015 15:40:23 -0400
Subject: [PATCH] SECURITY: Moderators should not see API keys

---
 .../admin/templates/user-index.hbs            | 36 ++++++++++---------
 .../admin_detailed_user_serializer.rb         |  2 +-
 2 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/app/assets/javascripts/admin/templates/user-index.hbs b/app/assets/javascripts/admin/templates/user-index.hbs
index 1df839467..bdbee2e53 100644
--- a/app/assets/javascripts/admin/templates/user-index.hbs
+++ b/app/assets/javascripts/admin/templates/user-index.hbs
@@ -203,23 +203,25 @@
     </div>
   </div>
 
-  <div class='display-row'>
-    <div class='field'>{{i18n 'admin.api.key'}}</div>
-    {{#if model.api_key}}
-      <div class='long-value'>
-        {{model.api_key.key}}
-        {{d-button action="regenerateApiKey" icon="undo" label="admin.api.regenerate"}}
-        {{d-button action="revokeApiKey" icon="times" label="admin.api.revoke"}}
-      </div>
-    {{else}}
-      <div class='value'>
-        &mdash;
-      </div>
-      <div class='controls'>
-        {{d-button action="generateApiKey" icon="key" label="admin.api.generate"}}
-      </div>
-    {{/if}}
-  </div>
+  {{#if currentUser.admin}}
+    <div class='display-row'>
+      <div class='field'>{{i18n 'admin.api.key'}}</div>
+      {{#if model.api_key}}
+        <div class='long-value'>
+          {{model.api_key.key}}
+          {{d-button action="regenerateApiKey" icon="undo" label="admin.api.regenerate"}}
+          {{d-button action="revokeApiKey" icon="times" label="admin.api.revoke"}}
+        </div>
+      {{else}}
+        <div class='value'>
+          &mdash;
+        </div>
+        <div class='controls'>
+          {{d-button action="generateApiKey" icon="key" label="admin.api.generate"}}
+        </div>
+      {{/if}}
+    </div>
+  {{/if}}
 
   <div class='display-row'>
     <div class='field'>{{i18n 'admin.user.admin'}}</div>
diff --git a/app/serializers/admin_detailed_user_serializer.rb b/app/serializers/admin_detailed_user_serializer.rb
index 02c84bd00..29a93fc2c 100644
--- a/app/serializers/admin_detailed_user_serializer.rb
+++ b/app/serializers/admin_detailed_user_serializer.rb
@@ -65,7 +65,7 @@ class AdminDetailedUserSerializer < AdminUserSerializer
   end
 
   def include_api_key?
-    api_key.present?
+    scope.is_admin? && api_key.present?
   end
 
   def suspended_by