Fuente: https://github.com/chamilo/chamilo-lms/releases/download/v1.11.40/chamilo-1.11.40.zip sha256: 1cf4bf2cc7bae1ef1a1eff643235db1d552f78ddf4b6dd1e2d2dac9868679439 Snapshot independiente (rama huerfana); diffable vs 1.11.38. vendor incluido.
51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
use Chamilo\PluginBundle\Zoom\Meeting;
|
|
use Symfony\Component\HttpFoundation\Request as HttpRequest;
|
|
|
|
require_once __DIR__.'/config.php';
|
|
|
|
api_block_anonymous_users(false);
|
|
|
|
$httpRequest = HttpRequest::createFromGlobals();
|
|
|
|
$meetingId = $httpRequest->get('meetingId', 0);
|
|
|
|
if (empty($meetingId)) {
|
|
api_not_allowed();
|
|
}
|
|
|
|
$plugin = ZoomPlugin::create();
|
|
/** @var Meeting $meeting */
|
|
$meeting = $plugin->getMeetingRepository()->findOneBy(['meetingId' => $meetingId]);
|
|
$currentUserId = api_get_user_id();
|
|
$currentUser = api_get_user_entity($currentUserId);
|
|
|
|
if (null === $meeting) {
|
|
api_not_allowed(false, $plugin->get_lang('MeetingNotFound'));
|
|
}
|
|
|
|
switch ($httpRequest->get('a')) {
|
|
case 'sign_attempt':
|
|
$registrant = $meeting->getRegistrantByUser($currentUser);
|
|
|
|
if (!$meeting->isSignAttendance() ||
|
|
null === $registrant
|
|
) {
|
|
api_not_allowed();
|
|
}
|
|
|
|
$file = $httpRequest->request->get('file', '');
|
|
|
|
$secToken = Security::get_token('zoom_signature');
|
|
|
|
if (!Security::check_token($secToken, null, 'zoom_signature')) {
|
|
api_not_allowed();
|
|
}
|
|
|
|
echo (int) $plugin->saveSignature($registrant, $file);
|
|
exit;
|
|
}
|