if ($role === 'Professor') {
    $componentsScheduled = ComponentDAL::findByModule($module);
    foreach ($componentsScheduled as $componentScheduled) {
        $typeScheduled = $componentScheduled->getType();
        if (!$componentScheduled->getIsResit() && $typeScheduled->getId() == $type) {
            $_SESSION['message']['warning'] = 'An ' . $typeScheduled->getTypeName() . ' has already been scheduled (' . $componentScheduled->getDate() . ') for this module.';
            header('Location: ../administration/schedule');
            die;
        }
    }
    $usersHaveModule = UserHasModuleDAL::findByModule($module);
    if (count($usersHaveModule) == 0) {
        $_SESSION['message']['warning'] = 'There is no student assigned to this module.';
        header('Location: ../administration/schedule');
        die;
    }
    foreach ($usersHaveModule as $userHasModule) {
        $component = new Component(0, 0, $dateSchedule, false);
        $component->setType($type);
        $component->setComponent(0);
        $component->setModule($module);
        $component->setUser($userHasModule->getUserId());
        ComponentDAL::flush($component);
    }
    $_SESSION['message']['success'] = 'Your exam has been scheduled with success.';
    header('Location: ../administration/schedule');
} else {
    // 403
    $_SESSION['message']['danger'] = 'You can\'t access this page.';
    header('Location: ../home');
}