Memberships: API to add and retrieve user information
             Create user
             Add SSH key
             Ping clients on mutations

Change-Id: I02799b8b4bc88813afeb306cc122a7eaa4496c3c
diff --git a/core/auth/memberships/memberships-tmpl/user.html b/core/auth/memberships/memberships-tmpl/user.html
index 4d52092..562f27d 100644
--- a/core/auth/memberships/memberships-tmpl/user.html
+++ b/core/auth/memberships/memberships-tmpl/user.html
@@ -2,8 +2,40 @@
     User - {{ .CurrentUser }}
 {{ end }}
 {{- define "content" -}}
+    {{ $currentUser := .CurrentUser }}
+    {{ $isLoggedInUser := .LoggedInUserPage}}
     <h1 class="headline">User: {{ .CurrentUser }}</h1>
+    <p>{{ .Email }}</p>
+    <hr class="divider">
+    <h3>SSH Public keys</h3>
+    <div class="ssh-key-grid">
+        {{ if eq (len .SSHPublicKeys) 0 }}
+            <p>No SSH keys configured.</p>
+        {{ else }}
+            {{ range .SSHPublicKeys }}
+                <div class="ssh-key-item">
+                    {{ if $isLoggedInUser }}
+                        <form action="/user/{{ $currentUser }}/remove-ssh-key" method="post" class="remove-form" data-confirmation-message="Are you sure you want to remove SSH key?">
+                            <input type="hidden" name="ssh-key" value="{{ . }}">
+                            <button class="remove ssh-remove" type="submit">
+                                <div>{{ template "svgIcon" }}</div>
+                            </button>
+                        </form>
+                    {{ end }}
+                    <div class="ssh-key">{{ . }}</div>
+                </div>
+            {{ end }}
+        {{ end }}
+    </div>
     {{ if .LoggedInUserPage }}
+    <hr class="divider">
+    <form action="/user/{{ .CurrentUser }}/ssh-key" method="post">
+        <fieldset class="grid twoone">
+            <input type="text" id="ssh-hey" name="ssh-key" placeholder="Add SSH public key..." required>
+            <button type="submit">Add SSH public key</button>
+        </fieldset>
+    </form>
+    <hr class="divider">
     <form action="/create-group" method="post">
         <fieldset class="grid first">
             <input type="text" id="group-name" name="group-name" placeholder="Group name" required>
@@ -12,6 +44,7 @@
         </fieldset>
     </form>
     {{ end }}
+    <hr class="divider">
 
     <h3>Owner of groups</h3>
     <div class="user-remove">
@@ -44,4 +77,15 @@
             </a>
         {{- end }}
     </div>
+
+    <dialog id="confirmation" close>
+        <article>
+            <h3>Attention</h3>
+            <p id="confirmation-message">Are you sure?</p>
+            <footer>
+                <button id="cancel-button" class="secondary cancel-button">Cancel</button>
+                <button id="confirm-button">Confirm</button>
+            </footer>
+        </article>
+    </dialog>
 {{- end }}