Allow student boss to assign badges to users - Refs BT#10651

pull/2487/head
José Loguercio 9 years ago
parent 15b59216a2
commit d64d55da61
  1. 2
      main/badge/assign.php
  2. 6
      main/mySpace/myStudents.php
  3. 58
      src/Chamilo/UserBundle/Entity/Repository/UserRepository.php

@ -13,7 +13,7 @@ use Chamilo\CoreBundle\Entity\SkillRelUser;
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);
}

@ -356,6 +356,12 @@ if (!empty($student_id)) {
Display::return_icon('login_as.png', get_lang('LoginAs'), null, ICON_SIZE_MEDIUM).'</a>&nbsp;&nbsp;';
}
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 '</div>';
// is the user online ?

@ -172,4 +172,62 @@ class UserRepository extends EntityRepository
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();
}
}

Loading…
Cancel
Save