Index: /main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 18100)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 18101)
@@ -792,10 +792,10 @@
     """ Page to display the student's transcript.
     """
-#    grok.require('waeup.viewStudent')
+    grok.require('waeup.viewStudent')
 
 class CustomExportPDFTranscriptSlip(ExportPDFTranscriptSlip):
     """Deliver a PDF slip of the context.
     """
-#    grok.require('waeup.viewStudent')
+    grok.require('waeup.viewStudent')
 
     def _sigsInFooter(self):
Index: /main/waeup.uniben/trunk/src/waeup/uniben/students/student.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/students/student.py	(revision 18100)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/students/student.py	(revision 18101)
@@ -21,9 +21,10 @@
 import grok
 from zope.interface import implementedBy
+from zope.component import getUtility
 from waeup.kofa.interfaces import (
     CLEARANCE, REQUESTED, GRADUATED, TRANSREL, TRANSVAL)
 from waeup.kofa.utils.helpers import attrs_to_fields
 from waeup.kofa.students.student import StudentFactory
-from waeup.kofa.students.interfaces import IStudentNavigation
+from waeup.kofa.students.interfaces import IStudentNavigation, IStudentsUtils
 from waeup.kofa.utils.helpers import get_current_principal
 from kofacustom.nigeria.students.student import NigeriaStudent
@@ -44,9 +45,16 @@
     @property
     def transcript_enabled(self):
-        return True
         #user = get_current_principal()
         #if user.id in ('admin', 'isouaba', 'med', 'zope.mgr'):
         #    return True
-        #return False
+        final_clearance_enabled = getUtility(
+            IStudentsUtils).final_clearance_enabled(self)
+        if not final_clearance_enabled:
+            return False
+        if self.current_mode != 'ug_ft':
+            return False
+        if self.faccode in ('EDU', 'MED', 'DEN'):
+            return False
+        return True
 
     @property
Index: /main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py
===================================================================
--- /main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 18100)
+++ /main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 18101)
@@ -1075,12 +1075,26 @@
         self.browser.getControl(name="form.password").value = 'spwd'
         self.browser.getControl("Login").click()
+
         # Students can't open the pdf transcript ...
+        #transcript_path = self.student_path + '/studycourse/transcript'
+        #self.assertRaises(
+        #    Unauthorized, self.browser.open, transcript_path)
+        # ... but managers can
+        #self.browser.open(self.student_path)
+        #self.browser.getLink("Logout").click()
+        #self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+        #self.browser.open(transcript_path)
+        #self.assertEqual(self.browser.headers['Status'], '200 Ok')
+        #self.assertTrue('Transcript' in self.browser.contents)
+        #self.browser.open(self.student_path + '/studycourse/transcript.pdf')
+        #self.assertEqual(self.browser.headers['Status'], '200 Ok')
+        #self.assertEqual(self.browser.headers['Content-Type'], 'application/pdf')
+        #path = os.path.join(samples_dir(), 'transcript.pdf')
+        #open(path, 'wb').write(self.browser.contents)
+        #print "Sample PDF transcript.pdf written to %s" % path
+
+        # Students and officers can open the pdf transcript ...
+        self.student['studycourse'].current_level = 500
         transcript_path = self.student_path + '/studycourse/transcript'
-        self.assertRaises(
-            Unauthorized, self.browser.open, transcript_path)
-        # ... but managers can
-        self.browser.open(self.student_path)
-        self.browser.getLink("Logout").click()
-        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
         self.browser.open(transcript_path)
         self.assertEqual(self.browser.headers['Status'], '200 Ok')
