Ejemplo n.º 1
0
 function process($webscript, $method)
 {
     $this->deleteInvalidTickets();
     try {
         $reflectedWebscript = new ReflectionAnnotatedClass(ucfirst($webscript) . "Webscript");
         if ($reflectedWebscript->hasMethod($method)) {
             $methodInstance = $reflectedWebscript->getMethod($method);
             if ($methodInstance->isPublic()) {
                 $args = "";
                 $ticket = "";
                 if ($methodInstance->hasAnnotation("Get")) {
                     $args = $_GET['data'];
                     $ticket = $_GET['ticket'];
                 }
                 if ($methodInstance->hasAnnotation("Post")) {
                     $args = $_POST['data'];
                     $ticket = $_POST['ticket'];
                 }
                 if ($methodInstance->hasAnnotation("RequiresAuthentication")) {
                     if ($this->checkAuthentication($ticket, $methodInstance->getAnnotation("RequiresAuthentication"))) {
                         $this->extendAuthentication($ticket);
                     } else {
                         return $this->authenticationFailed();
                     }
                 }
                 return $methodInstance->invoke($reflectedWebscript->newInstance(), $args, $ticket);
             }
         } else {
             return $this->notFound();
         }
     } catch (ReflectionException $e) {
         return $this->notFound();
     }
 }
Ejemplo n.º 2
0
/**
 * Loads current action according TlalokesRequest or default configuration
 *
 * @author Basilio Briceno <*****@*****.**>
 * @param array $conf
 * @param TlalokesRequest $request
 */
function tlalokes_core_conf_get_action(&$conf, TlalokesRequest &$request)
{
    require_once 'ReflectionAnnotatedClass.php';
    require_once 'ControllerDefinition.php';
    require_once 'ActionDefinition.php';
    // reflect Annotations from current controller class
    $rc = new ReflectionAnnotatedClass($conf['current']['controller']);
    // try to find the @ControllerDefinition
    if (!$rc->hasAnnotation('ControllerDefinition')) {
        tlalokes_error_msg('Define annotation @ControllerDefinition in ' . $conf['current']['controller']);
    }
    // try to find the default action property in @ControllerDefinition
    if (!($default = $rc->getAnnotation('ControllerDefinition')->default)) {
        tlalokes_error_msg('Define a default action in @ControllerDefinition in ' . $conf['current']['controller']);
    }
    // set the current action from TlalokesRequest or default if not found
    $conf['current']['action'] = !$rc->hasMethod($request->_action) ? $default : $request->_action;
    return $conf;
}