Index: waeup_product/trunk/Extensions/install.py
===================================================================
--- waeup_product/trunk/Extensions/install.py	(revision 83)
+++ waeup_product/trunk/Extensions/install.py	(revision 84)
@@ -3,4 +3,6 @@
 from Products.CPSInstaller.CPSInstaller import CPSInstaller
 from Products.CMFCore.CMFCorePermissions import View, ModifyPortalContent
+from Products.WAeUP.WAeUPPermissions import UniversityManage, StudentManage,FacultyManage,\
+                                            DepartmentManage,CourseManage
 try:
   from Products.CPSSubscriptions.permissions import CanNotifyContent
@@ -28,8 +30,41 @@
         self.log("Starting %(product_name)s install" % vars() )
     
-        ##########################################
-        # Actions ###(
-        ##########################################
-        if CPSSubscriptions:
+        # Roles and Permissions
+        #
+        self.verifyRoles((
+            # A role that can manage the University.
+            'UniversityManager',
+            # A role that can manage the StudentsRecords.
+            'StudentManager',
+            # A role that can manage a Faculty.
+            'FacultyManager',
+            # A role that can manage a department.
+            'DepartmentManager',
+            # A role that can manage a Course.
+            'CourseManager',
+        ))
+        waeup_perms = {
+            UniversityManage:
+                ('Manager', 'SectionManager','UniversityManager', 
+                 ),
+            StudentManage:
+                ('Manager', 'SectionManager','UniversityManager', 'StudentManager' 
+                 ),
+            FacultyManage:
+                ('Manager', 'SectionManager','UniversityManager', 'FacultyManager' 
+                 ),
+            DepartmentManage:
+                ('Manager', 'SectionManager','UniversityManager', 'DepartmentManager' 
+                 ),
+            CourseManage:
+                ('Manager', 'SectionManager','UniversityManager', 'CourseManager' 
+                 ),
+        }
+        self.setupPortalPermissions(waeup_perms)
+
+        ##########################################
+        # Actions 
+        ##########################################
+        if CPSSubscriptions: ###(
             ptypes = "('Portal', 'CPSMailAccess Message', 'CPSMailAccess Box', 'CPSMailAccess Folder',"\
                      +  "'University', 'StudentsFolder', 'Student', 'Jamb')"
@@ -96,6 +131,48 @@
             self.verifyAction('portal_discussion', **action)
         
-        ##########################################
-        # actions
+###)
+
+        # portlets ###(
+        #
+        portlets = (
+                  {'identifier': 'waeup_main_tabs',
+                  'type': 'Custom Portlet',
+                  'slot': 'main_tabs',
+                  'order': 0,
+                  'render_method': 'portlet_main_navigation',
+                  'Title': 'main tabs',
+                  },
+                  {'identifier': 'waeup_breadcrumbs',
+                  'type': 'Breadcrumbs Portlet',
+                  'slot': 'waeup_breadcrumbs',
+                  'first_item': 2,
+                  'display_site_root': 0,
+                  'Title': 'waeup_breadcrumbs',
+                  'display': 'horizontal_trail',
+                  'display_hidden_folders': 0,
+                  'order': 0,
+                  },
+                  {'identifier': 'waeup_object_actions',
+                  'type': 'Actions Portlet',
+                  'slot': 'waeup_object_actions',
+                  'order': 0,
+                  'categories': ['object'],
+                  'Title': 'waep_manager_actions',
+                  },
+                  {'identifier': 'waeup_left_top',
+                  'type': 'Custom Portlet',
+                  'slot': 'left_top',
+                  'order': 0,
+                  'render_method': 'portlet_session_info',
+                  'Title': 'Session Info',
+                  },
+                )
+        self.verifyPortletContainer(self.portal.sections.waeup)
+        self.verifyPortlets(portlets, self.portal.sections.waeup)
+
+###)
+
+        ##########################################
+        # student actions ###(
         ##########################################
         actions = ( { 'tool'      : 'portal_actions',
@@ -136,4 +213,31 @@
                       },
                       { 'tool'      : 'portal_actions',
+                        'id'        : 'add_faculty',
+                        'name'      : 'Add New Faculty',
+                        'action'    : 'string:${object/absolute_url}/addFaculty',
+                        'permission': (),
+                        'condition' : 'python: member and here.portal_type in ("University",) and "StudentManager" in member.getGroups()',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+                      { 'tool'      : 'portal_actions',
+                        'id'        : 'add_department',
+                        'name'      : 'Add New Department',
+                        'action'    : 'string:${object/absolute_url}/addDepartment',
+                        'permission': (),
+                        'condition' : 'python: member and here.portal_type in ("Faculty",) and "StudentManager" in member.getGroups()',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+                      { 'tool'      : 'portal_actions',
+                        'id'        : 'add_course',
+                        'name'      : 'Add New Course',
+                        'action'    : 'string:${object/absolute_url}/addCourse',
+                        'permission': (),
+                        'condition' : 'python: member and here.portal_type in ("Department",) and "StudentManager" in member.getGroups()',
+                        'category'  : 'student',
+                        'visible'   : 1,
+                      },
+                      { 'tool'      : 'portal_actions',
                         'id'        : 'add_personal',
                         'name'      : 'Add personal Data',
@@ -162,8 +266,10 @@
         self.log("Verifying %(product_name)s skinss" % vars())
         wskins = { 'waeup_default' : 'Products/WAeUP/skins/waeup_default',
+                   'waeup_faculty' : 'Products/WAeUP/skins/waeup_faculty',
                    'waeup_student' : 'Products/WAeUP/skins/waeup_student',
                  }
         self.verifySkins(wskins)
         self.resetSkinCache()
+        
         ##########################################
         # portal types
