protected function invokeHandler()
 {
     $specific = array();
     $size = getimagesize($this->file->getAbsPath());
     if ($size !== false) {
         $specific['imagesize'] = $size[0] . ' x ' . $size[1] . ' px';
     } else {
         $specific['imagesize'] = System::getLanguage()->_('Unknown');
     }
     if (extension_loaded('imagick') && class_exists('Imagick')) {
         try {
             $i = new Imagick($this->file->getAbsPath());
             $specific['format'] = $i->getimageformat();
         } catch (Exception $e) {
             Log::handleException($e, false);
             if ($this->file->ext == "svg") {
                 Log::sysLog('ImageHandler', '"librsvg" is not installed. Without it Imagick could not handle .svg files!');
             }
         }
     } else {
         $specific['format'] = System::getLanguage()->_('Unknown');
     }
     $this->smarty->assign('specific', $specific);
     $this->smarty->display('handler/image.tpl');
 }
 /**
  * Construct
  */
 public function __construct()
 {
     parent::__construct();
     $this->JSRMS = new JSRMS();
     $this->JSRMS->requireResource('system');
     $this->muteExpectedErrors();
     $this->setCacheDir(SYSTEM_ROOT . '/classes/smarty/cache/');
     $this->setCompileDir(SYSTEM_ROOT . '/classes/smarty/templates_c/');
     $this->setTemplateDir(SYSTEM_ROOT . '/view/');
     $this->registerObject('Router', Router::getInstance(), array('build'), false);
     $this->registerObject('L10N', System::getLanguage(), array('_'), false);
     $this->assign('LoggedIn', System::getUser() != NULL);
     $this->assign('User', System::getUser());
     $this->assign('Navigation', Navigation::$elements);
     $this->assign('LangStrings', System::getLanguage()->getAllStrings());
     // Configuration
     $this->assign('HTTP_BASEDIR', System::getBaseURL());
     $this->assign('MOD_REWRITE', MOD_REWRITE);
     $this->assign('MAX_UPLOAD_SIZE', Utils::maxUploadSize());
     if (System::getSession()->getData('successMsg', '') != '') {
         $this->assign('successMsg', System::getSession()->getData('successMsg', ''));
         System::getSession()->setData('successMsg', '');
     }
     if (System::getSession()->getData('errorMsg', '') != '') {
         $this->assign('errorMsg', System::getSession()->getData('errorMsg', ''));
         System::getSession()->setData('errorMsg', '');
     }
     if (System::getSession()->getData('infoMsg', '') != '') {
         $this->assign('infoMsg', System::getSession()->getData('infoMsg', ''));
         System::getSession()->setData('infoMsg', '');
     }
 }
 /**
  * Create new request and sends email to user
  * @static
  * @param string Mail adress
  * @throws MailFailureException, UserNotFoundException
  */
 public static function createRequest($mail)
 {
     LostPW::cleanUp();
     $user = User::find('email', $mail);
     if ($user == NULL) {
         throw new UserNotFoundException();
     }
     // Delete old requests
     $sql = System::getDatabase()->prepare('DELETE FROM lostpw WHERE user_ID = :uid');
     $sql->execute(array(':uid' => $user->uid));
     // Create new request
     $hash = LostPW::createHash();
     $sql = System::getDatabase()->prepare('INSERT INTO lostpw (user_ID, hash, time) VALUES (:uid, :hash, :time)');
     $sql->execute(array(':uid' => $user->uid, ':hash' => $hash, ':time' => time()));
     // Send Mail
     $content = new Template();
     $content->assign('link', Router::getInstance()->build('AuthController', 'lostpw_check', array('hash' => $hash)));
     $content->assign('user', $user);
     $content->assign('title', System::getLanguage()->_('LostPW'));
     // Determine template file
     $tpl = 'mails/lostpw.' . LANGUAGE . '.tpl';
     foreach ($content->getTemplateDir() as $dir) {
         $file = 'mails/lostpw.' . $user->lang . '.tpl';
         if (file_exists($dir . $file)) {
             $tpl = $file;
             break;
         }
     }
     $mail = new Mail(System::getLanguage()->_('LostPW'), $content->fetch($tpl), $user);
     $mail->send();
 }
function smarty_modifier_lang($string, $param = NULL)
{
    if ($param === NULL) {
        return System::getLanguage()->_($string);
    }
    return sprintf(System::getLanguage()->_($string), $param);
}
 private function loadFile()
 {
     if ($this->file != NULL) {
         return;
     }
     $this->file = File::find('alias', $this->getParam('alias', ''));
     if ($this->file == NULL) {
         System::displayError(System::getLanguage()->_('ErrorFileNotFound'), '404 Not Found');
     }
     if (System::getUser() != NULL) {
         $user_id = System::getUser()->uid;
     } else {
         $user_id = -1;
     }
     if ($user_id != $this->file->uid) {
         if ($this->file->permission == FilePermissions::PRIVATE_ACCESS) {
             System::displayError(System::getLanguage()->_('PermissionDenied'), '403 Forbidden');
             exit;
         } elseif ($this->file->permission == FilePermissions::RESTRICTED_ACCESS) {
             if (is_array(System::getSession()->getData("authenticatedFiles"))) {
                 if (!in_array($this->file->alias, System::getSession()->getData("authenticatedFiles"))) {
                     System::forwardToRoute(Router::getInstance()->build('AuthController', 'authenticateFile', $this->file));
                     exit;
                 }
             } else {
                 System::forwardToRoute(Router::getInstance()->build('AuthController', 'authenticateFile', $this->file));
                 exit;
             }
         }
     }
 }
 /**
  * Constructor
  * @param string Field name
  * @param string Label
  * @param boolean Required field?
  */
 public function __construct($name, $label, $required = false)
 {
     $this->type = 'checkbox';
     $this->name = $name;
     $this->label = $label;
     $this->required = $required;
     $this->error_msg = System::getLanguage()->_('ErrorPleaseCheck');
 }
Beispiel #7
0
 /**
  * Constructor
  *
  * @param string Name des Formulars
  * @param string Formular-Ziel
  * @param string Formular-Typ (POST)
  */
 public function __construct($name, $action = '', $method = 'post')
 {
     $this->name = $name;
     $this->action = $action;
     $this->method = strtolower($method);
     $this->submit = new Button(System::getLanguage()->_('Submit'));
     $this->submitName = 'submit';
 }
 public function index()
 {
     $user = System::getUser();
     $form = new Form('form-profile');
     $form->setAttribute('data-noajax', 'true');
     $form->binding = $user;
     $fieldset = new Fieldset(System::getLanguage()->_('General'));
     $firstname = new Text('firstname', System::getLanguage()->_('Firstname'));
     $firstname->binding = new Databinding('firstname');
     $lastname = new Text('lastname', System::getLanguage()->_('Lastname'));
     $lastname->binding = new Databinding('lastname');
     $email = new Text('email', System::getLanguage()->_('EMail'), true);
     $email->binding = new Databinding('email');
     $email->blacklist = $this->getListOfMailAdresses($user);
     $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists');
     $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages());
     $language->binding = new Databinding('lang');
     $fieldset->addElements($firstname, $lastname, $email, $language);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Password'));
     $password = new Password('password', System::getLanguage()->_('Password'));
     $password->minlength = PASSWORD_MIN_LENGTH;
     $password->binding = new Databinding('password');
     $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword'));
     $fieldset->addElements($password, $password2);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('Settings'));
     $quota = new Text('quota', System::getLanguage()->_('Quota'));
     if ($user->quota > 0) {
         $quota->value = System::getLanguage()->_('QuotaAvailabe', Utils::formatBytes($user->getFreeSpace()), Utils::formatBytes($user->quota));
     } else {
         $quota->value = System::getLanguage()->_('Unlimited');
     }
     $quota->readonly = true;
     $fieldset->addElements($quota);
     $form->addElements($fieldset);
     if (Utils::getPOST('submit', false) !== false) {
         if (!empty($password->value) && $password->value != $password2->value) {
             $password2->error = System::getLanguage()->_('ErrorInvalidPasswords');
         } else {
             if ($form->validate()) {
                 $form->save();
                 System::getUser()->save();
                 System::getSession()->setData('successMsg', System::getLanguage()->_('ProfileUpdated'));
                 System::forwardToRoute(Router::getInstance()->build('ProfileController', 'index'));
                 exit;
             }
         }
     } else {
         $form->fill();
     }
     $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk'));
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('MyProfile'));
     $smarty->assign('heading', System::getLanguage()->_('MyProfile'));
     $smarty->assign('form', $form->__toString());
     $smarty->display('form.tpl');
 }
 /**
  * Constructor
  * @param string Field name
  * @param string Label
  * @param boolean Required field?
  */
 public function __construct($name, $label, $required = false)
 {
     $this->type = 'textarea';
     $this->name = $name;
     $this->label = $label;
     $this->required = $required;
     $this->columns = 30;
     $this->rows = 10;
     $this->error_msg = System::getLanguage()->_('ErrorEmptyTextfield');
 }
 /**
  * Constructor
  * @param string Field name
  * @param string Label
  * @param boolean Required field?
  * @param string Allowed input
  * @param int Max length
  * @param int Min length
  */
 public function __construct($name, $label, $required = false, $valid = '*', $maxlength = false, $minlength = false)
 {
     $this->type = 'text';
     $this->name = $name;
     $this->label = $label;
     $this->required = $required;
     $this->valid = $valid;
     $this->maxlength = $maxlength;
     $this->minlength = $minlength;
     $this->error_msg = array(0 => System::getLanguage()->_('ErrorInvalidLengthMax'), 1 => System::getLanguage()->_('ErrorInvalidLengthMin'), 2 => System::getLanguage()->_('ErrorEmptyTextfield'), 3 => System::getLanguage()->_('ErrorInvalidNumber'), 4 => System::getLanguage()->_('ErrorInvalidInput'));
 }
 /** 
  * Formats a given timestamp to a localised date format
  * @static
  * @param int Timestamp
  * @return string Formatted date
  */
 public static function format($timestamp)
 {
     $day = date(System::getLanguage()->_('DateFormat'), $timestamp);
     $time = date(System::getLanguage()->_('TimeFormat'), $timestamp);
     if ($timestamp >= strtotime('yesterday')) {
         $day = System::getLanguage()->_('Yesterday');
     }
     if ($timestamp >= strtotime('today') && $timestamp < strtotime('tomorrow')) {
         $day = System::getLanguage()->_('Today');
     }
     return $day . ' ' . $time;
 }
 protected function invokeHandler()
 {
     $error = array();
     if (Utils::isLocalhostServer()) {
         $error[] = System::getLanguage()->_('NoLocalhost');
     }
     if ($this->file->permission != FilePermissions::PUBLIC_ACCESS) {
         $error[] = System::getLanguage()->_('OnlyPublicFiles');
     }
     $router = Router::getInstance();
     $link = $router->build('DownloadController', 'raw', $this->file);
     $link = "http://view.officeapps.live.com/op/view.aspx?src=" . urlencode($link);
     $this->smarty->assign('error', join('<br>', $error));
     $this->smarty->assign('link', $link);
     $this->smarty->display('handler/office.tpl');
 }
 /**
  * Constructor
  * @param string Field name
  * @param string Label
  * @param string[]|string[][] Options
  */
 public function __construct($name, $label, $options = array(), $select_text = '')
 {
     $this->name = $name;
     $this->label = $label;
     $this->select_text = $select_text;
     $this->required = false;
     $this->type = 'select';
     $this->error_msg = array(0 => System::getLanguage()->_('ErrorChooseOption'), 1 => System::getLanguage()->_('ErrorInvalidOption'));
     if (!empty($select_text)) {
         $this->required = true;
     }
     if (is_array($options) && count($options) > 0) {
         $this->options = $options;
         return true;
     } else {
         return false;
     }
 }
 public function php()
 {
     parent::checkAuthentification();
     parent::checkIfAdmin();
     $entries = LogEntry::find('log', 'php');
     if ($entries == NULL) {
         $entries = array();
     } else {
         if ($entries instanceof LogEntry) {
             $entries = array($entries);
         }
     }
     usort($entries, array('LogEntry', 'compare'));
     $smarty = new Template();
     $smarty->assign('entries', $entries);
     $smarty->assign('title', System::getLanguage()->_('Log'));
     $smarty->assign('heading', System::getLanguage()->_('PHPEntries'));
     $smarty->assign('showPHPEntries', true);
     $smarty->display('log/log.tpl');
 }
 public static function getAll()
 {
     return array(FilePermissions::PUBLIC_ACCESS => System::getLanguage()->_('PermissionPublic'), FilePermissions::RESTRICTED_ACCESS => System::getLanguage()->_('PermissionProtected'), FilePermissions::PRIVATE_ACCESS => System::getLanguage()->_('PermissionPrivate'));
 }
 /**
  * Handle uncaught exceptions
  */
 public static function handleException()
 {
     try {
         if (System::getLanguage() == NULL) {
             throw new Exception();
         }
         $msg = System::getLanguage()->_('UnknownError');
     } catch (Exception $e) {
         $msg = 'An unknown error occured.';
     }
     self::displayError($msg);
 }
 /**
  * Checks if user is an admin
  * if not - HTTP 403 is shown
  */
 public final function checkIfAdmin()
 {
     if (System::getUser() == NULL || !System::getUser()->isAdmin) {
         System::displayError(System::getLanguage()->_('PermissionDenied'), '403 Forbidden');
     }
 }
 public function download()
 {
     $file_alias = $this->getRequestParam('file_alias', NULL);
     $file_id = $this->getRequestParam('file_id', NULL);
     $fileObj = NULL;
     if ($file_alias != NULL) {
         $fileObj = File::find('alias', $file_alias);
     } else {
         if ($file_id != NULL) {
             $fileObj = File::find('_id', $file_id);
         }
     }
     if ($fileObj != NULL) {
         $fileObj->download(true, false);
     } else {
         System::displayError(System::getLanguage()->_('ErrorFileNotFound'), '404 Not Found');
     }
 }
 public function permissions()
 {
     try {
         $file = File::find('alias', $this->getParam('alias', ''));
     } catch (FileNotFoundException $e) {
         System::displayError(System::getLanguage()->_('ErrorFileNotFound'), '404 Not Found');
     }
     $form = new Form('form-permissions', '');
     $fieldset = new Fieldset(System::getLanguage()->_('PermissionSetting'));
     $permission = new Select('permission', System::getLanguage()->_('Permission'), FilePermissions::getAll());
     $permission->selected_value = $file->permission;
     $password = new Password('password', System::getLanguage()->_('Password'));
     $fieldset->addElements($permission, $password);
     $form->addElements($fieldset);
     if (Utils::getPOST('submit', false) !== false) {
         if ($form->validate()) {
             if ($permission->selected_value == 2 && empty($password->value)) {
                 $password->error = System::getLanguage()->_('InvalidPassword');
             } else {
                 $file->permission->setPermission($permission->selected_value, $password->value);
                 System::forwardToRoute(Router::getInstance()->build('DownloadController', 'download', $file));
                 exit;
             }
         }
     }
     $form->addButton(new Button(System::getLanguage()->_('Cancel'), 'icon icon-cancel', Router::getInstance()->build('DownloadController', 'download', $file)));
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('PermissionSetting'));
     $smarty->assign('form', $form->__toString());
     $smarty->display('form.tpl');
 }
 public function index()
 {
     // Get files
     $sql = System::getDatabase()->query('SELECT u._id, u.username, u.firstname, u.lastname, IFNULL(SUM(f.size), 0) AS totalUserSize FROM users u LEFT JOIN files f ON u._id = f.user_ID GROUP BY u._id');
     $used_space = 0;
     $num_users = 0;
     while ($user = $sql->fetch(PDO::FETCH_OBJ)) {
         $used_space += $user->totalUserSize;
         $obj = new Object();
         $obj->username = $user->username;
         $obj->firstname = $user->firstname;
         $obj->lastname = $user->lastname;
         $obj->used = $user->totalUserSize;
         $users[] = $obj;
         $num_users++;
     }
     $sql = System::getDatabase()->query('SELECT count(*) AS num_files from files');
     $num_files = $sql->fetch(PDO::FETCH_OBJ);
     $num_files = $num_files->num_files;
     if ($num_users == 0) {
         $files_per_user = 0;
     } else {
         $files_per_user = round($num_files / $num_users, 1);
     }
     // Newest User
     $newUsers = User::find('*', NULL, array('orderby' => '_id', 'sort' => 'DESC'));
     if (!is_array($newUsers)) {
         $newUsers = array($newUsers);
     }
     // MIME statistics
     $sql = System::getDatabase()->query('SELECT COUNT(*) AS num, mime FROM files GROUP BY mime ORDER BY num DESC LIMIT 6');
     $mimes = array();
     while ($mime = $sql->fetch(PDO::FETCH_OBJ)) {
         $mimes[] = $mime;
     }
     // Quota
     $available_space = disk_free_space(SYSTEM_ROOT . FILE_STORAGE_DIR);
     // Version
     $version = file_get_contents(SYSTEM_ROOT . '/VERSION');
     $phpversion = phpversion();
     $res = System::getDatabase()->query('SELECT VERSION() AS mysql_version');
     $row = $res->fetch(PDO::FETCH_ASSOC);
     if (!isset($row['mysql_version'])) {
         $mysqlversion = System::getLanguage()->_('Unknown');
     } else {
         $mysqlversion = $row['mysql_version'];
     }
     // Extensions
     $imagick = extension_loaded('imagick') && class_exists('Imagick');
     $rar = extension_loaded('rar') && class_exists('RarArchive');
     $maxpost = Utils::parseInteger(ini_get('post_max_size'));
     $maxupload = Utils::parseInteger(ini_get('upload_max_filesize'));
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('Admin'));
     $smarty->assign('heading', System::getLanguage()->_('Admin'));
     $smarty->assign('num_users', $num_users);
     $smarty->assign('num_files', $num_files);
     $smarty->assign('newUsers', $newUsers);
     $smarty->assign('userByQutoa', $users);
     $smarty->assign('mimes', $mimes);
     $smarty->assign('filesPerUser', $files_per_user);
     $smarty->assign('usedSpace', $used_space);
     $smarty->assign('availableSpace', $available_space);
     $smarty->assign('version', $version);
     $smarty->assign('phpversion', $phpversion);
     $smarty->assign('mysqlversion', $mysqlversion);
     $smarty->assign('maxpost', $maxpost);
     $smarty->assign('maxupload', $maxupload);
     $smarty->assign('imagick', $imagick);
     $smarty->assign('rar', $rar);
     $smarty->requireResource('admin');
     $smarty->display('admin/index.tpl');
 }
 public function __construct($message, $code = 0, $previous = NULL)
 {
     parent::__construct(System::getLanguage()->_($message), $code, $previous);
 }
 protected function renderElement()
 {
     $html = array();
     if (empty($this->uploaded_file)) {
         $attr = array('name' => $this->name, 'id' => $this->getDOMId(), 'class' => 'form-control');
         $html[] = '	<input type="file" ' . $this->serialiseAttributes($attr) . '/>';
     } else {
         $hidden = new Hidden($this->name, $this->label);
         $hidden->setValue($this->uploaded_file . '||' . $this->filename);
         $html[] = $hidden->render();
         $html[] = '	<label>' . $this->label . '</label>';
         $html[] = '	<p class="form-control-static">';
         $html[] = '		' . System::getLanguage()->_('MessageFileAlreadySelected');
         $html[] = '	</p>';
     }
     return implode("\n", $html);
 }
 public function delete()
 {
     $user = User::find('_id', $this->getParam('uid', 0));
     if ($user == NULL) {
         System::displayError(System::getLanguage()->_('ErrorUserNotFound'), '404 Not Found');
     } else {
         if ($user->uid == System::getUser()->uid) {
             System::displayError(System::getLanguage()->_('ErrorCannotDeleteYourself'), '403 Forbidden');
         }
     }
     $form = new Form('form-user', Router::getInstance()->build('UsersController', 'delete', $user));
     $fieldset = new Fieldset(System::getLanguage()->_('Confirm'));
     $checkbox = new Checkbox('confirm', System::getLanguage()->_('ConfirmDeleteUser'), true);
     $p = new Paragraph(System::getLanguage()->_('ConfirmDeleteUserInfo'));
     $fieldset->addElements($checkbox, $p);
     $form->addElements($fieldset);
     $form->setSubmit(new Button(System::getLanguage()->_('Confirm'), 'icon icon-delete'));
     $form->addButton(new Button(System::getLanguage()->_('Cancel'), 'icon icon-cancel', Router::getInstance()->build('UsersController', 'index')));
     if (Utils::getPOST('submit', false) !== false) {
         if ($form->validate()) {
             $user->delete();
             System::forwardToRoute(Router::getInstance()->build('UsersController', 'index'));
             exit;
         }
     }
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('DeleteUser'));
     $smarty->assign('heading', System::getLanguage()->_('DeleteUser'));
     $smarty->assign('form', $form);
     $smarty->display('form.tpl');
 }
 public function upload()
 {
     $form = new Form('form-upload', Router::getInstance()->build('UploadController', 'upload'));
     $form->setAttribute('data-noajax', 'true');
     $form->setEnctype();
     $fieldset = new Fieldset(System::getLanguage()->_('General'));
     $folderInput = new Select('folder', System::getLanguage()->_('ChooseFolder'), Folder::getAll());
     $folderInput->selected_value = Utils::getGET('parent', NULL);
     $fieldset->addElements($folderInput);
     $form->addElements($fieldset);
     $fieldset = new Fieldset(System::getLanguage()->_('FileUpload'));
     $fileInput = new FileUpload('file', System::getLanguage()->_('ChooseFile'), false);
     $fieldset->addElements($fileInput);
     $form->addElements($fieldset);
     if (DOWNLOAD_VIA_SERVER) {
         $fieldset = new Fieldset(System::getLanguage()->_('UploadFromURL'));
         $url = new Text('url', System::getLanguage()->_('EnterURL'), false);
         $name = new Text('name', System::getLanguage()->_('Name'), false);
         $name->setValue(System::getLanguage()->_('DownloadedFile'));
         $fieldset->addElements($url, $name);
         $form->addElements($fieldset);
     }
     $fieldset = new Fieldset(System::getLanguage()->_('PermissionSetting'));
     $permissionInput = new Select('permissions', System::getLanguage()->_('Permission'), FilePermissions::getAll());
     $permissionInput->selected_value = DEFAULT_FILE_PERMISSION;
     $password = new Password('password', System::getLanguage()->_('Password'), false);
     $fieldset->addElements($permissionInput, $password);
     $form->addElements($fieldset);
     if (Utils::getPOST('submit', false) != false) {
         if ($permissionInput->selected_value == 2 && empty($password->value)) {
             $password->error = System::getLanguage()->_('ErrorEmptyTextfield');
         } else {
             if ($form->validate() && (!empty($url->value) || !empty($fileInput->uploaded_file))) {
                 // Specify input control for error display
                 $err = empty($url->value) ? $fileInput : $url;
                 try {
                     $folder = Folder::find('_id', $folderInput->selected_value);
                     $file = new File();
                     $file->folder = $folder;
                     $file->permission = $permissionInput->selected_value;
                     $file->password = $password->value;
                     if (empty($url->value)) {
                         $file->filename = $fileInput->filename;
                         $file->upload($fileInput->uploaded_file);
                     } else {
                         $file->filename = $name->value;
                         $file->remote($url->value);
                     }
                     $file->save();
                     System::forwardToRoute(Router::getInstance()->build('BrowserController', 'show', $folder));
                     exit;
                 } catch (UploadException $e) {
                     $fileInput->filename = '';
                     $fileInput->uploaded_file = '';
                     $err->error = $e->getMessage();
                     if ($e->getCode() != 0) {
                         $err->error .= ' Code: ' . $e->getCode();
                     }
                 } catch (QuotaExceededException $e) {
                     $err->error = System::getLanguage()->_('ErrorQuotaExceeded');
                 } catch (Exception $e) {
                     $fileInput->filename = '';
                     $fileInput->uploaded_file = '';
                     $err->error = System::getLanguage()->_('ErrorWhileUpload') . ' ' . $e->getMessage();
                 }
             }
         }
     }
     $form->setSubmit(new Button(System::getLanguage()->_('Upload'), 'open'));
     if ($folderInput->selected_value == 0) {
         $form->addButton(new Button(System::getLanguage()->_('Cancel'), '', Router::getInstance()->build('BrowserController', 'index')));
     } else {
         $form->addButton(new Button(System::getLanguage()->_('Cancel'), '', Router::getInstance()->build('BrowserController', 'show', new Folder($folderInput->selected_value))));
     }
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('Upload'));
     $smarty->assign('heading', System::getLanguage()->_('FileUpload'));
     $smarty->assign('form', $form->__toString());
     $smarty->assign('BODY_CLASS', 'preventreload');
     $smarty->requireResource('upload');
     $smarty->display('form.tpl');
 }
 /**
  * Determines controller and action 
  */
 public function run()
 {
     $uri = $this->getCurrentURI();
     $route = NULL;
     $params = array();
     // Try to match a pattern
     foreach ($this->routes as $r) {
         // Case 1: no params => pattern == uri
         if ($r->getPattern() == $uri) {
             $route = $r;
             break;
         }
         // Case 2: params - let's go
         $result = Router::matchRoute($r, $uri);
         if ($result !== false && is_array($result)) {
             $params = $result;
             $route = $r;
             // Don't break here: maybe there is a
             // route that matches better :D
         }
     }
     if ($route != NULL) {
         $this->runController($route, $params);
     } else {
         System::displayError(System::getLanguage()->_('ErrorRouteNotFound'), '404 Not Found');
     }
 }
 public function lostpw_check()
 {
     $hash = $this->getParam('hash', '');
     if (!LostPW::hashExists($hash)) {
         System::getSession()->setData('errorMsg', System::getLanguage()->_('HashNotFound'));
         System::forwardToRoute(Router::getInstance()->build('BrowserController', 'index'));
     }
     $password = Utils::getPOST('password', '');
     $password2 = Utils::getPOST('password2', '');
     $errorMsg = '';
     if (Utils::getPOST('submit', false) != false) {
         if (strlen($password) < PASSWORD_MIN_LENGTH) {
             $errorMsg = sprintf(System::getLanguage()->_('PasswordMinLength'), PASSWORD_MIN_LENGTH);
         } else {
             if ($password != $password2) {
                 $errorMsg = System::getLanguage()->_('ErrorInvalidPasswords');
             } else {
                 LostPW::resetPassword($hash, $password);
                 System::getSession()->setData('successMsg', System::getLanguage()->_('LostPWSuccess'));
                 System::forwardToRoute(Router::getInstance()->build('BrowserController', 'index'));
             }
         }
     }
     $smarty = new Template();
     $smarty->assign('title', System::getLanguage()->_('LostPW'));
     $smarty->assign('successMsg', '');
     $smarty->assign('form_url', Router::getInstance()->build('AuthController', 'lostpw_check', array('hash' => $hash)));
     $smarty->assign('errorMsg', $errorMsg);
     $smarty->requireResource('auth');
     $smarty->display('auth/lostpw.newpw.tpl');
 }