Пример #1
0
require_once 'include/Subscription.inc.php';
require_once ROOT_DIR . '/include/Forms/UserFindForm.inc.php';
/*
 * YOUR CODE HERE
 */
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
    $canSubscribeUser = false;
    if ($courseInstanceObj instanceof Course_instance && $courseInstanceObj->isFull()) {
        $startStudentLevel = $courseInstanceObj->start_level_student;
    }
    if (isset($_POST['findByUsername'])) {
        $form = new UserFindForm();
        $form->fillWithPostData();
        if ($form->isValid()) {
            $courseInstanceId = $_POST['id_course_instance'];
            $subscriberObj = MultiPort::findUserByUsername($_POST['username']);
            $canSubscribeUser = false;
            if ($subscriberObj instanceof ADAUser) {
                $result = $dh->student_can_subscribe_to_course_instance($subscriberObj->getId(), $courseInstanceId);
                if (!AMA_DataHandler::isError($result) && $result !== false) {
                    $canSubscribeUser = $courseInstanceObj instanceof Course_instance && $courseInstanceObj->isFull() && $courseInstanceObj->getServiceLevel() != ADA_SERVICE_TUTORCOMMUNITY;
                }
            } else {
                if ($subscriberObj instanceof ADAPractitioner) {
                    /**
                     * @author giorgio 14/apr/2015
                     * 
                     * If the switcher is trying to subscribe a tutor, do it only
                     * if the course instance belongs to a service of type 
                     * ADA_SERVICE_TUTORCOMMUNITY
                     */
Пример #2
0
    if (count($errorsAr) > 0) {
        $tester_dataAr = $_POST;
        $testersAr = array();
        $form = AdminModuleHtmlLib::getAddTesterForm($testersAr, $tester_dataAr, $errorsAr);
    } else {
        unset($_POST['submit']);
        $tester_dataAr = $_POST;
        $result = $common_dh->add_tester($tester_dataAr);
        if (AMA_Common_DataHandler::isError($result)) {
            $errObj = new ADA_Error($result);
            $form = new CText('');
        } else {
            $adminUsersArr = $common_dh->get_users_by_type(array(AMA_TYPE_ADMIN));
            if (!AMA_DB::isError($adminUsersArr) && is_array($adminUsersArr) && count($adminUsersArr) > 0) {
                foreach ($adminUsersArr as $adminUser) {
                    $adminUserObj = MultiPort::findUserByUsername($adminUser['username']);
                    $common_dh->add_user_to_tester($adminUserObj->getId(), $result);
                }
            }
            header('Location: ' . $userObj->getHomePage());
            exit;
        }
    }
} else {
    /*
     * Display the add user form
     */
    $testersAr = array();
    $form = AdminModuleHtmlLib::getAddTesterForm($testersAr);
}
$label = translateFN("Aggiunta tester");
Пример #3
0
 /**
  * adds a user whose data are coming from the login provider to the proper ADA DB
  * 
  * @param array $userArr array of user data to be added
  * @param function $successCallback callback function accepting a ADALoggableUser parameter to be called just before returning 
  * @param function $errorCallback callback function accepting no parameters to be called just before redirecting
  * 
  * @return ADALoggableUser|null (redirects if MultiPort::addUser fails)
  * 
  * @access public
  */
 public function addADAUser($userArr, $successCallback = null, $errorCallback = null)
 {
     /**
      * build user object
      */
     $userObj = new ADAUser($userArr);
     $userObj->setLayout('');
     $userObj->setType(isset($userArr['tipo']) ? $userArr['tipo'] : AMA_TYPE_STUDENT);
     $userObj->setStatus(ADA_STATUS_REGISTERED);
     $userObj->setPassword(sha1(time()));
     // force unguessable password
     /**
      * save the user in the appropriate provider
      */
     if (!MULTIPROVIDER && isset($GLOBALS['user_provider'])) {
         $regProvider = array($GLOBALS['user_provider']);
     } else {
         $regProvider = array(ADA_PUBLIC_TESTER);
     }
     $id_user = Multiport::addUser($userObj, $regProvider);
     if ($id_user < 0) {
         if (!is_null($errorCallback)) {
             call_user_func($errorCallback);
         }
         $message = translateFN('Impossibile procedere. Un utente con questi dati esiste?') . ' ' . urlencode($userObj->getEmail());
         header('Location:' . HTTP_ROOT_DIR . '/browsing/registration.php?message=' . $message);
         exit;
     } else {
         /**
          * reload user object just to double check
          */
         $retObj = MultiPort::findUserByUsername($userArr['username']);
         if (!is_null($successCallback)) {
             call_user_func($successCallback, $retObj);
         }
         return $retObj;
     }
 }
Пример #4
0
 $alreadySubscribed = 0;
 $notStudents = 0;
 $subscribers = count($usersToSubscribe);
 $admtypeAr = array(AMA_TYPE_ADMIN);
 $admList = $common_dh->get_users_by_type($admtypeAr);
 if (!AMA_DataHandler::isError($admList)) {
     $adm_uname = $admList[0]['username'];
 } else {
     $adm_uname = '';
     // ??? FIXME: serve un superadmin nel file di config?
 }
 $courseTitle = $courseObj->getTitle();
 foreach ($usersToSubscribe as $subscriber) {
     $canSubscribeUser = false;
     $userDataAr = explode(',', $subscriber);
     $subscriberObj = MultiPort::findUserByUsername(trim($userDataAr[2]));
     if ($subscriberObj == NULL) {
         $subscriberObj = new ADAUser(array('nome' => trim($userDataAr[0]), 'cognome' => trim($userDataAr[1]), 'email' => trim($userDataAr[2]), 'tipo' => AMA_TYPE_STUDENT, 'username' => trim($userDataAr[2]), 'stato' => ADA_STATUS_PRESUBSCRIBED, 'birthcity' => ''));
         $subscriberObj->setPassword(time());
         /**
          * @author giorgio 06/mag/2014 11:25:21
          * 
          * If it's not a multiprovider environment,
          * user must be subscribed to switcher's own
          * provider only.
          * User must be subscribed to the ADA_PUBLIC_TESTER
          * only in a multiprovider environment.
          */
         $provider_to_subscribeAr = array($sess_selected_tester);
         if (MULTIPROVIDER) {
             array_unshift($provider_to_subscribeAr, ADA_PUBLIC_TESTER);