$logStr = "";
$log_file = ROOT_DIR . '/browsing/paypal/' . PAYPAL_IPN_LOG;
$logFd = fopen($log_file, "a");
$fpx = fopen($log_file, 'a');
$debug = 1;
if ($debug == 1) {
    fwrite($fpx, "INIZIO processo IPN\n");
    fwrite($fpx, "Prima di init \n");
}
$today_date = today_dateFN();
$providerId = DataValidator::is_uinteger($_REQUEST['provider']);
$courseId = DataValidator::is_uinteger($_REQUEST['course']);
$instanceId = DataValidator::is_uinteger($_REQUEST['instance']);
$studentId = DataValidator::is_uinteger($_REQUEST['student']);
$testerInfoAr = $common_dh->get_tester_info_from_id($providerId, 'AMA_FETCH_ASSOC');
$buyerObj = read_user($studentId);
if (is_object($buyerObj) && !AMA_dataHandler::isError($buyerObj)) {
    if (!AMA_Common_DataHandler::isError($testerInfoAr)) {
        $provider_name = $testerInfoAr[1];
        $tester = $testerInfoAr[10];
        $tester_dh = AMA_DataHandler::instance(MultiPort::getDSN($tester));
        $currentTesterId = $newTesterId;
        $GLOBALS['dh'] = $tester_dh;
        $dh = $tester_dh;
        // id dello studente
        if (!isset($instanceId)) {
            $instanceId = $sess_id_user;
            // ??????
        }
        /*
         * Instance Object
Ejemplo n.º 2
0
function find_selected_user()
{
    global $user;
    if (isset($_GET["user"])) {
        /* search db for specified record */
        $user = read_user($_GET["user"]);
        if (!$user) {
            /* record not found */
            redirect_to("manage_users.php");
        }
    } else {
        /* $_GET was not set */
        redirect_to("manage_users.php");
    }
}
Ejemplo n.º 3
0
<?php

$test = sha1("{$_POST['notification_type']}&{$_POST['operation_id']}&{$_POST['amount']}&{$_POST['currency']}&{$_POST['datetime']}&{$_POST['sender']}&{$_POST['codepro']}&j73SGzafSu8hfaYgXQvA3aqI&{$_POST['label']}");
//$handle = fopen ("1.txt", "a");
//fwrite ($handle, "$_POST[notification_type]&$_POST[operation_id]&$_POST[amount]&$_POST[currency]&$_POST[datetime]&$_POST[sender]&$_POST[codepro]&j73SGzafSu8hfaYgXQvA3aqI&$_POST[label]\n");
if ($_POST["sha1_hash"] == $test) {
    //fwrite ($handle, "+\n");
    if (substr($_POST[label], 0, 7) == "stirka.") {
        //fwrite ($handle, "+\n");
        $uid = substr($_POST[label], 7) * 1;
        if ($uid > 0) {
            //fwrite ($handle, "+\n");
            date_default_timezone_set("Europe/Moscow");
            $___time = time();
            //подключение
            include "includes/kernel.php";
            db_connect();
            if (read_user("userID", $uid)) {
                //fwrite ($handle, "+\n");
                user_pay($uid, floor($_POST[withdraw_amount] * 1) * 100, $_POST[notification_type] == "p2p-incoming" ? "јвтоматическое пополнение через яндекс.деньги" : "јвтоматическое пополнение с банковской карты", -1);
            }
        }
    }
}
?>
1
Ejemplo n.º 4
0
}
if (!isset($_REQUEST['status'])) {
    if (isset($_REQUEST['msg'])) {
        $status = $_REQUEST['msg'];
        $msg = $_REQUEST['msg'];
    } else {
        $status = translateFN("navigazione");
    }
} else {
    $status = $_REQUEST['status'];
}
// $is_istance_active = ... ?;
/**
 * get User object
 */
$userObj = read_user($sess_id_user);
if (ADA_Error::isError($userObj)) {
    $userObj->handleError();
}
// FIXME: messages and agenda will be handled by class MultiPort
//        $user_messages = $userObj->get_messagesFN($sess_id_user);
//        $user_agenda =  $userObj->get_agendaFN($sess_id_user);
$testers_dataAr = MultiPort::getTestersPointersAndIds();
$user_messagesAr = MultiPort::getUserMessages($userObj);
$user_messages = CommunicationModuleHtmlLib::getMessagesAsTable($user_messagesAr, $testers_dataAr);
$user_agendaAr = MultiPort::getUserAgenda($userObj);
$user_agenda = CommunicationModuleHtmlLib::getAgendaAsTable($user_agendaAr, $testers_dataAr);
$user_eventsAr = MultiPort::getUserEventsNotRead($userObj);
$user_events = CommunicationModuleHtmlLib::getEventsAsTable($userObj, $user_eventsAr, $testers_dataAr);
/*$user_eventsAr = MultiPort::getUserEvents($userObj);
$user_events    = CommunicationModuleHtmlLib::getEventsAsTable($userObj, $user_eventsAr, $testers_dataAr);
Ejemplo n.º 5
0
$_POST[room] = ceil($_POST[room] * 1);
$_POST[gr] = mysql_real_escape_string(htmlspecialchars($_POST[gr], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[email] = mysql_real_escape_string(htmlspecialchars($_POST[email], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[phone] = mysql_real_escape_string(htmlspecialchars($_POST[phone], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[card] = mysql_real_escape_string(strtolower(htmlspecialchars($_POST[card], ENT_COMPAT | ENT_HTML401, 'cp1251')));
$errors = "&fio=" . urlencode($_POST[fio]) . "&login="******"&room=" . urlencode($_POST[room]) . "&gr=" . urlencode($_POST[gr]) . "&email=" . urlencode($_POST[email]) . "&phone=" . urlencode($_POST[phone]) . "&card=" . urlencode($_POST[card]);
/*if ($_POST[card]){
	$card = read_code_card($_POST[card], 1);
	if (!$card) redirect("index.php?page=login&reg=1&error=7".$errors);
}else redirect("index.php?page=login&reg=1&error=7&1".$errors);*/
if ($_POST[login] && $_POST[pass]) {
    if (strlen($_POST[pass]) > 5) {
        if ($_POST[pass] === $_POST[pass2]) {
            if (preg_match("/^([0-9]{3})|(асп[0-9]{2})\$/", $_POST[gr]) !== false) {
                if ($_POST[room] > 0 && $_POST[room] < 450) {
                    $user = read_user("login", $_POST[login]);
                    if (!$user) {
                        add_user($_POST[login], $_POST[pass], $_POST[email], $_POST[phone], $_POST[gr], $_POST[room], $_POST[fio], $card);
                        redirect("index.php?page=login&reg=2");
                    } else {
                        redirect("index.php?page=login&reg=1&error=6" . $errors);
                    }
                } else {
                    redirect("index.php?page=login&reg=1&error=5" . $errors);
                }
            } else {
                redirect("index.php?page=login&reg=1&error=4" . $errors);
            }
        } else {
            redirect("index.php?page=login&reg=1&error=3" . $errors);
        }
Ejemplo n.º 6
0
        if ($pay[amount] < 0) {
            $amountcolor = "red";
        } else {
            $amountcolor = "green";
        }
        $uname = "";
        if (strpos($pay[descr], "Оплата кванта времени ") !== false) {
            $m = array();
            preg_match("/Оплата кванта времени с ([0-9]+) по ([0-9]+)/", $pay[descr], $m);
            $pay[descr] = "Оплата кванта времени с " . date("d.m.Y H:i:s", $m[1]) . " по " . date("d.m.Y H:i:s", $m[2]) . "";
        } else {
            if ($pay[adminID] == -1) {
                $uname = "Яндекс.деньги";
            } elseif (strpos($pay[descr], "Оплата СМС") !== false) {
                $uname = "СМС";
            } else {
                $u = read_user("userID", $pay[adminID]);
                $uname = $u[fio];
            }
        }
        $t = "";
        if ($pay["time"] == "0000-00-00 00:00:00") {
            $pay["time"] = "";
        }
        echo "<tr>\n\t<td>{$pay['merchantID']}</td>\n\t<td style='color:{$amountcolor};'>" . $pay[amount] * 0.01 . "</td>\n\t<td>{$pay['descr']}</td>\n\t<td>{$uname}</td>\n\t<td>{$pay['time']}</td>\n\t</tr>";
    }
} else {
    echo "Пополнений баланса не было!";
}
echo "</center>";
echo show_footer();
Ejemplo n.º 7
0
<?php

echo show_header();
if (!$user[perm]) {
    die(redirect_js("index.php"));
}
echo "<span class='name'>Изменение карты пользователя</span><br>";
if ($_GET[userID]) {
    if ($u = read_user('userID', $_GET[userID] * 1)) {
        if ($_GET[error]) {
            switch ($_GET[error]) {
                case -1:
                    $error = "Неверный код!";
                    break;
                case 1:
                    $error = "OK!";
                    break;
            }
        }
        echo "<center><div id='errortxt' class='error'>{$error}</div>\n\t\t\t\t<form id='form_edit' action='action.php?action=edit_user_card' method=POST>\n\t\t\t\t<table>\n\t\t\t\t<tr><td>userID</td><td>{$u['userID']}</td></tr>\n\t\t\t\t<tr><td>Логин</td><td>{$u['login']}</td></tr>\n\t\t\t\t<tr><td>ФИО</td><td>{$u['fio']}</td></tr>\n\t\t\t\t<tr><td>Код доступа</td><td> <input id='new_code' name='new_code'></td></tr>\n\t\t\t\t</table>\n\t\t\t\t<input type=submit value='Изменить'>\n\t\t\t\t<input type=hidden name=userID value='{$u['userID']}'>\n\t\t\t\t</form>\n\t\t\t\t";
    } else {
        echo "Произошла какая-то ошибка! Попробуйте снова! <br><a href='?page=users'>Назад</a>";
    }
} else {
    echo "Произошла какая-то ошибка! Попробуйте снова! <br><a href='?page=users'>Назад</a>";
}
Ejemplo n.º 8
0
$loclist = array();
foreach ($default_locales as $dl) {
    $loclist[] = '/^' . substr($dl, 0, 2) . '$/';
}
$locale = preg_replace($loclist, $default_locales, $locale);
// Finally, setlocale
setlocale(LC_MESSAGES, $locale);
bindtextdomain(TEXT_DOMAIN, $directory);
bind_textdomain_codeset(TEXT_DOMAIN, 'UTF-8');
textdomain(TEXT_DOMAIN);
// Generate an (reasonably) unique identifier for the session
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
if (!isset($_REQUEST['l0id']) && $action == 'remember' && isset($_SESSION['l0id'])) {
    $l0id = $_SESSION['l0id'];
    unset($_SESSION['l0id']);
    $text = read_user();
    // removes the file
}
if (!isset($l0id) || strlen($l0id) == 0) {
    $l0id = isset($_REQUEST['l0id']) && preg_match('/^\\d{1,10}$/', $_REQUEST['l0id']) ? $_REQUEST['l0id'] : mt_rand(1000, 9999999);
}
// Check logged in user
$user = isset($_SESSION['osm_user']) ? $_SESSION['osm_user'] : false;
$loggedin = isset($_SESSION['osm_token']);
// Read edited data
if (!isset($text) || !$text) {
    $text = isset($_REQUEST['data']) ? $_REQUEST['data'] : '';
}
// Generate $basedata and $userdata arrays
$error = false;
$messages = array();
 *
 */
require '../../config.php';
require_once './hide_moodle.php';
require_once './locallib.php';
require_once './contact_form.php';
require_obu_login();
$home = new moodle_url('/local/obu_application/');
$url = $home . 'contact.php';
$PAGE->set_title($CFG->pageheading . ': ' . get_string('contactdetails', 'local_obu_application'));
// HTTPS is required in this page when $CFG->loginhttps enabled
$PAGE->https_required();
$PAGE->set_url($url);
$message = '';
$counties = get_counties();
$parameters = ['user' => read_user($USER->id), 'applicant' => read_applicant($USER->id, false), 'counties' => $counties];
$mform = new contact_form(null, $parameters);
if ($mform->is_cancelled()) {
    redirect($home);
} else {
    if ($mform_data = $mform->get_data()) {
        if ($mform_data->submitbutton == get_string('save', 'local_obu_application')) {
            $mform_data->county = $counties[$mform_data->domicile_code];
            write_user($USER->id, $mform_data);
            write_contact_details($USER->id, $mform_data);
        }
        redirect($home);
    }
}
echo $OUTPUT->header();
if ($message) {
Ejemplo n.º 10
0
<?php

if (!$user[perm]) {
    die(redirect_js("index.php"));
}
$_POST[fio] = mysql_real_escape_string(htmlspecialchars($_POST[fio], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[login] = mysql_real_escape_string(htmlspecialchars($_POST[login], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[room] = ceil($_POST[room] * 1);
$_POST[gr] = mysql_real_escape_string(htmlspecialchars($_POST[gr], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[email] = mysql_real_escape_string(htmlspecialchars($_POST[email], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[phone] = mysql_real_escape_string(htmlspecialchars($_POST[phone], ENT_COMPAT | ENT_HTML401, 'cp1251'));
$_POST[card] *= 1;
//($_POST[card][0]*1).(substr($_POST[card], 1)*1);
$_POST[userID] *= 1;
if ($u = read_user("login", $_POST[login])) {
    if ($u[userID] != $_POST[userID]) {
        redirect("index.php?page=edit_user&userID={$_POST['userID']}&error=1");
        die;
    }
}
$ok = edit_user($_POST[userID], $_POST[login], $_POST[pass], $_POST[email], $_POST[phone], $_POST[gr], $_POST[room], $_POST[fio], $_POST[active] * 1, 1 * $_POST[perm], $_POST[card]);
redirect("index.php?page=edit_user&userID={$_POST['userID']}&error=2");
Ejemplo n.º 11
0
function parameter_controlFN($neededObjAr = array(), $allowedUsersAr = array())
{
    $invalid_session = FALSE;
    $invalid_user = FALSE;
    $invalid_node = FALSE;
    $invalid_course = FALSE;
    $invalid_course_instance = FALSE;
    $invalid_user_level = FALSE;
    $guest_user_not_allowed = FALSE;
    /*
     * ADA common data handler
     */
    $common_dh = isset($GLOBALS['common_dh']) ? $GLOBALS['common_dh'] : null;
    if (!$common_dh instanceof AMA_Common_DataHandler) {
        $common_dh = AMA_Common_DataHandler::instance();
        $GLOBALS['common_dh'] = $common_dh;
    }
    /*
     * User object: always load a user
     */
    $sess_id_user = isset($_SESSION['sess_id_user']) ? (int) $_SESSION['sess_id_user'] : 0;
    $sess_userObj = read_user($sess_id_user);
    if (ADA_Error::isError($sess_userObj)) {
        $sess_userObj->handleError();
    }
    $_SESSION['sess_id_user'] = $sess_id_user;
    if ($sess_userObj instanceof ADAGenericUser) {
        $_SESSION['sess_userObj'] = $sess_userObj;
        /*
         * Check if this user is allowed to access the current module
         */
        if (!in_array($sess_userObj->getType(), $allowedUsersAr)) {
            header('Location: ' . $sess_userObj->getHomePage());
            exit;
        }
    } else {
        unset($_SESSION['sess_userObj']);
        $invalid_user = TRUE;
    }
    $id_profile = $sess_userObj->getType();
    /*
     * Get needed object for this user from $neededObjAr 
     */
    if (is_array($neededObjAr) && isset($neededObjAr[$id_profile]) && is_array($neededObjAr[$id_profile])) {
        $thisUserNeededObjAr = $neededObjAr[$id_profile];
    } else {
        $thisUserNeededObjAr = array();
    }
    /*
     * 
     * 'default_tester' AL MOMENTO VIENE RICHIESTO SOLO DA USER.php
     * QUI ABBIAMO NECESSITA' DI CANCELLARE LA VARIABILE DI SESSIONE
     * sess_id_course.
     * Gia' che ci siamo facciamo unset anche di sess_id_node 
     * e di sess_id_course_instance
     * 
     * Tester selection: 
     * 
     * se ho richiesto la connessione al database del tester di default, 
     * controllo che il tipo di utente sia ADAUser (al momento e' l'unico ad
     * avere questa necessita').
     * 
     * se non ho richiesto la connessione al tester di default, allora verifico
     * se l'utente e' di tipo ADAUser, e ottengo la connessione al database
     * tester appropriato. 
     */
    if (in_array('default_tester', $thisUserNeededObjAr) && $id_profile == AMA_TYPE_STUDENT) {
        $_SESSION['sess_selected_tester'] = NULL;
        unset($_SESSION['sess_id_course']);
        unset($_SESSION['sess_id_course_instance']);
        unset($_SESSION['sess_id_node']);
    } else {
        if ($id_profile == AMA_TYPE_STUDENT) {
            if (isset($_REQUEST['id_course'])) {
                $id_course = DataValidator::is_uinteger($_REQUEST['id_course']);
            } else {
                $id_course = false;
            }
            if (isset($_SESSION['sess_id_course'])) {
                $sess_id_course = DataValidator::is_uinteger($_SESSION['sess_id_course']);
            } else {
                $sess_id_course = false;
            }
            if (isset($_REQUEST['id_node'])) {
                $req_id_node = DataValidator::validate_node_id($_REQUEST['id_node']);
            } else {
                $req_id_node = false;
            }
            if ($id_course === FALSE && $sess_id_course === FALSE && $req_id_node !== FALSE) {
                $id_course = substr($req_id_node, 0, strpos($req_id_node, '_'));
            }
            if ($id_course !== FALSE && $id_course !== $sess_id_course) {
                $tester_infoAr = $common_dh->get_tester_info_from_id_course($id_course);
                if (AMA_Common_DataHandler::isError($tester_infoAr)) {
                    $selected_tester = NULL;
                } else {
                    $selected_tester = $tester_infoAr['puntatore'];
                }
                $_SESSION['sess_selected_tester'] = $selected_tester;
            }
        }
    }
    /* 
     * ADA tester data handler
     * Data validation on $sess_selected_tester is performed by MultiPort::getDSN()
     */
    /**
     * giorgio 12/ago/2013
     * set selected tester if it's not a multiprovider environment
     */
    if (!MULTIPROVIDER && isset($GLOBALS['user_provider'])) {
        $sess_selected_tester = $GLOBALS['user_provider'];
    } else {
        $sess_selected_tester = isset($_SESSION['sess_selected_tester']) ? $_SESSION['sess_selected_tester'] : null;
    }
    //$dh = AMA_DataHandler::instance(MultiPort::getDSN($sess_selected_tester));
    $sess_selected_tester_dsn = MultiPort::getDSN($sess_selected_tester);
    $_SESSION['sess_selected_tester_dsn'] = $sess_selected_tester_dsn;
    $dh = new AMA_DataHandler($sess_selected_tester_dsn);
    $GLOBALS['dh'] = $dh;
    if (empty($GLOBALS['sess_id'])) {
        $invalid_session = TRUE;
    }
    /*
     * Node object
     */
    // TODO: portare in sessione $nodeObj?
    if (in_array('node', $thisUserNeededObjAr)) {
        $id_node = isset($_REQUEST['id_node']) ? DataValidator::validate_node_id($_REQUEST['id_node']) : false;
        $sess_id_node = isset($_SESSION['sess_id_node']) ? DataValidator::validate_node_id($_SESSION['sess_id_node']) : false;
        if ($id_node !== FALSE) {
            $dataHa = $dh->get_node_info($id_node);
            if (AMA_DataHandler::isError($dataHa) || !is_array($dataHa)) {
                $invalid_node = TRUE;
            } else {
                $_SESSION['sess_id_node'] = $id_node;
            }
        } elseif ($sess_id_node !== FALSE) {
            $dataHa = $dh->get_node_info($sess_id_node);
            if (AMA_DataHandler::isError($dataHa) || !is_array($dataHa)) {
                $invalid_node = TRUE;
            } else {
                $_SESSION['sess_id_node'] = $sess_id_node;
            }
        } else {
            $invalid_node = TRUE;
        }
        /**
         * @author giorgio 18/mag/2015
         * 
         * Could be that a non-student has request a node from
         * the default tester in a multiprovider environment
         * Check this before giving up an marking the node as invalid
         */
        if (MULTIPROVIDER && $id_profile != AMA_TYPE_STUDENT && $invalid_node === true && $id_node !== false) {
            $invalid_node = checkAndSetPublicTester('node', $id_node);
        }
    }
    /*
     * Course object
     */
    if (in_array('course', $thisUserNeededObjAr)) {
        $id_course = isset($_REQUEST['id_course']) ? DataValidator::is_uinteger($_REQUEST['id_course']) : false;
        $sess_id_course = isset($_SESSION['sess_id_course']) ? DataValidator::is_uinteger($_SESSION['sess_id_course']) : false;
        /* extracting the course id from node id, if given */
        if (isset($_SESSION['sess_id_node']) && !$invalid_node && $id_course === false) {
            //    if ($nodeObj instanceof Node){
            $courseIdFromNodeId = substr($_SESSION['sess_id_node'], 0, strpos($_SESSION['sess_id_node'], '_'));
            $sess_courseObj = read_course($courseIdFromNodeId);
            if (ADA_Error::isError($sess_courseObj)) {
                unset($_SESSION['sess_courseObj']);
                $invalid_course = TRUE;
            } else {
                if ($sess_userObj instanceof ADAGuest && !$sess_courseObj->getIsPublic()) {
                    unset($_SESSION['sess_courseObj']);
                    $invalid_course = TRUE;
                } else {
                    $_SESSION['sess_courseObj'] = $sess_courseObj;
                    $_SESSION['sess_id_course'] = $courseIdFromNodeId;
                }
            }
        } elseif ($id_course !== FALSE) {
            $sess_courseObj = read_course($id_course);
            if (ADA_Error::isError($sess_courseObj)) {
                unset($_SESSION['sess_courseObj']);
                $invalid_course = TRUE;
            } else {
                if ($sess_userObj instanceof ADAGuest && !$sess_courseObj->getIsPublic()) {
                    unset($_SESSION['sess_courseObj']);
                    $invalid_course = TRUE;
                } else {
                    $_SESSION['sess_courseObj'] = $sess_courseObj;
                    $_SESSION['sess_id_course'] = $id_course;
                }
            }
        } elseif ($sess_id_course !== FALSE) {
            $sess_courseObj = read_course($sess_id_course);
            if (ADA_Error::isError($sess_courseObj)) {
                unset($_SESSION['sess_courseObj']);
                $invalid_course = TRUE;
            } else {
                if ($sess_userObj instanceof ADAGuest && !$sess_courseObj->getIsPublic()) {
                    unset($_SESSION['sess_courseObj']);
                    $invalid_course = TRUE;
                } else {
                    $_SESSION['sess_courseObj'] = $sess_courseObj;
                    $_SESSION['sess_id_course'] = $sess_courseObj->getId();
                }
            }
        } else {
            unset($_SESSION['sess_courseObj']);
            $invalid_course = TRUE;
        }
        /**
         * @author giorgio 18/mag/2015
         *
         * Could be that a non-student has request a course from
         * the default tester in a multiprovider environment
         * Check this before giving up an marking the course as invalid
         */
        if (MULTIPROVIDER && $id_profile != AMA_TYPE_STUDENT && $invalid_course === true && ($id_course !== false || $sess_id_course !== false)) {
            $invalid_course = checkAndSetPublicTester('course', $id_course !== false ? $id_course : $sess_id_course);
            if ($invalid_course === false) {
                $invalid_node = false;
                $sess_courseObj = $_SESSION['sess_courseObj'];
                // SESSION set by checkAndSetPublicTester
            }
        }
    } else {
        unset($_SESSION['sess_courseObj']);
    }
    /**
     * If in a valid NON PUBLIC course and user is student or tutor
     * and
     *  $_SESSION['sess_id_course'] (that is the course_id the user is going into)
     * 	IS NOT EQUAL TO
     *  $sess_id_course (that is the course_id the user is coming form)
     *  
     *  The user has clicked a cross course link, and is handled by unsetting the
     *  $_SESSION['sess_id_course_instance'] and looking for a course instance
     *  to which the user is subscribed.
     *  
     */
    if ($invalid_course === FALSE && $invalid_node === FALSE && isset($sess_courseObj) && !$sess_courseObj->getIsPublic() && in_array($sess_userObj->getType(), array(AMA_TYPE_STUDENT, AMA_TYPE_TUTOR)) && is_numeric($sess_id_course) && intval($_SESSION['sess_id_course']) !== intval($sess_id_course)) {
        /**
         * unset sess_id_course_instance
         */
        unset($_SESSION['sess_id_course_instance']);
        /**
         * Try to find an instance of target course where used is subscribed
         */
        $getAll = true;
        /**
         * Need to get instance the user is allowed to browse, based on user type
         */
        switch ($sess_userObj->getType()) {
            case AMA_TYPE_STUDENT:
                $instances = $dh->get_course_instance_for_this_student_and_course_model($sess_userObj->getId(), $_SESSION['sess_id_course'], $getAll);
                break;
            case AMA_TYPE_TUTOR:
                $instances = $dh->get_course_instance_for_this_student_and_course_model($sess_userObj->getId(), $_SESSION['sess_id_course'], $getAll);
                if (AMA_DB::isError($instances) || !is_array($instances) || count($instances) <= 0) {
                    $instances = array();
                }
                $tutorInstances = $dh->get_tutors_assigned_course_instance($sess_userObj->getId(), $_SESSION['sess_id_course'], $sess_userObj->isSuper());
                if (!AMA_DB::isError($tutorInstances) && is_array($tutorInstances) && count($tutorInstances) > 0) {
                    /**
                     * the returned array is array[id_tutor]=>array[key]=>array['id_istanza_corso']
                     * and needs to be converted to reflect the structre returned in student case
                     */
                    foreach ($tutorInstances[$sess_userObj->getId()] as $tutorInstance) {
                        $instances[]['id_istanza_corso'] = $tutorInstance['id_istanza_corso'];
                    }
                }
                break;
        }
        if (!AMA_DB::isError($instances) && count($instances) > 0) {
            if (count($instances) == 1) {
                /**
                 * User is subscribed to one instance only, good!
                 * Set the $target_course_instance var and proceed
                 */
                $target_course_instance = $instances[0]['id_istanza_corso'];
            } else {
                if (count($instances) > 1 && !isset($_REQUEST['id_course_instance'])) {
                    /**
                     * If there's more than one instance, must build an array of
                     * found instances to ask the user to select one.
                     * 
                     * This array is returned in the 'course' key of the returned
                     * array and so $invalid_course must be populated accordingly.
                     * 
                     * The node that was requested is returned in the 'node' key of
                     * the returned array and so $invalid_node must be populated. 
                     */
                    foreach ($instances as $instance) {
                        $invalid_course[] = $instance['id_istanza_corso'];
                        $invalid_node = $_SESSION['sess_id_node'];
                    }
                } else {
                    if (isset($_REQUEST['id_course_instance'])) {
                        $target_course_instance = $_REQUEST['id_course_instance'];
                    }
                }
            }
        } else {
            /**
             * Mark the course as invalid, and unset session var
             */
            $invalid_course = TRUE;
            unset($_SESSION['sess_id_course']);
        }
    }
    /*
     * Course_instance object
     */
    if (in_array('course_instance', $thisUserNeededObjAr)) {
        /*
         * Se ci troviamo nel tester pubblico, allora non dobbiamo leggere un'istanza corso
         * dato che non ce ne sono.
         */
        if (!$invalid_course && !$sess_courseObj->getIsPublic()) {
            if (isset($target_course_instance)) {
                $id_course_instance = DataValidator::is_uinteger($target_course_instance);
            } else {
                if (isset($_REQUEST['id_course_instance'])) {
                    $id_course_instance = DataValidator::is_uinteger($_REQUEST['id_course_instance']);
                    // FIXME: qui ci va $_REQUEST['id_course_instance']
                } else {
                    $id_course_instance = false;
                }
            }
            $sess_id_course_instance = isset($_SESSION['sess_id_course_instance']) ? DataValidator::is_uinteger($_SESSION['sess_id_course_instance']) : false;
            if ($id_course_instance !== FALSE) {
                $course_instanceObj = read_course_instance_from_DB($id_course_instance);
                if (ADA_Error::isError($course_instanceObj)) {
                    $invalid_course_instance = TRUE;
                } else {
                    $UserType = $sess_userObj->getType();
                    switch ($sess_userObj->getType()) {
                        case AMA_TYPE_STUDENT:
                            $studentLevel = $dh->_get_student_level($sess_id_user, $id_course_instance);
                            if (AMA_DataHandler::isError($studentLevel)) {
                                $invalid_course_instance = TRUE;
                            }
                            break;
                        case AMA_TYPE_TUTOR:
                            if (!$sess_userObj->isSuper() && $course_instanceObj->getServiceLevel() != ADA_SERVICE_TUTORCOMMUNITY) {
                                $tutorsInstance = $dh->course_instance_tutor_get($id_course_instance, $number = 2);
                                if (AMA_DataHandler::isError($tutorsInstance)) {
                                    $invalid_course_instance = TRUE;
                                } elseif (!in_array($sess_id_user, $tutorsInstance)) {
                                    $invalid_course_instance = TRUE;
                                }
                            }
                            break;
                        default:
                            //                  $invalid_course_instance = TRUE;
                            break;
                    }
                    if (!$invalid_course_instance) {
                        $_SESSION['sess_id_course_instance'] = $id_course_instance;
                        $sess_id_course_instance = $_SESSION['sess_id_course_instance'];
                    }
                }
            } elseif ($sess_id_course_instance !== FALSE) {
                $instanceIdRequired = array();
                if (isset($_SESSION['sess_id_node']) && !$invalid_node) {
                    //        if ($nodeObj instanceof Node) { // required a node
                    $instanceIdRequired[] = isset($dataHa['instance']) ? $dataHa['instance'] : null;
                    if ($instanceIdRequired[0] == 0) {
                        // the node is NOT a note
                        $field_list_ar = array();
                        if (isset($_SESSION['sess_id_course']) && !$invalid_course) {
                            $courseIdRequired = $_SESSION['sess_id_course'];
                            $InstanceIdList = $dh->course_instance_get_list($field_list_ar, $courseIdRequired);
                            if (AMA_DataHandler::isError($InstanceIdList) || count($InstanceIdList) == 0) {
                                $invalid_course_instance = TRUE;
                            }
                        } else {
                            $invalid_course_instance = TRUE;
                        }
                        $instanceIdRequired = array();
                        foreach ($InstanceIdList as $InstanceId) {
                            array_push($instanceIdRequired, $InstanceId[0]);
                        }
                    }
                    // end if NOTE
                } elseif ($sess_courseObj instanceof Course) {
                    $courseIdRequired = $sess_courseObj->id;
                    $InstanceIdList = $dh->course_instance_get_list(array(), $courseIdRequired);
                    if (AMA_DataHandler::isError($InstanceIdList) || count($InstanceIdList) == 0) {
                        $invalid_course_instance = TRUE;
                    }
                    $instanceIdRequired = array();
                    foreach ($InstanceIdList as $InstanceId) {
                        array_push($instanceIdRequired, $InstanceId[0]);
                    }
                }
                //          var_dump($instanceIdRequired,$sess_id_course_instance);
                $UserType = $sess_userObj->getType();
                switch ($UserType) {
                    case AMA_TYPE_STUDENT:
                    case AMA_TYPE_TUTOR:
                        if (!in_array($sess_id_course_instance, $instanceIdRequired)) {
                            $invalid_course_instance = TRUE;
                        }
                        break;
                    case AMA_TYPE_SWITCHER:
                    case AMA_TYPE_AUTHOR:
                    default:
                        break;
                }
                //end switch UserType
                $course_instanceObj = read_course_instance_from_DB($sess_id_course_instance);
                if (ADA_Error::isError($course_instanceObj)) {
                    $course_instanceObj->handleError();
                }
                $_SESSION['sess_id_course_instance'] = $sess_id_course_instance;
            } else {
                $invalid_course_instance = TRUE;
            }
        }
        //end isUserBrowsingThePublicTester
    }
    // end if in_array
    /*
     * Check if current user is a ADAGuest user and that he/she has requested
     * a public course instance.
     */
    //
    //  if(in_array('user', $neededObjAr[$user_type]) && in_array('course_instance', $neededObjAr[$user_type])) {
    //    if(!$invalid_user && $sess_userObj instanceof ADAGuest) {
    //      if ($invalid_course_instance || $course_instanceObj->status != ADA_COURSEINSTANCE_STATUS_PUBLIC) {
    //        $guest_user_not_allowed = TRUE;
    //      }
    //    }
    //  }
    // TODO: controllo livello utente
    /*
     * controllare che sia settato $sess_user_level e che il valore sia tra 0 e
     * ADA_MAX_USER_LEVEL
     */
    $parm_errorHa = array('session' => $invalid_session, 'user' => $invalid_user, 'user_level' => $invalid_user_level, 'course' => $invalid_course, 'course_instance' => $invalid_course_instance, 'node' => $invalid_node, 'guest_user_not_allowed' => $guest_user_not_allowed);
    return $parm_errorHa;
}
Ejemplo n.º 12
0
 echo "<tr><td title='Окончание в " . date("H:i", $v[1][totime]) . "'>" . date("d.m.Y H:i", $k * 1) . "</td>";
 foreach ($v as $m => $vv) {
     if (!$user[perm] && strpos($hidden, ",{$m},") !== false) {
         continue;
     }
     if ($vv[userID]) {
         if ($user[userID] == $vv[userID]) {
             $color = "green";
             $text = "Забронировано";
             if ($user[perm] == 1) {
                 $nowu = read_user("userID", $vv[userID]);
                 $text .= " <a href='/action.php?action=cancel_buy&return=1&planID={$vv['planID']}' onclick='if (!confirm(\"Действительно отменить бронь и вернуть деньги?\")) return false;' class='nodecor'><img class='button' src='img/del.png' title='Отменить с возвратом средств'></a>";
             }
         } else {
             $color = "pink";
             $nowu = read_user("userID", $vv[userID]);
             $text = "Забронировано<br>{$nowu['fio']} {$nowu['room']}<br>";
             if ($user[perm] == 1) {
                 $text .= "<a href='/index.php?page=edit_user&userID={$vv['userID']}' class='nodecor'><img class='button' src='img/user.png' title='Профиль'></a>\n\t\t\t\t\t\t\t<a href='/index.php?page=user_pay&userID={$vv['userID']}' class='nodecor'><img class='button' src='img/rouble.png' title='Изменить баланс'></a>\n\t\t\t\t\t\t\t<a href='/action.php?action=cancel_buy&return=0&planID={$vv['planID']}' onclick='if (!confirm(\"Действительно отменить бронь и НЕ ВЕРНУТЬ деньги?\")) return false;' class='nodecor'><img class='button' src='img/cancel.png' title='Отменить без возврата средств'></a>\n\t\t\t\t\t\t\t<a href='/action.php?action=cancel_buy&return=1&planID={$vv['planID']}' onclick='if (!confirm(\"Действительно отменить бронь и вернуть деньги?\")) return false;' class='nodecor'><img class='button' src='img/del.png' title='Отменить с возвратом средств'></a>";
             }
         }
     } else {
         if ($vv[fromtime] < time()) {
             $color = "yellow";
             $text = "Поздно";
         } else {
             $color = "#B1FF92;";
             $text = "<a href='index.php?page=buy&k={$nowday}&q={$j}&m={$m}' title='Забронировать и оплатить'>Свободно</a>";
         }
     }
     echo "<td style='min-width: 100px; text-align: center; background-color: {$color};'>{$text}</td>";
function write_application($user_id, $form_data)
{
    global $DB;
    $user = read_user($user_id);
    // Contact details
    $applicant = read_applicant($user_id, true);
    // Profile & course must exist
    // Initialise the new record
    $record = new stdClass();
    $record->id = 0;
    $record->userid = $user_id;
    // Contact details
    $record->title = $applicant->title;
    $record->firstname = $user->firstname;
    $record->lastname = $user->lastname;
    $record->address_1 = $applicant->address_1;
    $record->address_2 = $applicant->address_2;
    $record->address_3 = $applicant->address_3;
    $record->town = $applicant->town;
    $record->domicile_code = $applicant->domicile_code;
    $record->county = $applicant->county;
    $record->postcode = $applicant->postcode;
    $record->phone = $user->phone1;
    $record->email = $user->email;
    // Profile
    $record->birthdate = $applicant->birthdate;
    $record->nationality_code = $applicant->nationality_code;
    $record->nationality = $applicant->nationality;
    $record->p16school = $applicant->p16school;
    $record->p16schoolperiod = $applicant->p16schoolperiod;
    $record->p16fe = $applicant->p16fe;
    $record->p16feperiod = $applicant->p16feperiod;
    $record->training = $applicant->training;
    $record->trainingperiod = $applicant->trainingperiod;
    $record->prof_level = $applicant->prof_level;
    $record->prof_award = $applicant->prof_award;
    $record->prof_date = $applicant->prof_date;
    $record->emp_place = $applicant->emp_place;
    $record->emp_area = $applicant->emp_area;
    $record->emp_title = $applicant->emp_title;
    $record->emp_prof = $applicant->emp_prof;
    $record->prof_reg_no = $applicant->prof_reg_no;
    if ($applicant->criminal_record == '1') {
        // '1' = yes, '2' = no
        $record->criminal_record = '1';
        // Yes
    } else {
        $record->criminal_record = '0';
        // No
    }
    // Course
    $record->course_code = $applicant->course_code;
    $record->course_name = $applicant->course_name;
    $record->course_date = $applicant->course_date;
    $record->statement = $applicant->statement;
    $course = read_course_record($applicant->course_code);
    if ($course->supplement != '') {
        // There should be supplementary data
        $record->supplement_data = $applicant->supplement_data;
    }
    // Final details
    $record->self_funding = $form_data->self_funding;
    //	$record->manager_email = $form_data->email;
    if (isset($form_data->declaration)) {
        // Only set if checked
        $record->declaration = 1;
    } else {
        $record->declaration = 0;
    }
    $record->application_date = time();
    return $DB->insert_record('local_obu_application', $record);
    // The remaining fields will have default values
}
Ejemplo n.º 14
0
function buy_sms($userID, $nowday, $quant, $mashine, $remembers)
{
    $user = read_user("userID", $userID);
    $prices = array(0, 100, 200, 300, 400);
    $ok = array();
    $plan = read_plan_day($nowday);
    $tonowday = $nowday + 3600 * 24;
    foreach ($plan as $k => $v) {
        if ($k < $nowday) {
            continue;
        }
        if ($k > $tonowday) {
            break;
        }
        if ($v[$mashine]) {
            $ok[] = $v[$mashine];
        }
    }
    foreach ($remembers as $rem) {
        $ch = curl_init("http://sms.ru/sms/send");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_POSTFIELDS, array("api_id" => "1cf27b49-8e99-6e44-45e7-b982dd8e5280", "to" => $user[phone], "text" => iconv("windows-1251", "utf-8", "Стирка " . ($rem[before] == 1 ? "начинается" : "заканчивается") . " через " . $rem[min] . " минут. " . date("d.m.Y H:i", $rem[before] == 1 ? $ok[$quant][fromtime] : $ok[$quant][totime])), "time" => ($rem[before] == 1 ? $ok[$quant][fromtime] : $ok[$quant][totime]) - $rem[min] * 60, "from" => "Stiralka1", "partner_id" => 5932));
        $body = curl_exec($ch);
        curl_close($ch);
    }
    user_pay($userID, -$prices[count($remembers)], "Оплата СМС оповещений для кванта времени с " . date("d.m.Y H:i:s", $ok[$quant][fromtime]) . " по " . date("d.m.Y H:i:s", $ok[$quant][totime]));
}
Ejemplo n.º 15
0
 /**
  * save test's data (e.g. points earned, end time, level gained, etc.)
  * send a message to tutor and switcher when user reaches max course's level
  * set course subscription to complete
  *
  * @access protected
  *
  * @return returns true if test data is saved, false otherwise
  */
 protected function saveTest()
 {
     $dh = $GLOBALS['dh'];
     $r = parent::saveTest();
     $sess_id_course = $_SESSION['sess_id_course'];
     $sess_id_course_instance = $_SESSION['sess_id_course_instance'];
     if ($this->id_istanza == 0 || $this->id_istanza == NULL) {
         $this->id_istanza = $sess_id_course_instance;
     }
     if ($r) {
         //check for barrier and conseguent level up
         if ($this->barrier) {
             $level_gained = null;
             if (!is_null($r['min_barrier_points']) && $r['points'] >= $r['min_barrier_points']) {
                 $level = $dh->_get_student_level($_SESSION['sess_id_user'], $this->id_istanza);
                 if ($level < $this->livello) {
                     $level = $this->livello;
                 }
                 if ($dh->set_student_level($this->id_istanza, array($_SESSION['sess_id_user']), $level)) {
                     $level_gained = $level;
                     $res = $dh->test_saveTest($r['id_history_test'], $r['tempo_scaduto'], $r['points'], $r['repeatable'], $r['min_barrier_points'], $level_gained);
                     if (is_object($res) && get_class($res) == 'AMA_Error') {
                         $this->_onSaveError = true;
                         $this->rollBack();
                         return false;
                     }
                     //Send message to switcher and tutor when the user reaches max course's level
                     //Set course subscription to complete
                     $userObj = read_user($_SESSION['sess_id_user']);
                     $max_level = $dh->get_course_max_level($sess_id_course);
                     if ($level >= $max_level) {
                         // se è l'ultimo esercizio (ovvero se il livello dello studente è il massimo possibile)
                         // e l'esercizio è di tipo sbarramento
                         // 1. cambia lo stato dell'iscrizione dello studente all'istanza corso
                         /**
                          * @author giorgio disabled on 12/nov/2014 completion is now
                          * handled using modules/service-complete module
                          */
                         // $dh->course_instance_student_subscribe($_SESSION['sess_id_course_instance'], $_SESSION['sess_id_user'], ADA_SERVICE_SUBSCRIPTION_STATUS_COMPLETED, $level);
                         /*
                         // 2. genera il messaggio da inviare allo switcher
                         $tester = $userObj->getDefaultTester();
                         $tester_dh = AMA_DataHandler::instance(MultiPort::getDSN($tester));
                         $tester_info_Ar = $dh->get_tester_info_from_pointer($tester); // common?
                         $tester_name = $tester_info_Ar[1];
                         $switchers_Ar = $tester_dh->get_users_by_type(array(AMA_TYPE_SWITCHER));
                         if (AMA_DataHandler::isError($switchers_Ar) || !is_array($switchers_Ar)) {
                         	// ??
                         }
                         else {
                         	$switcher_id = $switchers_Ar[0];
                         	//
                         	// FIXME: only the first switcher per provider !
                         	if ($switcher_id) {
                         		$switcher = $dh->get_switcher($switcher_id);
                         		if (!AMA_DataHandler::isError($switcher)) {
                         			// prepare message to send
                         			$message_ha['destinatari'] = $switcher['username'];
                         			$message_ha['titolo'] = translateFN("Completamento corso") . "<br>";
                         
                         			//                      $message_ha['testo'] = $correttore->getMessageForTutor($user_name, $exercise);
                         			// FIXME should be a function of ExerciseCorrectionFactory??
                         			$message_ha['testo'] = translateFN("Il corsista") . " $user_name " . translateFN("ha terminato il corso con id") . " " . $sess_id_course . "/" . $sess_id_course_instance;
                         			$message_ha['data_ora'] = "now";
                         			$message_ha['tipo'] = ADA_MSG_SIMPLE;
                         			$message_ha['priorita'] = 1;
                         			$message_ha['mittente'] = $user_name;
                         			$mh = new MessageHandler();
                         			$mh->send_message($message_ha);
                         		}
                         	}
                         }
                         
                         // genera il messaggio da inviare al tutor
                         // codice precedente
                         $tutor_id = $dh->course_instance_tutor_get($sess_id_course_instance);
                         if (AMA_DataHandler::isError($tutor_id)) {
                         	//?
                         }
                         // only one tutor per class
                         if ($tutor_id) {
                         	$tutor = $dh->get_tutor($tutor_id);
                         	if (!AMA_DataHandler::isError($tutor)) {
                         		// prepare message to send
                         		$message_ha['destinatari'] = $tutor['username'];
                         		$message_ha['titolo'] = translateFN("Esercizio svolto da ") . $user_name . "<br>";
                         		$message_ha['testo'] = $correttore->getMessageForTutor($user_name, $exercise);
                         		$message_ha['data_ora'] = "now";
                         		$message_ha['tipo'] = ADA_MSG_SIMPLE;
                         		if ($course_completed) {
                         			$message_ha['tipo'] = ADA_MSG_MAIL;
                         			$message_ha['testo'].= translateFN("Il corsista") . " " . translateFN("ha terminato il corso con id") . " " . $sess_id_course . "/" . $sess_id_course_instance;
                         		}
                         		$message_ha['priorita'] = 1;
                         		$message_ha['mittente'] = $user_name;
                         		$mh = new MessageHandler();
                         		$mh->send_message($message_ha);
                         	}
                         }
                         */
                     }
                     // max level attained
                 }
             }
         }
     }
     return true;
 }