Index: main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.py	(revision 8386)
+++ main/waeup.kofa/trunk/src/waeup/kofa/accesscodes/browser.py	(revision 8387)
@@ -256,5 +256,5 @@
     """Link in upper left box to access code management.
     """
-    grok.order(6)
+    grok.order(4)
     grok.require('waeup.manageACBatches')
 
Index: main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt	(revision 8386)
+++ main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt	(revision 8387)
@@ -82,5 +82,5 @@
             <h5 tal:content="layout/getUserTitle">USERNAME</h5>
             <ul>
-              <tal:left content="structure provider:left" />
+              <tal:left content="structure provider:left_manage" />
             </ul>
           </div>
Index: main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py
===================================================================
--- main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py	(revision 8386)
+++ main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py	(revision 8387)
@@ -41,6 +41,6 @@
 grok.context(IKofaObject) # Make IKofaObject the default context
 
-class LeftSidebar(grok.ViewletManager):
-    grok.name('left')
+class ManageSidebar(grok.ViewletManager):
+    grok.name('left_manage')
 
 class BreadCrumbManager(grok.ViewletManager):
@@ -248,57 +248,4 @@
 #        self.can_import = not ISite.providedBy(self.context)
 
-class LeftSidebarLink(grok.Viewlet):
-    """ An entry on left sidebar.
-
-    This is only a baseclass that won't be rendered actually. Deriving
-    viewlets can override certain values and will be rendered with the
-    values set here as default.
-    """
-    grok.baseclass()
-    grok.viewletmanager(LeftSidebar)
-    grok.context(IKofaObject)
-    grok.order(5)
-    grok.require('waeup.manageAcademics')
-    icon = 'actionicon_modify.png' # File must exist in static/
-    title = 'Text of link'
-
-    @property
-    def url(self):
-        return '@@index'
-
-    @property
-    def icon_url(self):
-        """Get the icon URL.
-        """
-        if self.icon:
-            static = self.view.static
-            if static is None or static.get(self.icon, None) is None:
-                # In derived classes defined in other modules/packages
-                # than w.k.browser, ``static`` might refer to a static dir
-                # local to the derived class' module. As we often like to
-                # get the icons from here
-                # (i.e. waeup.kofa.browser/static), we set the directory
-                # resource appropiately.
-                #
-                # XXX: The hardcoding of 'w.k.browser' should be replaced
-                #      by something smarter.
-                #
-                # TODO: notes in here should go to general documentation.
-                static = queryAdapter(
-                    self.request, Interface, name='waeup.kofa.browser')
-            return static[self.icon]()
-        return
-    
-    # Render link only if url is provided.
-    def render(self):
-        if self.url:
-            if self.icon_url:
-                return u'<li><a href="%s"><img src="%s" /> %s </a></li>' % (
-                    self.url, self.icon_url, self.title)
-            else:
-                return u'<li><a href="%s">%s </a></li>' % (
-                    self.url, self.title)
-        else:
-            return ''
 
 class WidgetsTableRows(grok.Viewlet):
@@ -309,11 +256,8 @@
 
 
-#
-# waeup.kofa.app.University viewlets...
-#
 class Login(grok.Viewlet):
     """This viewlet allows to login in the sidebar.
     """
-    grok.viewletmanager(LeftSidebar)
+    grok.viewletmanager(ManageSidebar)
     grok.context(IKofaObject)
     grok.view(Interface)
@@ -346,17 +290,18 @@
     every page the user is allowed to go to, if the user has also the
     permissions set by `grok.require()`. By default only users with
-    ``waeup.manageAcademics`` permission will see links defined by
+    ``waeup.managePortal`` permission will see links defined by
     this or derivated classes.
     """
-    grok.viewletmanager(LeftSidebar)
+    grok.baseclass()
+    grok.viewletmanager(ManageSidebar)
     grok.context(IKofaObject)
     grok.view(Interface)
-    grok.order(5)
+    grok.order(1)
     # This link is only displayed, if the user is
     # allowed to use it!
-    grok.require('waeup.managePortalConfiguration')
-
-    link = 'configuration'
-    text = _(u'Portal Configuration')
+    grok.require('waeup.managePortal')
+
+    link = 'relative_link'
+    text = _(u'Any link text')
     
     def render(self):
@@ -366,12 +311,62 @@
                 url, text)
 
+class ManagePortalConfiguration(ManageLink):
+    """A link to portal configuration.
+    """
+    grok.order(2)
+    grok.require('waeup.managePortalConfiguration')
+
+    link = 'configuration'
+    text = _(u'Portal Configuration')
+
 class ManageUsersLink(ManageLink):
     """A link to users management, placed in upper left box.
     """
-    grok.order(6)
+    grok.order(2)
     grok.require('waeup.manageUsers')
 
     link = u'users'
     text = _(u'Portal Users')
+
+class ManageDataCenter(ManageLink):
+    """A link to datacenter, placed in upper left box.
+    """
+    grok.order(3)
+    grok.require('waeup.manageDataCenter')
+
+    link = u'datacenter'
+    text = _(u'Data Center')
+
+class MyPreferences(ManageLink):
+    """A link to personal preferences, placed in upper left box.
+    """
+    grok.order(6)
+    grok.require('waeup.Public')
+    text = _(u'My Preferences')
+
+    def render(self):
+        account_object = get_user_account(self.request)
+        if account_object:
+            url = self.view.url(account_object)
+            text = translate(self.text, context=self.request)
+            return u'<li><a href="%s">%s</a></li>' % (
+                    url, text)
+        return ''
+
+class MyRoles(ManageLink):
+    """A link to display site and local roles.
+    """
+    grok.order(7)
+    grok.require('waeup.Public')
+    text = _(u'My Roles')
+
+    def render(self):
+        account_object = get_user_account(self.request)
+        if account_object:
+            url = self.view.url(account_object) + '/my_roles'
+            text = translate(self.text, context=self.request)
+            return u'<li><a href="%s">%s</a></li>' % (
+                    url, text)
+        return ''
 
 class ContactActionButton(ManageActionButton):
@@ -383,47 +378,4 @@
     text = _('Send email')
     target = 'contactuser'
-
-class ManageDataCenter(ManageLink):
-    """A link to datacenter, placed in upper left box.
-    """
-    grok.order(6)
-    grok.require('waeup.manageDataCenter')
-
-    link = u'datacenter'
-    text = _(u'Data Center')
-
-class MyPreferences(LeftSidebarLink):
-    """A link to personal preferences, placed in upper left box.
-    """
-    grok.order(7)
-    grok.require('waeup.Public')
-    title = _(u'My Preferences')
-    icon = ''
-
-    @property
-    def url(self):
-        account_object = get_user_account(self.request)
-        if account_object:
-            return self.view.url(account_object)
-        return
-
-class MyRoles(LeftSidebarLink):
-    """A link to display site and local roles.
-    """
-    grok.order(8)
-    grok.require('waeup.Public')
-    title = _(u'My Roles')
-    icon = ''
-
-    @property
-    def url(self):
-        account_object = get_user_account(self.request)
-        if account_object:
-            return self.view.url(account_object) + '/my_roles'
-        return
-
-#
-# Manage ("Edit settings") actions...
-#
 
 class ManageDataCenterActionButton(ManageActionButton):
