Index: main/waeup.uniben/trunk/src/waeup/uniben/browser/pdf.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/browser/pdf.py	(revision 16905)
+++ main/waeup.uniben/trunk/src/waeup/uniben/browser/pdf.py	(revision 16906)
@@ -28,12 +28,20 @@
     """
 
-    header_logo_path = os.path.join(
-        os.path.dirname(__file__), 'static', 'pdf_logo.jpg')
-    watermark_path = os.path.join(
-        os.path.dirname(__file__), 'static', 'pdf_watermark.jpg')
-
     watermark_pos = [-25, 100]
     logo_pos = [507, 720, 40]
 
+    header_logo_path = os.path.join(
+        os.path.dirname(__file__), 'static', 'pdf_logo.jpg')
+
+    @property
+    def watermark_path(self):
+        if self.view and self.view.__name__ == 'transcript.pdf':
+            usertype = getattr(self.view.request.principal, 'user_type', None)
+            if usertype and usertype == 'student':
+                self.watermark_pos = [95, 190]
+                return os.path.join(
+                    os.path.dirname(__file__), 'static', 'pdf_stud_only.jpg')
+        return os.path.join(
+            os.path.dirname(__file__), 'static', 'pdf_watermark.jpg')
 
 class CustomLandscapePDFCreator(LandscapePDFCreator):
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 16905)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/browser.py	(revision 16906)
@@ -40,5 +40,6 @@
     PaymentsManageFormPage,
     StartClearancePage,
-    StudentFilesUploadPage)
+    StudentFilesUploadPage,
+    StudyCourseTranscriptPage)
 from waeup.kofa.students.workflow import (CREATED, ADMITTED, PAID,
     CLEARANCE, REQUESTED, RETURNING, CLEARED, REGISTERED, VALIDATED,
@@ -704,7 +705,13 @@
         return
 
+class CustomStudyCourseTranscriptPage(StudyCourseTranscriptPage):
+    """ Page to display the student's transcript.
+    """
+    grok.require('waeup.viewStudent')
+
 class CustomExportPDFTranscriptSlip(ExportPDFTranscriptSlip):
     """Deliver a PDF slip of the context.
     """
+    grok.require('waeup.viewStudent')
 
     def _sigsInFooter(self):
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 16905)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/tests/test_browser.py	(revision 16906)
@@ -1009,5 +1009,8 @@
         self.assertEqual(td[0][1]['tickets_1'][0].code, 'ANYCODE')
         self.assertEqual(td[1], 3.5652173913043477)
-        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+        self.browser.open(self.login_path)
+        self.browser.getControl(name="form.login").value = self.student_id
+        self.browser.getControl(name="form.password").value = 'spwd'
+        self.browser.getControl("Login").click()
         self.browser.open(self.student_path + '/studycourse/transcript')
         self.assertEqual(self.browser.headers['Status'], '200 Ok')
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 16905)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/utils.py	(revision 16906)
@@ -645,5 +645,6 @@
             pdf_stream = creator.create_pdf(
                 data, None, doc_title, author=author, footer=footer_text,
-                note=note, sigs_in_footer=sigs_in_footer, topMargin=topMargin)
+                note=note, sigs_in_footer=sigs_in_footer, topMargin=topMargin,
+                view=view)
         except IOError:
             view.flash(_('Error in image file.'))
Index: main/waeup.uniben/trunk/src/waeup/uniben/students/viewlets.py
===================================================================
--- main/waeup.uniben/trunk/src/waeup/uniben/students/viewlets.py	(revision 16905)
+++ main/waeup.uniben/trunk/src/waeup/uniben/students/viewlets.py	(revision 16906)
@@ -29,5 +29,7 @@
     StudentBaseDisplayFormPage, OnlinePaymentDisplayFormPage)
 from waeup.kofa.students.viewlets import (
-    RequestTranscriptActionButton, StudentPassportActionButton)
+    RequestTranscriptActionButton, StudentPassportActionButton,
+    TranscriptSlipActionButton,
+    StudyCourseTranscriptActionButton)
 
 from waeup.uniben.students.interfaces import (
@@ -44,4 +46,10 @@
     def target_url(self):
         return ''
+
+class TranscriptSlipActionButton(TranscriptSlipActionButton):
+    grok.require('waeup.viewStudent')
+
+class StudyCourseTranscriptActionButton(StudyCourseTranscriptActionButton):
+    grok.require('waeup.viewStudent')
 
 class StudentPassportActionButton(StudentPassportActionButton):
