Memebrships: Refactor Store interface

Use unified memberships table.
Add few internal API endpoints.

Change-Id: I80ac5a0f5c262e04d7898cca571b938a35d68d39
diff --git a/core/auth/memberships/memberships-tmpl/user.html b/core/auth/memberships/memberships-tmpl/user.html
index 562f27d..eda7eb5 100644
--- a/core/auth/memberships/memberships-tmpl/user.html
+++ b/core/auth/memberships/memberships-tmpl/user.html
@@ -1,11 +1,11 @@
 {{ define "title" }}
-    User - {{ .CurrentUser }}
+    User - {{ .User.Username }}
 {{ end }}
 {{- define "content" -}}
-    {{ $currentUser := .CurrentUser }}
+    {{ $currentUserId := .User.Id }}
     {{ $isLoggedInUser := .LoggedInUserPage}}
-    <h1 class="headline">User: {{ .CurrentUser }}</h1>
-    <p>{{ .Email }}</p>
+    <h1 class="headline">User: {{ .User.Username }}</h1>
+    <p>{{ .User.Email }}</p>
     <hr class="divider">
     <h3>SSH Public keys</h3>
     <div class="ssh-key-grid">
@@ -15,7 +15,7 @@
             {{ 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?">
+                        <form action="/user/{{ $currentUserId }}/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>
@@ -29,7 +29,7 @@
     </div>
     {{ if .LoggedInUserPage }}
     <hr class="divider">
-    <form action="/user/{{ .CurrentUser }}/ssh-key" method="post">
+    <form action="/user/{{ .User.Id }}/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>
@@ -38,7 +38,8 @@
     <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>
+            <input type="text" id="id" name="id" placeholder="Id" required>
+			<input type="text" id="title" name="title" placeholder="Title" required>
             <input type="text" id="description" name="description" placeholder="Description">
             <button type="submit">Create Group</button>
         </fieldset>
@@ -49,9 +50,9 @@
     <h3>Owner of groups</h3>
     <div class="user-remove">
         {{- range .OwnerGroups }}
-            <a href="/group/{{ .Name }}" role="button" 
+            <a href="/group/{{ .Id }}" role="button" 
                 {{ if ne .Description "" }} data-tooltip="{{ .Description }}" data-placement="bottom" {{ end }}>
-                {{ .Name }}
+                {{ .Title }}
             </a>
         {{- end }}
     </div>
@@ -60,9 +61,9 @@
     <h3>Direct member of groups</h3>
     <div class="user-remove">
         {{- range .MembershipGroups }}
-            <a href="/group/{{ .Name }}" role="button" 
+            <a href="/group/{{ .Id }}" role="button" 
                 {{ if ne .Description "" }} data-tooltip="{{ .Description }}" data-placement="bottom" {{ end }}>
-                {{ .Name }}
+                {{ .Title }}
             </a>
         {{- end }}
     </div>
@@ -71,9 +72,9 @@
     <h3>Transitive member of groups</h3>
     <div class="user-remove">
         {{- range .TransitiveGroups -}}
-            <a href="/group/{{ .Name }}" role="button" 
+            <a href="/group/{{ .Id }}" role="button" 
                {{ if ne .Description "" }} data-tooltip="{{ .Description }}" data-placement="bottom" {{ end }}>
-               {{ .Name }}
+               {{ .Title }}
             </a>
         {{- end }}
     </div>