Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/browser.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/browser.py	(revision 13855)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/browser.py	(revision 13856)
@@ -19,4 +19,5 @@
 from zope.formlib.textwidgets import BytesDisplayWidget
 from zope.component import getUtility
+from zope.security import checkPermission
 from zope.i18n import translate
 from datetime import datetime
@@ -350,8 +351,5 @@
 
     def _sigsInFooter(self):
-
-        isStudent = getattr(
-            self.request.principal, 'user_type', None) == 'student'
-        if isStudent:
+        if not checkPermission('waeup.clearStudentFinancially', self.context):
             return ()
         return (_('Date, Checking Officer Signature'),
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/permissions.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/permissions.py	(revision 13855)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/permissions.py	(revision 13856)
@@ -30,17 +30,10 @@
 
 
-class BursaryOfficer(grok.Role):
-    """Financial Clearance Officers (aka Bursary Officers)
-    can export bursary data. They can't access the
-    Data Center but see student data export buttons in the Academic Section.
-
-    This role overwrites the same-named role in waeup.kofa. In
-    kofacustom.nigeria bursary officers are also allowed to clear
-    students financially.
+class FinancialClearanceOfficer(grok.Role):
+    """Financial Clearance Officers are also allowed to clear
+    students financially. Usually this role is assigned together
+    with the BursaryOfficer role and the StudentsOfficer role.
     """
-    grok.name('waeup.BursaryOfficer')
-    grok.title(u'Bursary Officer')
-    grok.permissions('waeup.showStudents',
-                     'waeup.viewAcademics',
-                     'waeup.exportBursaryData',
-                     'waeup.clearStudentFinancially')
+    grok.name('waeup.FinancialClearanceOfficer')
+    grok.title(u'Financial Clearance Officer')
+    grok.permissions('waeup.clearStudentFinancially')
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/tests/test_browser.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/tests/test_browser.py	(revision 13855)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/tests/test_browser.py	(revision 13856)
@@ -361,4 +361,7 @@
         # Assign BursaryOfficer role
         prmglobal.assignRoleToPrincipal('waeup.BursaryOfficer', 'mrbursary')
+        # and FinancialClearanceOfficer role
+        prmglobal.assignRoleToPrincipal(
+            'waeup.FinancialClearanceOfficer', 'mrbursary')
         # Login
         self.browser.open(self.login_path)
@@ -373,6 +376,4 @@
         # BO can view student record
         self.browser.open(self.student_path)
-        prmglobal.assignRoleToPrincipal('waeup.BursaryOfficer', 'mrbursary')
-        self.browser.open(self.student_path)
         # BO can see clearance button ...
         self.assertTrue(
@@ -420,5 +421,5 @@
             self.browser.contents)
 
-    def test_bursary_pdf_slip(self):
+    def test_fiancial_clearance_pdf_slip(self):
         payment1 = createObject(u'waeup.StudentOnlinePayment')
         timestamp = ("%d" % int(time()*10000))[1:]
Index: main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/viewlets.py
===================================================================
--- main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/viewlets.py	(revision 13855)
+++ main/kofacustom.nigeria/trunk/src/kofacustom/nigeria/students/viewlets.py	(revision 13856)
@@ -38,7 +38,7 @@
     return False
 
-# Bursery officer buttons
-
-class StudentClearActionButton(ManageActionButton):
+# Financial Clearance Officer buttons
+
+class StudentFinanciallyClearActionButton(ManageActionButton):
     grok.order(10)
     grok.context(INigeriaStudent)
@@ -55,5 +55,5 @@
         return self.view.url(self.view.context, self.target)
 
-class StudentWithdrawClearanceActionButton(ManageActionButton):
+class StudentWithdrawFinancialClearanceActionButton(ManageActionButton):
     grok.order(11)
     grok.context(INigeriaStudent)
