Browse Source

add webservices users and session

Alex Aragón 6 years ago
parent
commit
195834c4bf
3 changed files with 38 additions and 236 deletions
  1. 0 145
      app/courses/proxy.php
  2. 34 91
      main/inc/lib/webservices/Rest.php
  3. 4 0
      main/webservices/api/v2.php

+ 0 - 145
app/courses/proxy.php

@@ -1,145 +0,0 @@
-<?php
-/* For licensing terms, see /license.txt */
-
-/**
- * Script needed in order to avoid mixed content in links inside a learning path
- * In order to use this file you have to:
- *
- * 1. Modify configuration.php and add this setting: $_configuration['lp_fix_embed_content'] = true;
- * 2. Copy this file in app/courses/proxy.php
- * 3. Change your .htaccess in order to let the proxy.php to be read inside app/courses
- *
- */
-
-require_once '../config/configuration.php';
-
-/**
- * Returns "%" or "px"
- *
- * 800px => function returns "px"
- * 800% => function returns %
- *
- * @param string $value
- * @return string
- */
-function addPixelOrPercentage($value)
-{
-    $addPixel = strpos($value, 'px');
-    $addPixel = !($addPixel === false);
-    $addCharacter = '';
-    if ($addPixel == false) {
-        $addPercentage = strpos($value, '%');
-        $addPercentage = !($addPercentage === false);
-        if ($addPercentage) {
-            $addCharacter = '%';
-        }
-    } else {
-        $addCharacter = 'px';
-    }
-
-    return $addCharacter;
-}
-
-function get_http_response_code($theURL)
-{
-    $headers = get_headers($theURL);
-
-    return substr($headers[0], 9, 3);
-}
-
-
-$height = isset($_GET['height']) ? (int) $_GET['height'].addPixelOrPercentage($_GET['height']) : '';
-$width = isset($_GET['width']) ? (int) $_GET['width'].addPixelOrPercentage($_GET['width'])  : '';
-$vars = isset($_GET['flashvars']) ? htmlentities($_GET['flashvars']) : '';
-$src = isset($_GET['src']) ? htmlentities($_GET['src']) : '';
-$id = isset($_GET['id']) ? htmlentities($_GET['id']) : '';
-$type = isset($_GET['type']) ? $_GET['type'] : 'flash';
-
-// Fixes URL like: https://www.vopspsy.ugent.be/pdfs/download.php?own=mvsteenk&file=caleidoscoop.pdf
-if (strpos($src, 'download.php') !== false) {
-    $src = str_replace('download.php', 'download.php?', $src);
-    $src .= isset($_GET['own']) ? '&own='.htmlentities($_GET['own']) : '';
-    $src .= isset($_GET['file']) ? '&file='.htmlentities($_GET['file']) : '';
-}
-
-$result = get_http_response_code($src);
-$urlToTest = parse_url($src, PHP_URL_HOST);
-$g = stream_context_create (array('ssl' => array('capture_peer_cert' => true)));
-$r = @stream_socket_client("ssl://$urlToTest:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $g);
-$cont = stream_context_get_params($r);
-$convertToSecure = false;
-
-$certinfo = openssl_x509_parse($cont['options']['ssl']['peer_certificate']);
-if (isset($certinfo) && isset($certinfo['subject']) && isset($certinfo['subject']['CN'])) {
-    $certUrl = $certinfo['subject']['CN'];
-    $parsed = parse_url($certUrl);
-
-    // Remove www from URL
-    $parsedUrl = preg_replace('#^(http(s)?://)?w{3}\.#', '$1', $certUrl);
-
-    if ($urlToTest == $certUrl || $parsedUrl == $urlToTest) {
-        $convertToSecure = true;
-    }
-
-    if ($urlToTest != $certUrl) {
-        // url and cert url are different this will show a warning in browsers
-        // use normal "http" version
-        $result = false;
-    }
-}
-
-if ($result == false) {
-    $src = str_replace('https', 'http', $src);
-}
-
-if ($convertToSecure) {
-    $src = str_replace('http', 'https', $src);
-}
-
-$result = '';
-switch ($type) {
-    case 'link':
-        // Check if links comes from a course
-        $srcParts = explode('/', $src);
-        $srcParts = array_filter($srcParts);
-        $srcParts = array_values($srcParts);
-
-        if (isset($srcParts[0], $srcParts[2]) && $srcParts[0] === 'courses' && $srcParts[2] === 'document') {
-            $src = $_configuration['root_web'].$src;
-        }
-
-        if (strpos($src, 'http') === false) {
-            $src = "http://$src";
-        }
-        header('Location: '.$src);
-        exit;
-        break;
-    case 'iframe':
-        $result = '<iframe src="'.$src.'" width="'.$width.'" height="'.$height.'" ></iframe>';
-        break;
-    case 'flash':
-        $result =  '
-        <object 
-            id="'.$id.'" width="'.$width.'" height="'.$height.'" align="center"
-            codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">
-            <param name="id" value="'.$id.'">
-            <param name="width" value="'.$width.'">
-            <param name="height" value="'.$height.'">
-            <param name="bgcolor" value="#ffffff">
-            <param name="align" value="center">
-            <param name="allowfullscreen" value="true">
-            <param name="allowscriptaccess" value="always">
-            <param name="quality" value="high">
-            <param name="wmode" value="transparent">
-            <param name="flashvars" value="'.$vars.'">
-            <param name="src" value="'.$src.'">
-            <embed 
-                id="'.$id.'" width="'.$width.'" height="'.$height.'" bgcolor="#ffffff" align="center" 
-                allowfullscreen="true" allowscriptaccess="always" quality="high" wmode="transparent" 
-                flashvars="'.$vars.'" src="'.$src.'"
-                type="application/x-shockwave-flash" 
-            >
-        </object>';
-}
-
-echo $result;

+ 34 - 91
main/inc/lib/webservices/Rest.php

@@ -51,6 +51,7 @@ class Rest extends WebService
     const GET_USERS = 'get_users';
     const GET_COURSE = 'get_courses';
     const ADD_COURSES_SESSION = 'add_courses_session';
+    const ADD_USER_SESSION = 'add_users_session';
 
     /**
      * @var Session
@@ -1131,18 +1132,9 @@ class Rest extends WebService
         $tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
         $extraList = [];
         $results = [];
-
+        $idCampus = isset($courseParam['id_campus']) ? $courseParam['id_campus'] : 1;
         $title = isset($courseParam['title']) ? $courseParam['title'] : '';
-        $categoryCode = isset($courseParam['category_code']) ? $courseParam['category_code'] : '';
-        $wantedCode = isset($courseParam['wanted_code']) ? intval($courseParam['wanted_code']) : 0;
-        $tutorName = isset($courseParam['tutor_name']) ? $courseParam['tutor_name'] : '';
-        $courseLanguage = isset($courseParam['language']) ? $courseParam['language'] : null;
-        $originalCourseIdName = isset($courseParam['original_course_id_name'])
-            ? $courseParam['original_course_id_name']
-            : null;
-        $originalCourseIdValue = isset($courseParam['original_course_id_value'])
-            ? $courseParam['original_course_id_value']
-            : null;
+        $wantedCode = isset($courseParam['wanted_code']) ? $courseParam['wanted_code'] : null;
         $diskQuota = isset($courseParam['disk_quota']) ? $courseParam['disk_quota'] : '100';
         $visibility = isset($courseParam['visibility']) ? (int)$courseParam['visibility'] : null;
 
@@ -1155,94 +1147,24 @@ class Rest extends WebService
             }
         }
 
-        // Check whether exits $x_course_code into user_field_values table.
-        $courseInfo = CourseManager::getCourseInfoFromOriginalId(
-            $originalCourseIdValue,
-            $originalCourseIdName
-        );
-
-        if (!empty($courseInfo)) {
-            if ($courseInfo['visibility'] != 0) {
-                $sql = "UPDATE $tableCourse SET
-                            course_language = '" . Database::escape_string($courseLanguage) . "',
-                            title = '" . Database::escape_string($title) . "',
-                            category_code = '" . Database::escape_string($categoryCode) . "',
-                            tutor_name = '" . Database::escape_string($tutorName) . "',
-                            visual_code = '" . Database::escape_string($wantedCode) . "'";
-                if ($visibility !== null) {
-                    $sql .= ", visibility = $visibility ";
-                }
-                $sql .= " WHERE id = " . $courseInfo['real_id'];
-                Database::query($sql);
-                if (is_array($extraList) && count($extraList) > 0) {
-                    foreach ($extraList as $extra) {
-                        $extraFieldName = $extra['field_name'];
-                        $extraFieldValue = $extra['field_value'];
-                        // Save the external system's id into course_field_value table.
-                        CourseManager::update_course_extra_field_value(
-                            $courseInfo['code'],
-                            $extraFieldName,
-                            $extraFieldValue
-                        );
-                    }
-                }
-                $results[] = $courseInfo['code'];
-            }
-        }
 
         $params = [];
         $params['title'] = $title;
-        $params['wanted_code'] = $wantedCode;
-        $params['category_code'] = $categoryCode;
-        $params['course_category'] = $categoryCode;
-        $params['tutor_name'] = $tutorName;
-        $params['course_language'] = $courseLanguage;
+        $params['wanted_code'] = 'CAMPUS_'.$idCampus.'_'.$wantedCode;
         $params['user_id'] = $this->user->getId();
         $params['visibility'] = $visibility;
         $params['disk_quota'] = $diskQuota;
-        $params['subscribe'] = empty($courseParam['subscribe']) ? 0 : 1;
-        $params['unsubscribe'] = empty($courseParam['unsubscribe']) ? 0 : 1;
 
-        $courseInfo = CourseManager::create_course($params, $params['user_id']);
+        $courseInfo = CourseManager::create_course($params, $params['user_id'],$idCampus);
 
         if (!empty($courseInfo)) {
-            $courseCode = $courseInfo['code'];
-
-            // Save new field label into course_field table
-            CourseManager::create_course_extra_field(
-                $originalCourseIdName,
-                1,
-                $originalCourseIdName,
-                ''
-            );
-
-            // Save the external system's id into user_field_value table.
-            CourseManager::update_course_extra_field_value(
-                $courseCode,
-                $originalCourseIdName,
-                $originalCourseIdValue
-            );
-
-            if (is_array($extraList) && count($extraList) > 0) {
-                foreach ($extraList as $extra) {
-                    $extraFieldName = $extra['field_name'];
-                    $extraFieldValue = $extra['field_value'];
-                    // Save new fieldlabel into course_field table.
-                    CourseManager::create_course_extra_field(
-                        $extraFieldName,
-                        1,
-                        $extraFieldName,
-                        ''
-                    );
-                    // Save the external system's id into course_field_value table.
-                    CourseManager::update_course_extra_field_value(
-                        $courseCode,
-                        $extraFieldName,
-                        $extraFieldValue
-                    );
-                }
-            }
-            $results[] = $courseCode;
+            $results['status'] = true;
+            $results['code_course'] = $courseInfo['code'];
+            $results['title_course'] = $courseInfo['title'];
+            $results['message'] = 'Curso registrado con exito';
+        } else {
+            $results['status'] = false;
+            $results['message'] = 'Error al registrar el curso';
         }
 
         return $results;
@@ -1257,7 +1179,6 @@ class Rest extends WebService
     {
         $results = [];
         $orig_user_id_value = [];
-        $userManager = UserManager::getManager();
         $firstName = $user_param['firstname'];
         $lastName = $user_param['lastname'];
         $status = $user_param['status'];
@@ -1533,5 +1454,27 @@ class Rest extends WebService
             ];
         }
     }
+
+    public function addUsersSession(array $params){
+        $sessionId = $params['id_session'];
+        $userList = $params['list_users'];
+
+        if (!is_array($userList)) {
+            $userList = [];
+        }
+
+        SessionManager::subscribeUsersToSession(
+            $sessionId,
+            $userList,
+            null,
+            false
+        );
+        
+        return [
+            'status' => true,
+            'message' => 'Error al añadir usuarios a la sessión'
+        ];
+
+    }
 }
 

+ 4 - 0
main/webservices/api/v2.php

@@ -159,6 +159,10 @@ try {
             $data = $restApi->addCoursesSession($_POST);
             $restResponse->setData($data);
             break;
+        case Rest::ADD_USER_SESSION;
+            $data = $restApi->addUsersSession($_POST);
+            $restResponse->setData($data);
+            break;
         case Rest::SAVE_FORUM_POST:
             if (
                 empty($_POST['title']) || empty($_POST['text']) || empty($_POST['thread']) || empty($_POST['forum'])