# HG changeset patch # User Marcin Kuzminski # Date 1360886027 -3600 # Node ID 199fd214b2132bcede9c8a40d8d23dc35a0131b3 # Parent fdb0f59b21891c21c9b71d8d945d096a1f6a665d Show admin dropdown for users who are admin of repo groups diff -r fdb0f59b2189 -r 199fd214b213 rhodecode/lib/auth.py --- a/rhodecode/lib/auth.py Thu Feb 14 23:34:59 2013 +0100 +++ b/rhodecode/lib/auth.py Fri Feb 15 00:53:47 2013 +0100 @@ -401,6 +401,22 @@ return self.admin @property + def repos_admin(self): + """ + Returns list of repositories you're an admin of + """ + return [x[0] for x in self.permissions['repositories'].iteritems() + if x[1] == 'repository.admin'] + + @property + def groups_admin(self): + """ + Returns list of repositories groups you're an admin of + """ + return [x[0] for x in self.permissions['repositories_groups'].iteritems() + if x[1] == 'group.admin'] + + @property def ip_allowed(self): """ Checks if ip_addr used in constructor is allowed from defined list of diff -r fdb0f59b2189 -r 199fd214b213 rhodecode/templates/admin/repos_groups/repos_groups_edit.html --- a/rhodecode/templates/admin/repos_groups/repos_groups_edit.html Thu Feb 14 23:34:59 2013 +0100 +++ b/rhodecode/templates/admin/repos_groups/repos_groups_edit.html Fri Feb 15 00:53:47 2013 +0100 @@ -23,7 +23,7 @@ ${self.breadcrumbs()} diff -r fdb0f59b2189 -r 199fd214b213 rhodecode/templates/admin/repos_groups/repos_groups_show.html --- a/rhodecode/templates/admin/repos_groups/repos_groups_show.html Thu Feb 14 23:34:59 2013 +0100 +++ b/rhodecode/templates/admin/repos_groups/repos_groups_show.html Fri Feb 15 00:53:47 2013 +0100 @@ -19,7 +19,9 @@ ${self.breadcrumbs()} diff -r fdb0f59b2189 -r 199fd214b213 rhodecode/templates/base/base.html --- a/rhodecode/templates/base/base.html Thu Feb 14 23:34:59 2013 +0100 +++ b/rhodecode/templates/base/base.html Fri Feb 15 00:53:47 2013 +0100 @@ -234,24 +234,36 @@ %endif % if h.HasPermissionAll('hg.admin')('access admin main page'): -
  • - ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')} - <%def name="admin_menu()"> - - - ## ADMIN MENU - ${admin_menu()} -
  • +
  • + ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')} + <%def name="admin_menu()"> + + + ## ADMIN MENU + ${admin_menu()} +
  • + ## if you're a admin of any groups, show admin menu for it + % elif c.rhodecode_user.groups_admin: +
  • + ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')} + <%def name="admin_menu_simple()"> + + + ## ADMIN MENU + ${admin_menu_simple()} +
  • % endif @@ -322,7 +334,7 @@ ${_('Search')} - %if h.HasPermissionAll('hg.admin')('access admin main page'): + % if h.HasPermissionAll('hg.admin')('access admin main page'):
  • @@ -332,7 +344,17 @@ ${admin_menu()}
  • - %endif + % elif c.rhodecode_user.groups_admin: +
  • + + + ${_('Admin')} + + ${_('Admin')} + + ${admin_menu_simple()} +
  • + % endif ${usermenu()} %endif