Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageCourses.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageCourses.java	(revision 272178e3df8afdaceb366fa8f11ff27bd2dd5c4d)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageCourses.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
@@ -27,4 +27,5 @@
 import info.ajanovski.eprms.tap.annotations.AdministratorPage;
 import info.ajanovski.eprms.tap.annotations.InstructorPage;
+import info.ajanovski.eprms.tap.services.CourseManager;
 import info.ajanovski.eprms.tap.services.GenericService;
 import info.ajanovski.eprms.tap.services.PersonManager;
@@ -47,4 +48,7 @@
 	private GenericService genericService;
 
+	@Inject
+	private CourseManager courseManager;
+
 	@Property
 	private Course course;
@@ -74,14 +78,5 @@
 
 	public List<Course> getAllCourses() {
-		List<Course> lista = (List<Course>) genericService.getAll(Course.class);
-		if (userInfo.isInstructor() && !userInfo.isAdministrator()) {
-			lista = lista.stream()
-					.filter(p -> p.getCourseTeachers().stream()
-							.anyMatch(q -> q.getTeacher().getPersonId() == userInfo.getPersonId()))
-					.collect(Collectors.toList());
-		}
-		CourseComparator cc = new CourseComparator();
-		Collections.sort(lista, cc);
-		return lista;
+		return courseManager.getAllCoursesByPerson(userInfo.getPersonId());
 	}
 
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageProjects.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageProjects.java	(revision 272178e3df8afdaceb366fa8f11ff27bd2dd5c4d)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageProjects.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
@@ -55,4 +55,5 @@
 import info.ajanovski.eprms.tap.annotations.AdministratorPage;
 import info.ajanovski.eprms.tap.annotations.InstructorPage;
+import info.ajanovski.eprms.tap.services.CourseManager;
 import info.ajanovski.eprms.tap.services.GenericService;
 import info.ajanovski.eprms.tap.services.ProjectManager;
@@ -75,4 +76,7 @@
 	@Inject
 	private ProjectManager projectManager;
+
+	@Inject
+	private CourseManager courseManager;
 
 	@Inject
@@ -232,14 +236,5 @@
 
 	public List<Course> getAllCourses() {
-		List<Course> lista = (List<Course>) genericService.getAll(Course.class);
-		if (userInfo.isInstructor() && !userInfo.isAdministrator()) {
-			lista = lista.stream()
-					.filter(p -> p.getCourseTeachers().stream()
-							.anyMatch(q -> q.getTeacher().getPersonId() == userInfo.getPersonId()))
-					.collect(Collectors.toList());
-		}
-		CourseComparator cc = new CourseComparator();
-		Collections.sort(lista, cc);
-		return lista;
+		return courseManager.getAllCoursesByPerson(userInfo.getPersonId());
 	}
 
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/CourseManager.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/CourseManager.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/CourseManager.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
@@ -0,0 +1,9 @@
+package info.ajanovski.eprms.tap.services;
+
+import java.util.List;
+
+import info.ajanovski.eprms.model.entities.Course;
+
+public interface CourseManager {
+	public List<Course> getAllCoursesByPerson(long personId);
+}
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/CourseManagerImpl.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/CourseManagerImpl.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/CourseManagerImpl.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
@@ -0,0 +1,34 @@
+package info.ajanovski.eprms.tap.services;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.tapestry5.ioc.annotations.Inject;
+
+import info.ajanovski.eprms.model.entities.Course;
+import info.ajanovski.eprms.model.entities.Person;
+import info.ajanovski.eprms.model.util.CourseComparator;
+
+public class CourseManagerImpl implements CourseManager {
+
+	@Inject
+	private PersonManager personManager;
+
+	@Inject
+	private GenericService genericService;
+
+	@Override
+	public List<Course> getAllCoursesByPerson(long personId) {
+		List<Course> lista = (List<Course>) genericService.getAll(Course.class);
+		if (personManager.isInstructor(personId) && !personManager.isAdministrator(personId)) {
+			lista = lista.stream()
+					.filter(p -> p.getCourseTeachers().stream().anyMatch(q -> q.getTeacher().getPersonId() == personId))
+					.collect(Collectors.toList());
+		}
+		CourseComparator cc = new CourseComparator();
+		Collections.sort(lista, cc);
+		return lista;
+	}
+
+}
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/PersonManager.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/PersonManager.java	(revision 272178e3df8afdaceb366fa8f11ff27bd2dd5c4d)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/PersonManager.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
@@ -44,6 +44,10 @@
 
 	public List<Person> getAllPersonsFromRole(String roleName);
-	
-	
+
+	public boolean isInstructor(long personId);
+
+	public boolean isStudent(long personId);
+
+	public boolean isAdministrator(long personId);
 
 }
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/PersonManagerImpl.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/PersonManagerImpl.java	(revision 272178e3df8afdaceb366fa8f11ff27bd2dd5c4d)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/PersonManagerImpl.java	(revision 08cb96a91c722fe1e857a8ccbd63d1926bfbbeb6)
@@ -28,5 +28,7 @@
 import info.ajanovski.eprms.model.entities.PersonRole;
 import info.ajanovski.eprms.model.entities.Role;
+import info.ajanovski.eprms.model.util.ModelConstants;
 import info.ajanovski.eprms.tap.data.PersonDao;
+import info.ajanovski.eprms.tap.util.UserInfo.UserRole;
 
 public class PersonManagerImpl implements PersonManager {
@@ -81,3 +83,21 @@
 	}
 
+	@Override
+	public boolean isInstructor(long personId) {
+		List<Role> userRoles = getRolesForPerson(personId);
+		return userRoles.stream().anyMatch(p -> p.getName().equals(ModelConstants.RoleInstructor));
+	}
+
+	@Override
+	public boolean isStudent(long personId) {
+		List<Role> userRoles = getRolesForPerson(personId);
+		return userRoles.stream().anyMatch(p -> p.getName().equals(ModelConstants.RoleStudent));
+	}
+
+	@Override
+	public boolean isAdministrator(long personId) {
+		List<Role> userRoles = getRolesForPerson(personId);
+		return userRoles.stream().anyMatch(p -> p.getName().equals(ModelConstants.RoleAdministrator));
+	}
+
 }
