Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/exceptions.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/exceptions.py	(revision 6654)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/exceptions.py	(revision 6655)
@@ -78,5 +78,5 @@
     def update(self):
         try:
-            self.context = self.context.getObject()
+            self.context = self.context = grok.getSite()
         except:
             pass
Index: main/waeup.sirp/trunk/src/waeup/sirp/permissions.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/permissions.py	(revision 6654)
+++ main/waeup.sirp/trunk/src/waeup/sirp/permissions.py	(revision 6655)
@@ -37,10 +37,4 @@
     grok.name('waeup.managePortalSettings')
 
-class ViewStudents(grok.Permission):
-    grok.name('waeup.viewStudents')
-
-class ManageStudents(grok.Permission):
-    grok.name('waeup.manageStudents')
-
 # Local Roles
 class DepartmentOfficer(grok.Role):
@@ -48,4 +42,16 @@
     grok.title(u'Department Officer')
     grok.permissions('waeup.manageUniversity','waeup.View', 'waeup.Public')
+
+class ClearanceOfficer(grok.Role):
+    grok.name('waeup.local.ClearanceOfficer')
+    grok.title(u'Clearance Officer')
+    # to be further defined
+    grok.permissions('waeup.View', 'waeup.Public')
+
+class CourseAdviser(grok.Role):
+    grok.name('waeup.local.CourseAdviser')
+    grok.title(u'Course Adviser')
+    # to be further defined
+    grok.permissions('waeup.View', 'waeup.Public')
 
 # Global Roles
Index: main/waeup.sirp/trunk/src/waeup/sirp/permissions.txt
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/permissions.txt	(revision 6654)
+++ main/waeup.sirp/trunk/src/waeup/sirp/permissions.txt	(revision 6655)
@@ -39,8 +39,8 @@
     >>> from waeup.sirp.permissions import getWAeUPRoles
     >>> len(list(getWAeUPRoles()))
-    3
+    4
 
     >>> len(list(getWAeUPRoles(also_local=True)))
-    5
+    8
 
 
@@ -53,5 +53,5 @@
     >>> from waeup.sirp.permissions import getWAeUPRoleNames
     >>> list(getWAeUPRoleNames())
-    [u'waeup.ApplicationsOfficer', u'waeup.PortalManager', u'waeup.PortalUser']
+    [u'waeup.ApplicationsOfficer', u'waeup.PortalManager', u'waeup.PortalUser', u'waeup.StudentsOfficer']
 
 :func:`get_users_with_local_roles`
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/permissions.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/permissions.py	(revision 6655)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/permissions.py	(revision 6655)
@@ -0,0 +1,34 @@
+## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+"""
+Permissions for the student section.
+"""
+import grok
+
+# Student section permissions
+
+class ViewStudents(grok.Permission):
+    grok.name('waeup.viewStudents')
+
+class ManageStudents(grok.Permission):
+    grok.name('waeup.manageStudents')
+
+# Global Roles
+class StudentsOfficer(grok.Role):
+    grok.name('waeup.StudentsOfficer')
+    grok.title(u'Students Officer')
+    grok.permissions('waeup.View', 'waeup.Public',
+                     'waeup.viewStudents', 'waeup.manageStudents')
Index: main/waeup.sirp/trunk/src/waeup/sirp/university/department.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/university/department.py	(revision 6654)
+++ main/waeup.sirp/trunk/src/waeup/sirp/university/department.py	(revision 6655)
@@ -15,5 +15,5 @@
     @property       # Make this method read_only and looking like an attr.
     def local_roles(cls):
-        return ['waeup.local.DepartmentOfficer']
+        return ['waeup.local.DepartmentOfficer', 'waeup.local.ClearanceOfficer']
 
     # A simple counter for ids.
Index: main/waeup.sirp/trunk/src/waeup/sirp/university/faculty.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/university/faculty.py	(revision 6654)
+++ main/waeup.sirp/trunk/src/waeup/sirp/university/faculty.py	(revision 6655)
@@ -16,5 +16,5 @@
     @property       # Make this method read_only and looking like an attr.
     def local_roles(cls):
-        return ['waeup.local.DepartmentOfficer']
+        return ['waeup.local.DepartmentOfficer', 'waeup.local.ClearanceOfficer']
 
     def __init__(self,
