public function run() { // system name must be defined and valid if (!isset($this->application->parameters['file'])) { throw new ApplicationException('System name of the file is missing.', 400); } if (!ApplicationModel_File::validateSystemName($this->application->parameters['file'])) { throw new ApplicationException('System name of the file is invalid.', 400); } $systemName = $this->application->parameters['file']; // load file's information $file = new ApplicationModel_File($this->application); $file->setType(ApplicationModel_File::TYPE_SOURCE); $file->setSystemName($systemName); try { $file->load(); } catch (ApplicationModelException_File $e) { // file does not exist in the database, but if the file exists in the filesystem, then fill the model with default data $file->setTime(time()); $file->setDescription(''); try { $file->setExtension(pathinfo($file->getSystemName(), PATHINFO_EXTENSION)); $file->setName(basename($file->getSystemName(), '.' . $file->getExtension())); } catch (ApplicationModelException_File $e) { // we have got problems with file's name/extension $file->setExtension('txt'); $file->setName('untitled'); } // if the file does not exist both in db and in fs, this is a problem if (!is_file($file->getPath())) { throw new ApplicationException('File is not found.', 404); } } // load file's owner try { $fileUploader = $file->getUploader(); $owner = new ApplicationModel_User($this->application); $owner->setId(ApplicationModel_User::getIdForUuid($this->application, $fileUploader)); $owner->load(); } catch (ApplicationModelException_File $e) { // file has no defined owner $owner = null; } catch (ApplicationModelException_User $e) { // file has the owner, but it cannot be loaded throw new ApplicationException('Cannot load the owner of the file.', 500); } // render html $view = new ApplicationView($this->application, $this->application->path . '/views/file_source_view.php'); $view->url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; $view->owner = $owner; $view->file = $file; $view->fileData = file_get_contents($file->getPath()); // choose the right color scheme $view->isDarkColorScheme = true; if (isset($this->application->parameters['light'])) { $view->isDarkColorScheme = false; } // display html $view->render(); }
public function run() { $uuid = ''; if (!isset($this->application->parameters['uuid'])) { $uuid = ''; } else { $uuid = $this->application->parameters['uuid']; } if (empty($uuid) || !ApplicationModel_User::validateUuid($uuid)) { // unvalid uuid throw new ApplicationException('Invalid client uuid.', 400); } if (empty($uuid) && isset($_SESSION['authorized_user_id'])) { $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /account.php'; $this->application->outputContent = ''; return; } $view = new ApplicationView($this->application, $this->application->path . '/views/user_register.php'); $view->uuid = $uuid; if (isset($this->application->parameters['login'])) { $view->login = $this->application->parameters['login']; } elseif (isset($_SESSION['authorized_user_login'])) { $view->login = $_SESSION['authorized_user_login']; } else { $view->login = ''; } $view->render(); }
public function run() { // file id must be defined and valid if (!isset($this->application->parameters['file'])) { throw new ApplicationException('File identifier is missing.', 400); } $fileId = (int) $this->application->parameters['file']; if (!ApplicationModel_File::validateId($fileId)) { throw new ApplicationException('Id of the file is invalid.', 400); } // user must be authorized if (!isset($_SESSION['authorized_user_id'])) { $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /login.php'; $this->application->outputContent = ''; return; } // load user's information $user = new ApplicationModel_User($this->application); try { $user->setId($_SESSION['authorized_user_id']); $user->load(); } catch (ApplicationModelException_User $e) { throw new ApplicationException('Cannot load user.', 500); } // load file's information $file = new ApplicationModel_File($this->application); try { $file->setId($fileId); $file->load(); } catch (ApplicationModelException_File $e) { throw new ApplicationException('File is not found.', 404); } // load file owner's information try { $owner = new ApplicationModel_User($this->application); $owner->setId(ApplicationModel_User::getIdForUuid($this->application, $file->getUploader())); $owner->load(); } catch (ApplicationModelException_User $e) { throw new ApplicationException('Cannot load file\'s owner.', 500); } // authorized user must be the owner of the file if ($user->getId() != $owner->getId()) { throw new ApplicationException('Cannot edit file which belongs to a different user.', 403); } // render the html $view = new ApplicationView($this->application, $this->application->path . '/views/file_edit.php'); $view->user = $user; $view->file = $file; $view->allowedExtensions = $this->application->config['file_extensions']; $view->render(); }
public function run() { if (isset($_SESSION['authorized_user_id'])) { $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /account.php'; $this->application->outputContent = ''; } else { $view = new ApplicationView($this->application, $this->application->path . '/views/user_login.php'); $view->error = isset($this->application->parameters['unsuccessful']); if (isset($this->application->parameters['login'])) { $view->login = $this->application->parameters['login']; } $view->render(); } }
/** * @see ApplicationView::createUserInterface() */ protected function createUserInterface() { parent::createUserInterface(); //Recupera o título da página de erro $title = Application::getInstance()->getBundle()->getString('ERROR_TITLE'); //Define o título da página $this->setTitle($title); //Adiciona as informações sobre o erro $this->contentPanel->addChild(new Heading(2))->addChild(new Text($title)); $this->contentPanel->addChild(new Paragraph())->addChild(new Text($this->errorMessage)); }
/** * @see ApplicationView::createUserInterface() */ protected function createUserInterface() { parent::createUserInterface(); $this->addStyle('/css/home.css'); $resourceBundle = Application::getInstance()->getBundle(); $products = $this->products->getProducts(); if (count($products) == 0) { $this->contentPanel->addChild(new Heading(2))->addChild(new Text($resourceBundle->getString('NO_PRODUCT'))); } else { $this->contentPanel->addChild(new ProductList())->setProductList($products); } }
/** * @see ApplicationView::createUserInterface() */ protected function createUserInterface() { parent::createUserInterface(); $this->addStyle('/css/cart.css'); $resourceBundle = Application::getInstance()->getBundle(); $products = $this->cart->getProducts(); if (count($products) == 0) { $this->contentPanel->addChild(new Heading(2))->addChild(new Text($resourceBundle->getString('CART_NO_PRODUCT'))); } else { $this->contentPanel->addChild(new CartList())->setProductList($products); $totalParagraph = $this->contentPanel->addChild(new Paragraph())->addStyle('cart-total'); //Total do carrinho $totalParagraph->addChild(new Strong())->addChild(new Text($resourceBundle->getString('CART_TOTAL'))); $totalParagraph->addChild(new Span())->addChild(new Text(money_format($resourceBundle->getString('MONEY_FORMAT'), $this->cart->getTotal()))); //Botão de checkout $totalParagraph->addChild(new Anchor('/?c=cart&a=checkout'))->addStyle('checkout')->addChild(new Text($resourceBundle->getString('CART_CHECKOUT'))); } }
public function run() { $view = new ApplicationView($this->application, $this->application->path . '/views/index.php'); $view->render(); }
public function run() { // user must be authorized if (!isset($_SESSION['authorized_user_id'])) { $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /login.php'; $this->application->outputContent = ''; return; } // load user's information $user = new ApplicationModel_User($this->application); try { $user->setId($_SESSION['authorized_user_id']); $user->load(); } catch (ApplicationModelException_User $e) { throw new ApplicationException($e->getMessage(), 500); } // get the page number if (isset($this->application->parameters['page'])) { $page = (int) $this->application->parameters['page']; } else { $page = 1; } if ($page <= 0) { $page = 1; } // build list of files, this user owns $userUuids = $user->getUuids(); $userFiles = array(); $fileLoadQueueTimestamps = array(); $fileLoadQueue = array(); foreach ($userUuids as $time => $uuid) { $userUuidFileIds = ApplicationModel_File::getIdsForUploader($this->application, $uuid); $userFiles = array_merge($userFiles, $userUuidFileIds); } foreach ($userFiles as $userFile) { if ($userFile["value"] != "virtual") { $fileLoadQueue[] = (int) substr($userFile["value"], strlen('file_')); } $fileLoadQueueTimestamps[] = (int) $userFile["score"]; } array_multisort($fileLoadQueueTimestamps, SORT_DESC, $fileLoadQueue, SORT_ASC); // make sure that the requested page number is not too high $totalPages = ceil(count($fileLoadQueue) / $this->application->config['user_files_per_page']); if ($page > $totalPages) { $page = 1; } // cut off the part of the file list which we need to display on selected page $fileLoadQueue = array_slice($fileLoadQueue, ($page - 1) * $this->application->config['user_files_per_page'], $this->application->config['user_files_per_page']); // load file information for every file which we need to display on this page foreach ($fileLoadQueue as $fileId) { try { // load file $file = new ApplicationModel_File($this->application); $file->setId($fileId); $file->load(); // put it into the list of user's files $files[] = $file; } catch (ApplicationModelException_File $e) { // skip this file } } // render the html $view = new ApplicationView($this->application, $this->application->path . '/views/user_files.php'); $view->user = $user; $view->files = $files; $view->currentPage = $page; $view->totalPages = $totalPages; $view->render(); }
<?php /* * Copyright(c) 2009 limitlink,Inc. All Rights Reserved. * http://limitlink.jp/ * 文字コード UTF-8 */ $view = new ApplicationView(); $view->heading('エラー'); ?> <h1>エラー</h1> <ul class="operate"> <li><span class="operator" onclick="history.back()">戻る</span></li> </ul> <div class="die"> <?php echo $message; ?> </div> <?php $view->footing();
public function run() { $uuid = ''; if (!isset($this->application->parameters['uuid'])) { $uuid = ''; } else { $uuid = $this->application->parameters['uuid']; } if (empty($uuid) || !ApplicationModel_User::validateUuid($uuid)) { // unvalid uuid throw new ApplicationException('Invalid client uuid.', 400); } $login = ''; $loginBad = false; $passwordBad = false; if (!isset($this->application->parameters['login'])) { $loginBad = true; } else { $login = $this->application->parameters['login']; if (!ApplicationModel_User::validateLogin($login)) { $loginBad = true; } } if (!isset($this->application->parameters['password'])) { $passwordBad = true; } else { $password = $this->application->parameters['password']; if (!ApplicationModel_User::validatePassword($password)) { $passwordBad = true; } } // login must be valid $success = !$loginBad && !$passwordBad; $passwordWrong = false; $registerUser = false; if ($success) { $user = new ApplicationModel_User($this->application); try { // try to load user with selected login $user->setLogin($login); $user->load(); } catch (ApplicationModelException_User $e) { // selected login does not exist - create a new user $registerUser = true; } // register a new user if ($registerUser) { $user->setPasswordHash($user->makePasswordHash($password)); $user->save(); } else { if ($user->makePasswordHash($password) != $user->getPasswordHash()) { $passwordWrong = true; } $success = !$passwordWrong; } } // if everything is ok (user has the correct password, etc)... $attachUser = false; $uuidTaken = false; if ($success) { try { // authorize user $_SESSION['authorized_user_id'] = $user->getId(); $_SESSION['authorized_user_login'] = $user->getLogin(); // attach uuid if we have to if (!empty($uuid)) { $attachUser = true; $user->addUuid($uuid, time()); $user->save(); } } catch (ApplicationModelException_User $e) { if ($e->getCode() == ApplicationModel_User::ERROR_TAKEN_UUID) { $uuidTaken = true; } $success = !$uuidTaken; } } // if we have only authorized the user if ($success && !$registerUser && !$attachUser) { $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /account.php'; $this->application->outputContent = ''; } $view = new ApplicationView($this->application, $this->application->path . '/views/user_register_handler.php'); $view->success = $success; $view->registered = $registerUser; $view->uuid = $uuid; $view->uuidTaken = $uuidTaken; $view->login = $login; $view->loginBad = $loginBad; $view->passwordBad = $passwordBad; $view->passwordWrong = $passwordWrong; $view->render(); }
public function run() { // file id must be defined and valid if (!isset($this->application->parameters['file'])) { throw new ApplicationException('File identifier is missing.', 400); } $fileId = (int) $this->application->parameters['file']; if (!ApplicationModel_File::validateId($fileId)) { throw new ApplicationException('Id of the file is invalid.', 400); } // user must be authorized if (!isset($_SESSION['authorized_user_id'])) { $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /login.php'; $this->application->outputContent = ''; return; } // filename must be present and valid $name = ''; $nameBad = false; if (!isset($this->application->parameters['name'])) { $nameBad = true; } else { $name = $this->application->parameters['name']; if (!ApplicationModel_File::validateName($name)) { $nameBad = true; } } // description must be valid $description = ''; $descriptionBad = false; if (isset($this->application->parameters['description'])) { $description = $this->application->parameters['description']; if (!ApplicationModel_File::validateDescription($description)) { $descriptionBad = true; } } // load user's information $user = new ApplicationModel_User($this->application); try { $user->setId($_SESSION['authorized_user_id']); $user->load(); } catch (ApplicationModelException_User $e) { throw new ApplicationException('Cannot load user.', 500); } // load file's information $file = new ApplicationModel_File($this->application); try { $file->setId($fileId); $file->load(); } catch (ApplicationModelException_File $e) { throw new ApplicationException('File is not found.', 404); } // ignore extension for images if ($file->getType() == ApplicationModel_File::TYPE_IMAGE) { $extension = $file->getExtension(); $extensionBad = false; } else { $extension = ''; $extensionBad = false; if (!isset($this->application->parameters['extension'])) { $extensionBad = true; } else { $extension = $this->application->parameters['extension']; if (!$file->validateExtension($extension)) { $extensionBad = true; } } } // load file owner's information try { $owner = new ApplicationModel_User($this->application); $owner->setId(ApplicationModel_User::getIdForUuid($this->application, $file->getUploader())); $owner->load(); } catch (ApplicationModelException_User $e) { throw new ApplicationException('Cannot load file\'s owner.', 500); } // authorized user must be the owner of the file if ($user->getId() != $owner->getId()) { throw new ApplicationException('Cannot edit file which belongs to a different user.', 403); } // check if everything is fine $success = !$nameBad && !$extensionBad && !$descriptionBad; // edit the file if ($success) { try { $file->setName($name); $file->setExtension($extension); $file->setDescription($description); $file->save(); } catch (ApplicationModelException_File $e) { throw new ApplicationException('Cannot save file\'s information.', 500); } // redirect user back to his account $this->application->outputHeaders[] = 'HTTP/1.1 302 Found'; $this->application->outputHeaders[] = 'Location: /account.php'; $this->application->outputContent = ''; return; } // render the html with errors $view = new ApplicationView($this->application, $this->application->path . '/views/file_edit_handler.php'); $view->success = $success; $view->filenameBad = $nameBad; $view->extensionBad = $extensionBad; $view->descriptionBad = $descriptionBad; $view->user = $user; $view->file = $file; $view->name = $name; $view->extension = $extension; $view->description = $description; $view->render(); }