Source for file Validator.php
Documentation is available at Validator.php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | MCMS: a PHP Content Management System for creating accessible sites. |
// | Copyright (C) 2005 Silvio Moioli |
// | This program is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation; either version 2 of the License, or |
// | (at your option) any later version. |
// | This program is distributed in the hope that it will be useful, |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// | GNU General Public License for more details. |
// | You should have received a copy of the GNU General Public License |
// | along with this program; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 |
// +----------------------------------------------------------------------+
// | Authors: Silvio Moioli <silvio at moioli dot net> www.moioli.net |
// +----------------------------------------------------------------------+
/** Carica la classe base di MCMS per l'interfacciamento al Database */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/model/Engine.php";
/** Carica il gestore dei permessi degli utenti in MCMS */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/controller/AuthManager.php";
/** Carica le pagine della vista Admin */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/view/alladmin.inc";
* Verifica la correttezza di un evento.
/** @var Engine l'oggetto per la comunicazione al Database */
/** @var AuthManager l'oggetto per la gestione dell'autenticazione degli utenti. */
* @param Engine $engine l'oggetto per la comunicazione al DB in uso
* Controlla la validità del comando passato.
* @param Event $event l'evento da controllare
* @param mixed $result un oggetto Author se l'utente non
* è autenticato correttamente o un oggetto AdminError se qualche
* altro errore si è verificato.
* @return true se l'evento è valido
$author= $event->getAuthor();
if(is_a($event,"ActionEvent")){
switch ($event->getAction()){
$contents = $event->getParameter("contents");
$title = $event->getParameter("title");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato contenuti per l'articolo.",
"AdminEditArticle",$params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato un titolo per l'articolo.",
"AdminEditArticle", $params);
$article = $event->getArticle();
$contents = $event->getParameter("contents");
$title = $event->getParameter("title");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato contenuti per l'articolo.",
"AdminEditArticle",$params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato un titolo per l'articolo.",
"AdminEditArticle", $params);
$article = $event->getArticle();
//Possono sempre iscriversi nuovi autori...
$name = $event->getParameter("name");
$surname = $event->getParameter("surname");
$email = $event->getParameter("email");
$password = $event->getParameter("password");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato il nome.",
"AdminAddAuthor", $params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato il cognome.",
"AdminAddAuthor", $params);
if ($password == "" || $password== "abc"){
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato la password.",
"AdminAddAuthor", $params);
if (preg_match("/^[^@]+@[^\.@]+\.[^\.]+$/i",$email)== 0){
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("l'indirizzo email inserito non è corretto.",
"AdminAddAuthor", $params);
$name = $event->getParameter("name");
$surname = $event->getParameter("surname");
$email = $event->getParameter("email");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato il nome.",
"AdminEditAuthor", $params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato il cognome.",
"AdminEditAuthor", $params);
if (preg_match("/^[^@]+@[^\.@]+\.[^\.]+$/i",$email)== 0){
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("l'indirizzo email inserito non è corretto.",
"AdminEditAuthor", $params);
$contents = $event->getParameter("contents");
$title = $event->getParameter("title");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato contenuti per la notizia.",
"AdminEditNews",$params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato un titolo per la notizia.",
"AdminEditNews", $params);
$news = $event->getNews();
$contents = $event->getParameter("contents");
$title = $event->getParameter("title");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato contenuti per la notizia.",
"AdminEditNews",$params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato un titolo per la notizia.",
"AdminEditNews", $params);
$news = $event->getNews();
$site = $event->getSite();
$name = $event->getParameter("name");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato un nome per la sezione.",
"AdminEditCategory", $params);
$site = $event->getSite();
$name = $event->getParameter("name");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato un nome per la sezione.",
"AdminEditCategory", $params);
$site = $event->getSite();
if ($site->getCategoriesCount()<= 1){
$params = $event->getParameters();
$result = new AdminError("non puoi cancellare l'ultima sezione del sito!",
"AdminListCategories", $params);
$url = $event->getParameter("name");
if (preg_match('#^http://www(\.[a-zA-Z0-9]+){2,6}$#',$url)== 0){
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("l'URL inserito non è corretto.",
"AdminAddSite", $params);
$site = $event->getSite();
$site = $event->getSite();
$site = $event->getSite();
$contents= $event->getParameter("contents");
$slogan= $event->getParameter("slogan");
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato uno slogan per l'homepage.",
"AdminEditHomepage", $params);
$params = $event->getParameters();
$params["defaults"] = "true";
$result = new AdminError("non hai specificato contenuti per l'homepage.",
"AdminEditHomepage", $params);
print "Validator: unrecognized action ". $event->getAction(). " <br />";
elseif(is_a($event,"GoToEvent")){
switch ($event->getParameter("goTo")) {
case "AdminListArticles":
case "AdminListCategories":
case "AdminEditHomepage":
case "AdminDropCategory":
$site = $event->getSite();
if ($site->getCategoriesCount()<= 1){
$params = $event->getParameters();
$result = new AdminError("non puoi cancellare l'ultima sezione del sito!",
"AdminListCategories", $params);
//Se sono al primo login dopo la registrazione...
if ($event->getParameter("action")== "addAuthor") {
if ($event->getParameter("mode") == "new") {
elseif ($event->getParameter("mode") == "edit") {
//Controlla i permessi e inizializza la pagina
if ($event->getParameter("mode") == "new") {
elseif ($event->getParameter("mode") == "edit") {
case "AdminEditCategory":
if ($event->getParameter("mode") == "new") {
elseif ($event->getParameter("mode") == "edit") {
print "NO GOTO page specified! ";
|