You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.3 KiB
51 lines
1.3 KiB
|
4 years ago
|
<?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':
|
||
|
|
if (!$meeting->isSignAttendance() ||
|
||
|
|
!$meeting->hasRegisteredUser($currentUser)
|
||
|
|
) {
|
||
|
|
api_not_allowed();
|
||
|
|
}
|
||
|
|
|
||
|
|
$registrant = $meeting->getRegistrant($currentUser);
|
||
|
|
|
||
|
|
$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;
|
||
|
|
}
|