diff --git a/main/badge/assign.php b/main/badge/assign.php index 42a8c77cc02..0cec4829954 100644 --- a/main/badge/assign.php +++ b/main/badge/assign.php @@ -13,7 +13,7 @@ require_once '../inc/global.inc.php'; -if (!api_is_platform_admin(false, true)) { +if (!api_is_platform_admin(false, true) && !api_is_student_boss()) { api_not_allowed(true); } diff --git a/main/mySpace/myStudents.php b/main/mySpace/myStudents.php index 4669da05e7f..842b4b74b8d 100755 --- a/main/mySpace/myStudents.php +++ b/main/mySpace/myStudents.php @@ -356,6 +356,12 @@ function show_image(image,width,height) { Display::return_icon('login_as.png', get_lang('LoginAs'), null, ICON_SIZE_MEDIUM).'  '; } + echo Display::url( + Display::return_icon('skill-badges.png', get_lang('AssignSkill'), null, ICON_SIZE_MEDIUM), + api_get_path(WEB_CODE_PATH) . 'badge/assign.php?' . http_build_query(['user' => $student_id]) + ); + + echo ''; // is the user online ? diff --git a/src/Chamilo/UserBundle/Entity/Repository/UserRepository.php b/src/Chamilo/UserBundle/Entity/Repository/UserRepository.php index da8af80b8f0..ee8155db28e 100644 --- a/src/Chamilo/UserBundle/Entity/Repository/UserRepository.php +++ b/src/Chamilo/UserBundle/Entity/Repository/UserRepository.php @@ -172,4 +172,62 @@ public function getCoachesForSessionCourse(Session $session, Course $course) return $queryBuilder->getQuery()->getResult(); } + + /** + * Get the sessions admins for a user + * @param \Chamilo\UserBundle\Entity\User $user The user + * @return array + */ + public function getSessionAdmins($user) + { + $queryBuilder = $this->createQueryBuilder('u'); + $queryBuilder + ->distinct() + ->innerJoin( + 'ChamiloCoreBundle:SessionRelUser', + 'su', + Join::WITH, + $queryBuilder->expr()->eq('u', 'su.user') + ) + ->innerJoin( + 'ChamiloCoreBundle:SessionRelCourseRelUser', + 'scu', + Join::WITH, + $queryBuilder->expr()->eq('su.session', 'scu.session') + ) + ->where( + $queryBuilder->expr()->eq('scu.user', $user->getId()) + ) + ->andWhere( + $queryBuilder->expr()->eq('su.relationType', SESSION_RELATION_TYPE_RRHH) + ); + + return $queryBuilder->getQuery()->getResult(); + } + + /** + * Get the student bosses for a user + * @param User $user The user + * @return array + */ + public function getStudentBosses($user) + { + $queryBuilder = $this->createQueryBuilder('u'); + $queryBuilder + ->distinct() + ->innerJoin( + 'ChamiloCoreBundle:UserRelUser', + 'uu', + Join::WITH, + $queryBuilder->expr()->eq('u.id', 'uu.friendUserId') + ) + ->where( + $queryBuilder->expr()->eq('uu.relationType', USER_RELATION_TYPE_BOSS) + ) + ->andWhere( + $queryBuilder->expr()->eq('uu.userId', $user->getId()) + ); + + return $queryBuilder->getQuery()->getResult(); + } }