changeset 3865:100be6988bb0 beta

show admin menu and list for users who are admins of repos. - this is consistent with user groups, repo groups displaying. - fixes 403s after you actually delete a repository being it's admin
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 17 May 2013 21:33:24 +0200
parents 1aefa8d864e4
children 1fdec7e3aeb2
files rhodecode/controllers/admin/repos.py rhodecode/lib/auth.py rhodecode/templates/base/base.html
diffstat 3 files changed, 13 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos.py	Fri May 17 21:12:54 2013 +0200
+++ b/rhodecode/controllers/admin/repos.py	Fri May 17 21:33:24 2013 +0200
@@ -133,15 +133,14 @@
         defaults['id_fork_of'] = db_repo.fork.repo_id if db_repo.fork else ''
         return defaults
 
-    @HasPermissionAllDecorator('hg.admin')
     def index(self, format='html'):
         """GET /repos: All items in the collection"""
         # url('repos')
+        repo_list = Repository.query()\
+                                .order_by(func.lower(Repository.repo_name))\
+                                .all()
 
-        c.repos_list = Repository.query()\
-                        .order_by(func.lower(Repository.repo_name))\
-                        .all()
-
+        c.repos_list = RepoList(repo_list, perm_set=['repository.admin'])
         repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list,
                                                    admin=True,
                                                    super_user_actions=True)
--- a/rhodecode/lib/auth.py	Fri May 17 21:12:54 2013 +0200
+++ b/rhodecode/lib/auth.py	Fri May 17 21:33:24 2013 +0200
@@ -403,7 +403,7 @@
         return self.admin
 
     @property
-    def repos_admin(self):
+    def repositories_admin(self):
         """
         Returns list of repositories you're an admin of
         """
--- a/rhodecode/templates/base/base.html	Fri May 17 21:12:54 2013 +0200
+++ b/rhodecode/templates/base/base.html	Fri May 17 21:33:24 2013 +0200
@@ -77,11 +77,14 @@
   </ul>
 </%def>
 
-<%def name="admin_menu_simple(repository_groups=None, user_groups=None)">
+<%def name="admin_menu_simple(repositories=None, repository_groups=None, user_groups=None)">
   <ul>
+   %if repositories:
+      <li>${h.link_to(_('Repositories'),h.url('repos'),class_='repos')}</li>
+   %endif
    %if repository_groups:
       <li>${h.link_to(_('Repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
-   %endif:
+   %endif
    %if user_groups:
       <li>${h.link_to(_('User groups'),h.url('users_groups'),class_='groups')}</li>
    %endif
@@ -311,12 +314,13 @@
               </a>
               ${admin_menu()}
             </li>
-          % elif c.rhodecode_user.repository_groups_admin or c.rhodecode_user.user_groups_admin:
+          % elif c.rhodecode_user.repositories_admin or c.rhodecode_user.repository_groups_admin or c.rhodecode_user.user_groups_admin:
           <li ${is_current('admin')}>
               <a class="menu_link admin childs" title="${_('Admin')}">
                 ${_('Admin')}
               </a>
-              ${admin_menu_simple(c.rhodecode_user.repository_groups_admin,
+              ${admin_menu_simple(c.rhodecode_user.repositories_admin,
+                                  c.rhodecode_user.repository_groups_admin,
                                   c.rhodecode_user.user_groups_admin or h.HasPermissionAny('hg.usergroup.create.true')())}
           </li>
           % endif