checkToken() public method

Check for a download token.
public checkToken ( Horde_Variables $vars )
$vars Horde_Variables Form variables.
Esempio n. 1
0
Horde_Registry::appInit('imp', array('session_control' => 'readonly'));
$vars = $injector->getInstance('Horde_Variables');
/* Run through action handlers */
switch ($vars->actionID) {
    case 'compose_attach_preview':
        $view_ob = new IMP_Compose_View($vars->composeCache);
        $res = $view_ob->composeAttachPreview($vars->id, true, $vars->ctype);
        break;
    case 'print_attach':
        $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
        $view_ob->checkToken($vars);
        $res = $view_ob->printAttach($vars->id);
        break;
    case 'view_attach':
        $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
        $view_ob->checkToken($vars);
        $res = $view_ob->viewAttach($vars->id, $vars->mode, $vars->autodetect, $vars->ctype);
        break;
    case 'view_source':
        $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
        $res = $view_ob->viewSource();
        break;
}
if (empty($res)) {
    exit;
}
if (is_resource($res['data'])) {
    fseek($res['data'], 0, SEEK_END);
    $size = ftell($res['data']);
} else {
    $size = strlen($res['data']);
Esempio n. 2
0
 /**
  * URL parameters:
  *   - actionID
  *
  * @throws IMP_Exception
  */
 public function download(Horde_Variables $vars)
 {
     global $injector, $registry;
     /* Check for an authenticated user. */
     if (!$registry->isAuthenticated(array('app' => 'imp'))) {
         $e = new IMP_Exception(_("User is not authenticated."));
         $e->logged = true;
         throw $e;
     }
     switch ($vars->actionID) {
         case 'download_all':
             $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
             $view_ob->checkToken($vars);
             return $view_ob->downloadAll();
         case 'download_attach':
             $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
             $view_ob->checkToken($vars);
             return $view_ob->downloadAttach($vars->id, $vars->zip);
         case 'download_mbox':
             $mlist = IMP_Mailbox::formFrom($vars->mbox_list);
             $mbox = $injector->getInstance('IMP_Mbox_Generate')->generate($mlist);
             $name = is_array($mlist) ? reset($mlist) : $mlist;
             switch ($vars->type) {
                 case 'mbox':
                     return array('data' => $mbox, 'name' => $name . '.mbox', 'type' => 'text/plain; charset=UTF-8');
                 case 'mboxzip':
                     try {
                         $data = Horde_Compress::factory('Zip')->compress(array(array('data' => $mbox, 'name' => $name . '.mbox')), array('stream' => true));
                         fclose($mbox);
                     } catch (Horde_Exception $e) {
                         fclose($mbox);
                         throw $e;
                     }
                     return array('data' => $data, 'name' => $name . '.zip', 'type' => 'application/zip');
             }
             break;
         case 'download_render':
             $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
             $view_ob->checkToken($vars);
             return $view_ob->downloadRender($vars->id, $vars->mode, $vars->ctype);
         case 'save_message':
             $view_ob = new IMP_Contents_View(new IMP_Indices_Mailbox($vars));
             return $view_ob->saveMessage();
     }
     return array();
 }