[#3944] Added account preferences menu to subscriptions page

Signed-off-by: Cory Johns <johnsca@geek.net>
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index 5320fc9..a65f31c 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -318,10 +318,13 @@
                     frequency=mb.frequency.unit,
                     artifact=mb.artifact_index_id))
         api_token = M.ApiToken.query.get(user_id=c.user._id)
+        provider = plugin.AuthenticationProvider.get(request)
+        menu = provider.account_navigation()
         return dict(
             subscriptions=subscriptions,
             api_token=api_token,
-            authorized_applications=M.OAuthAccessToken.for_user(c.user))
+            authorized_applications=M.OAuthAccessToken.for_user(c.user),
+            menu=menu)
 
     @h.vardec
     @expose()
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 9c2c3e2..5342068 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -129,6 +129,16 @@
         '''
         raise NotImplemented, 'upload_sshkey'
 
+    def account_navigation(self):
+        return [
+            {
+                'tabid': 'account_sfnet_beta_index',
+                'title': 'Subscriptions',
+                'target': "/auth/prefs",
+                'alt': 'Manage Subscription Preferences',
+            },
+        ]
+
 class LocalAuthenticationProvider(AuthenticationProvider):
     '''
     Stores user passwords on the User model, in mongo.  Uses per-user salt and
diff --git a/Allura/allura/templates/user_preferences.html b/Allura/allura/templates/user_preferences.html
index bed3c8d..874ab16 100644
--- a/Allura/allura/templates/user_preferences.html
+++ b/Allura/allura/templates/user_preferences.html
@@ -6,6 +6,17 @@
 {% block header %}User Preferences for {{c.user.username}}{% endblock %}
 
 {% block content %}
+  <ul id="account-nav-menu" class="b-hornav droppy">
+      {% for item in menu -%}
+      <li id="{{ item.tabid }}">
+      <a href="{{ item.target }}">
+          {{ item.title }}
+          <div class="marker{% if item.target.rstrip('/') == request.path.rstrip('/') %} current{% endif %}"></div>
+      </a>
+      </li>
+      {%- endfor %}
+   </ul>
+
   {% if g.theme.password_change_form %}
   <div class="grid-20">
     <h2>Change Password</h2>