Source for file AuthManager.php
Documentation is available at AuthManager.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 componente di PEAR per l'autenticazione degli utenti */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/include/pear/Auth.php";
/** Carica la pagina con il form per l'immissione della password */
require_once $_SERVER["DOCUMENT_ROOT"]. "/admin/lib/view/AdminLogin.php";
* Gestore dei permessi degli utenti in MCMS. Permette l'aggiunta, la rimozione
* e la verifica dei permessi di ciascun utente. Inoltre permette il re-login
/** @var Engine l'oggetto per la comunicazione al Database */
/** @var Auth il componente di PEAR per l'autenticazione degli utenti */
/** @var Author l'autore correntemente loggato o null */
* @param Engine $engine l'oggetto per la comunicazione al DB in uso
// print "dsn: ".$engine->dataSourceName."<br/>";
* Inizializza (o re-inizializza) Auth per non mostrare schermate di login
* in caso di mancato riconoscimento dell'autore.
* Inizializza (o re-inizializza) Auth per mostrare la schermata di login
* relativa all'autore specificato in caso di mancato riconoscimento dello
* @param Author $author l'autore da settare
$loginFunction = array($currentLoginPage,"display");
* Controlla che l'autore sia effettivamente loggato in MCMS.
* @param Author $author l'autore da controllare
* @return true se l'autore è autenticato correttamente
//Un nuovo login è necessario se nessuno lo ha già fatto...
if ($this->auth->getAuth() != true) {
//...o se l'autore tenta di fingersi qualcun altro...
if ($author->getID() != $this->auth->getUsername()) {
* Controlla che l'autore sia effettivamente loggato in MCMS, e che
* abbia i permessi per modificare un certo oggetto.
* @param Author $author l'autore da controllare
* @param mixed l'oggetto da modificare
* @return true se l'autore è autenticato correttamente e può modificare
//Valgono innanzitutto le regole viste al metodo precedente
//...o se l'autore non è in realtà il fondatore/autore originale
$tmp = $objectToModify->getAuthor();
if ($tmp->getID() != $author->getID()) {
* Forza l'autore specificato a rifare il login.
* @param Author $author l'autore
* Rimuove l'autore da quelli che possono accedere a MCMS.
* @param Author $author l'autore da rimuovere
$this->auth->removeUser($author->getID());
* Aggiunge un nuovo autore tra quelli che possono
* @param Author $author l'autore da aggiungere
* @param string $password la sua password
function addUser($author, $password)
$this->auth->addUser($author->getID(), $password);
$this->auth->setAuth($author->getID());
|