diff --git a/plugin/advancedsubscription/ajax/advsub.ajax.php b/plugin/advancedsubscription/ajax/advsub.ajax.php index d0a3af1bf4..005370b53d 100644 --- a/plugin/advancedsubscription/ajax/advsub.ajax.php +++ b/plugin/advancedsubscription/ajax/advsub.ajax.php @@ -60,6 +60,33 @@ if (!empty($a) && !empty($u)) { case 'second': // Subscription $res = AdvancedSubscriptionPlugin::create()->startSubscription($u, $s, $params); if ($res === true) { + // send mail to superior + $sessionArray = api_get_session_info($s); + $extraSession = new ExtraFieldValue('session'); + $var = $extraSession->get_values_by_handler_and_field_variable($s, 'as_description'); + $sessionArray['description'] = $var['field_valiue']; + $var = $extraSession->get_values_by_handler_and_field_variable($s, 'publico_objetivo'); + $sessionArray['publico_objetivo'] = $var['field_valiue']; + $var = $extraSession->get_values_by_handler_and_field_variable($s, 'modalidad'); + $sessionArray['modalidad'] = $var['field_valiue']; + $var = $extraSession->get_values_by_handler_and_field_variable($s, 'fin_publicacion'); + $sessionArray['publico_objetivo'] = $var['field_value']; + $var = $extraSession->get_values_by_handler_and_field_variable($s, 'numero_recomendado_participantes'); + $sessionArray['recommended_subscription_limit'] = $var['field_valiue']; + $studentArray = api_get_user_info($u); + $superiorArray = api_get_user_info($u); + $adminArray = api_get_user_info($u); + $studentArray = api_get_user_info($u); + + $data = array( + 'student' => $studentArray, + 'superior' => $superiorArray, + 'admin' => $adminArray, + 'session' => $sessionArray, + 'signature' => 'AQUI DEBE IR UNA FIRMA', + ); + + $plugin->sendMail($data, ADV_SUB_ACTION_STUDENT_REQUEST); $result['error'] = false; $result['errorMessage'] = 'No error'; $result['pass'] = true; diff --git a/plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.class.php b/plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.class.php index 20e600f2ac..60f8fc34ae 100644 --- a/plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.class.php +++ b/plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.class.php @@ -250,13 +250,14 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface /** * Send message for the student subscription approval to a specific session - * @param $studentId - * @param $subject - * @param $content - * @param $sessionId + * @param int $studentId + * @param string $subject + * @param string $content + * @param int $sessionId + * @param bool $save * @return bool|int */ - public function sendMailMessage($studentId, $subject, $content, $sessionId) + public function sendMailMessage($studentId, $subject, $content, $sessionId, $save = false) { global $_configuration; // @TODO: Add $_configuration['no_reply_user_id'] to configuration file @@ -273,7 +274,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $_configuration['no_reply_user_id'] ); - if (!empty($mailId)) { + if ($save && !empty($mailId)) { // Save as sent message $mailId = $this->saveLastMessage($mailId, $studentId, $sessionId); } @@ -376,7 +377,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $data['superior']['id'], $this->get_lang('MailStudentRequest'), $tpl->fetch('/advancedsubscription/views/advsub_request_superior.tpl'), - $data['session_id'] + $data['session_id'], + true ); break; case ADV_SUB_ACTION_SUPERIOR_APPROVE: @@ -399,7 +401,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $data['admin']['id'], $this->get_lang('MailStudentRequest'), $tpl->fetch('/advancedsubscription/views/advsub_request_approved_info_admin.tpl'), - $data['session_id'] + $data['session_id'], + true ); break; case ADV_SUB_ACTION_SUPERIOR_DISAPPROVE: @@ -408,7 +411,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $data['student']['id'], $this->get_lang('MailStudentRequest'), $tpl->fetch('/advancedsubscription/views/advsub_request_superior_disapproved.tpl'), - $data['session_id'] + $data['session_id'], + true ); // Mail to superior $mailIds[] = $this->sendMailMessage( @@ -431,7 +435,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $data['superior']['id'], $this->get_lang('MailStudentRequest'), $tpl->fetch('/advancedsubscription/views/advsub_request_superior.tpl'), - $data['session_id'] + $data['session_id'], + true ); break; case ADV_SUB_ACTION_ADMIN_APPROVE: @@ -454,7 +459,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $data['admin']['id'], $this->get_lang('MailStudentRequest'), $tpl->fetch('/advancedsubscription/views/advsub_approval_admin_accepted_notice_admin.tpl'), - $data['session_id'] + $data['session_id'], + true ); break; case ADV_SUB_ACTION_ADMIN_DISAPPROVE: @@ -463,7 +469,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface $data['student']['id'], $this->get_lang('MailStudentRequest'), $tpl->fetch('/advancedsubscription/views/advsub_approval_admin_rejected_notice_student.tpl'), - $data['session_id'] + $data['session_id'], + true ); // Mail to superior $mailIds[] = $this->sendMailMessage( diff --git a/plugin/advancedsubscription/src/HookAdvancedSubscription.class.php b/plugin/advancedsubscription/src/HookAdvancedSubscription.class.php index 72aeb16905..0aeef46335 100644 --- a/plugin/advancedsubscription/src/HookAdvancedSubscription.class.php +++ b/plugin/advancedsubscription/src/HookAdvancedSubscription.class.php @@ -402,7 +402,7 @@ class HookAdvancedSubscription extends HookObserver implements } /** - * @param $data + * @param array $data * @return null|soap_fault|string */ public static function WSAdvsubEncrypt($data) @@ -411,17 +411,22 @@ class HookAdvancedSubscription extends HookObserver implements if ($debug) error_log('WSUserSubscribedInCourse'); if ($debug) error_log('Params '. print_r($data, 1)); - if (!WSHelperVerifyKey($data)) { - //return return_error(WS_ERROR_SECRET_KEY); - } - // Check if data is a string - if (is_string($data)) { - $enc = AdvancedSubscriptionPlugin::create()->encrypt($data); - if (is_string($enc) && strlen($enc) > 16) { - $result = $enc; - } else { - $result = return_error(WS_ERROR_INVALID_INPUT); + // Check if data is an array + if (is_array($data)) { + if (!WSHelperVerifyKey($data)) { + + //return return_error(WS_ERROR_SECRET_KEY); + } + $result = AdvancedSubscriptionPlugin::create()->encrypt($data); + } elseif (is_string($data)) { + $data = unserialize($data); + if (!WSHelperVerifyKey($data)) { + + //return return_error(WS_ERROR_SECRET_KEY); + } + if (is_array($data)) { + $result = AdvancedSubscriptionPlugin::create()->encrypt($data); } } else { // Return soap fault Not valid input params diff --git a/plugin/advancedsubscription/views/advsub_request_received.tpl b/plugin/advancedsubscription/views/advsub_request_received.tpl index 816c871eba..4746091589 100644 --- a/plugin/advancedsubscription/views/advsub_request_received.tpl +++ b/plugin/advancedsubscription/views/advsub_request_received.tpl @@ -59,7 +59,7 @@
Estimado:
-Hemos recibido y registrado su solicitud de inscripción al curso {{ sesion.title }} para iniciarse el {{ session.start_date }}.
Su inscripción es pendiente primero de la aprobación de su superior, y luego de la disponibilidad de cupos. Un correo ha sido enviado a su superior para revisión y aprobación de su solicitud.
Gracias.
diff --git a/plugin/advancedsubscription/views/advsub_request_received_reminder.tpl b/plugin/advancedsubscription/views/advsub_request_received_reminder.tpl index 76048ffe49..4d592c514f 100644 --- a/plugin/advancedsubscription/views/advsub_request_received_reminder.tpl +++ b/plugin/advancedsubscription/views/advsub_request_received_reminder.tpl @@ -59,7 +59,7 @@Estimado:
-Este correo es para confirmar que hemos recibido y registrado su solicitud de inscripción al curso {{ session.title }}, por iniciarse el {{ session.start_date }}.
Su inscripción todavía no ha sido aprobada por su superior, por lo que hemos vuelto a enviarle un correo electrónico de recordatorio.
Gracias por su paciencia.