123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- <?php
- require_once __DIR__ . '/../config.php';
- $plugin = AdvancedSubscriptionPlugin::create();
- $hash = Security::remove_XSS($_REQUEST['v']);
- $data['action'] = Security::remove_XSS($_REQUEST['a']);
- $data['sessionId'] = intval($_REQUEST['s']);
- $data['currentUserId'] = intval($_REQUEST['current_user_id']);
- $data['studentUserId'] = intval($_REQUEST['u']);
- $data['queueId'] = intval($_REQUEST['q']);
- $data['newStatus'] = intval($_REQUEST['e']);
- $data['is_connected'] = true;
- $data['profile_completed'] = isset($_REQUEST['profile_completed']) ? floatval($_REQUEST['profile_completed']) : 0;
- $data['accept_terms'] = isset($_REQUEST['accept_terms']) ? intval($_REQUEST['accept_terms']) : 0;
- $data['courseId'] = isset($_REQUEST['c']) ? intval($_REQUEST['c']) : 0;
- $result = array('error' => true, 'errorMessage' => get_lang('ThereWasAnError'));
- $verified = $plugin->checkHash($data, $hash) || $data['action'] == 'subscribe';
- if ($verified) {
- switch($data['action']) {
- case 'check':
- try {
- $res = AdvancedSubscriptionPlugin::create()->isAllowedToDoRequest($data['studentUserId'], $data);
- if ($res) {
- $result['error'] = false;
- $result['errorMessage'] = 'No error';
- $result['pass'] = true;
- } else {
- $result['errorMessage'] = 'User can not be subscribed';
- $result['pass'] = false;
- }
- } catch (\Exception $e) {
- $result['errorMessage'] = $e->getMessage();
- }
- break;
- case 'subscribe':
-
- $res = AdvancedSubscriptionPlugin::create()->startSubscription($data['studentUserId'], $data['sessionId'], $data);
-
- if ($res === true) {
-
-
-
- $fieldsArray = array('description', 'target', 'mode', 'publication_end_date', 'recommended_number_of_participants');
- $sessionArray = api_get_session_info($data['sessionId']);
- $extraSession = new ExtraFieldValue('session');
- $extraField = new ExtraField('session');
-
- $fieldList = $extraField->get_all(array(
- 'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
- ));
-
- foreach ($fieldList as $field) {
- $fields[$field['id']] = $field['field_variable'];
- }
- $mergedArray = array_merge(array($data['sessionId']), array_keys($fields));
- $sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
- foreach ($sessionFieldValueList as $sessionFieldValue) {
-
- if (isset($fields[$sessionFieldValue['field_id']])) {
- $var = $fields[$sessionFieldValue['field_id']];
- $val = $sessionFieldValue['field_value'];
-
- $sessionArray[$var] = $val;
- }
- }
-
- $studentArray = api_get_user_info($data['studentUserId']);
- $studentArray['picture'] = UserManager::get_user_picture_path_by_id($studentArray['user_id'], 'web', false, true);
- $studentArray['picture'] = UserManager::get_picture_user($studentArray['user_id'], $studentArray['picture']['file'], 22, USER_IMAGE_SIZE_MEDIUM);
-
- $superiorId = UserManager::getStudentBoss($data['studentUserId']);
- if (!empty($superiorId)) {
- $superiorArray = api_get_user_info($superiorId);
- } else {
- $superiorArray = null;
- }
-
- $adminsArray = UserManager::get_all_administrators();
- $isWesternNameOrder = api_is_western_name_order();
- foreach ($adminsArray as &$admin) {
- $admin['complete_name'] = $isWesternNameOrder ?
- $admin['firstname'] . ', ' . $admin['lastname'] :
- $admin['lastname'] . ', ' . $admin['firstname']
- ;
- }
- unset($admin);
-
- $data['action'] = 'confirm';
- $data['student'] = $studentArray;
- $data['superior'] = $superiorArray;
- $data['admins'] = $adminsArray;
- $data['session'] = $sessionArray;
- $data['signature'] = api_get_setting('Institution');
-
- if (empty($superiorId)) {
-
-
- $res = $plugin->updateQueueStatus($data, ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_APPROVED);
- if (!empty($res)) {
-
- $data['admin_view_url'] = api_get_path(WEB_PLUGIN_PATH) .
- 'advanced_subscription/src/admin_view.php?s=' . $data['sessionId'];
-
- $result['mailIds'] = $plugin->sendMail($data, ADVANCED_SUBSCRIPTION_ACTION_STUDENT_REQUEST_NO_BOSS);
-
- if (!empty($result['mailIds'])) {
- $result['error'] = false;
- $result['errorMessage'] = 'No error';
- $result['pass'] = true;
-
- if (isset($result['mailIds']['render'])) {
-
- $message = MessageManager::get_message_by_id($result['mailIds']['render']);
- $message = str_replace(array('<br /><hr>', '<br />', '<br/>'), '', $message['content']);
- echo $message;
- exit;
- }
- }
- }
- } else {
-
-
- $data['newStatus'] = ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_APPROVED;
- $data['student']['acceptUrl'] = $plugin->getQueueUrl($data);
-
- $data['newStatus'] = ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_DISAPPROVED;
- $data['student']['rejectUrl'] = $plugin->getQueueUrl($data);
-
- $result['mailIds'] = $plugin->sendMail($data, ADVANCED_SUBSCRIPTION_ACTION_STUDENT_REQUEST);
-
- if (!empty($result['mailIds'])) {
- $result['error'] = false;
- $result['errorMessage'] = 'No error';
- $result['pass'] = true;
-
- if (isset($result['mailIds']['render'])) {
-
- $message = MessageManager::get_message_by_id($result['mailIds']['render']);
- $message = str_replace(array('<br /><hr>', '<br />', '<br/>'), '', $message['content']);
- echo $message;
- exit;
- }
- }
- }
- } else {
- if (is_string($res)) {
- $result['errorMessage'] = $res;
- } else {
- $result['errorMessage'] = 'User can not be subscribed';
- }
- $result['pass'] = false;
- }
- break;
- case 'confirm':
-
- if (isset($data['newStatus'])) {
-
- $res = $plugin->updateQueueStatus($data, $data['newStatus']);
- if ($res === true) {
-
-
- $fieldsArray = array('description', 'target', 'mode', 'publication_end_date', 'recommended_number_of_participants');
- $sessionArray = api_get_session_info($data['sessionId']);
- $extraSession = new ExtraFieldValue('session');
- $extraField = new ExtraField('session');
-
- $fieldList = $extraField->get_all(array(
- 'field_variable IN ( ?, ?, ?, ?, ?)' => $fieldsArray
- ));
-
- foreach ($fieldList as $field) {
- $fields[$field['id']] = $field['field_variable'];
- }
- $mergedArray = array_merge(array($data['sessionId']), array_keys($fields));
- $sessionFieldValueList = $extraSession->get_all(array('session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray));
- foreach ($sessionFieldValueList as $sessionFieldValue) {
-
- if (isset($fields[$sessionFieldValue['field_id']])) {
- $var = $fields[$sessionFieldValue['field_id']];
- $val = $sessionFieldValue['field_value'];
-
- $sessionArray[$var] = $val;
- }
- }
-
- $studentArray = api_get_user_info($data['studentUserId']);
- $studentArray['picture'] = UserManager::get_user_picture_path_by_id($studentArray['user_id'], 'web', false, true);
- $studentArray['picture'] = UserManager::get_picture_user($studentArray['user_id'], $studentArray['picture']['file'], 22, USER_IMAGE_SIZE_MEDIUM);
-
- $superiorId = UserManager::getStudentBoss($data['studentUserId']);
- if (!empty($superiorId)) {
- $superiorArray = api_get_user_info($superiorId);
- } else {
- $superiorArray = null;
- }
-
- $adminsArray = UserManager::get_all_administrators();
- $isWesternNameOrder = api_is_western_name_order();
- foreach ($adminsArray as &$admin) {
- $admin['complete_name'] = $isWesternNameOrder ?
- $admin['firstname'] . ', ' . $admin['lastname'] :
- $admin['lastname'] . ', ' . $admin['firstname']
- ;
- }
- unset($admin);
-
- $data['student'] = $studentArray;
- $data['superior'] = $superiorArray;
- $data['admins'] = $adminsArray;
- $data['session'] = $sessionArray;
- $data['signature'] = api_get_setting('Institution');
- $data['admin_view_url'] = api_get_path(WEB_PLUGIN_PATH) . 'advanced_subscription/src/admin_view.php?s=' . $data['sessionId'];
-
- if (empty($data['mailAction'])) {
-
- switch ($data['newStatus']) {
- case ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_APPROVED:
- $data['mailAction'] = ADVANCED_SUBSCRIPTION_ACTION_SUPERIOR_APPROVE;
- break;
- case ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_DISAPPROVED:
- $data['mailAction'] = ADVANCED_SUBSCRIPTION_ACTION_SUPERIOR_DISAPPROVE;
- break;
- case ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED:
- $data['mailAction'] = ADVANCED_SUBSCRIPTION_ACTION_ADMIN_APPROVE;
- break;
- case ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_DISAPPROVED:
- $data['mailAction'] = ADVANCED_SUBSCRIPTION_ACTION_ADMIN_DISAPPROVE;
- break;
- default:
- break;
- }
- }
-
- if ($data['newStatus'] == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED) {
- SessionManager::suscribe_users_to_session($data['sessionId'], array($data['studentUserId']), null, false);
- }
-
- $result['mailIds'] = $plugin->sendMail($data, $data['mailAction']);
-
- if (!empty($result['mailIds'])) {
- $result['error'] = false;
- $result['errorMessage'] = 'User has been processed';
-
- if (isset($result['mailIds']['render'])) {
-
- $message = MessageManager::get_message_by_id($result['mailIds']['render']);
- $message = str_replace(array('<br /><hr>', '<br />', '<br/>'), '', $message['content']);
- echo $message;
- exit;
- }
- }
- } else {
- $result['errorMessage'] = 'User queue can not be updated';
- }
- }
- break;
- case 'terms_response':
-
- if (isset($data['accept_terms']) && $data['accept_terms'] == 1) {
- $legalPlugin = CourseLegalPlugin::create()->saveUserLegal($data['studentId'], $data['courseId'], $data['sessionId']);
- } else {
- $result['errorMessage'] = 'Need terms response params';
- }
- break;
- default:
- $result['errorMessage'] = 'This action does not exist!';
- }
- }
- echo json_encode($result);
|