<?php
/**
 * phpaga
 *
 * Login
 *
 * This file contains the routines to display the login page and call the
 * authentication function. If user is authenticated successfully, she is
 * redirected to the main page.
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @version $Id: login.php 848 2007-08-31 15:41:51Z florian $
 *
 * Copyright (c) 2002, Florian Lanthaler <florian@phpaga.net>
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in
 *      the documentation and/or other materials provided with the
 *      distribution.
 *
 *    * Neither the name of Florian Lanthaler nor the names of his
 *      contributors may be used to endorse or promote products derived
 *      from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

include_once("./config.php");

$errors = array();
$error_login = "";
$error_passwd = "";
$form_login = "";
$userID = "";
$userInfo = array();
$auth_user = array();

if ($_SERVER["REQUEST_METHOD"] == "POST")
{

    $login = $_POST["login"];
    $passwd = $_POST["passwd"];

    if (!isset ($login) || !strlen($login))
        $errors["status"] = _("Invalid login or password.");
    else
        $form_login = $login;

    if (!isset ($passwd) || !strlen($passwd))
        $errors["status"] = _("Invalid login or password.");

    if (count ($errors) == 0) {

        $userID = phpaga_auth_login($login, $passwd);

        if (PhPagaError::isError($userID)) {
            if (($userID->getCode() == PHPAGA_ERR_USER_INVALIDID) || ($userID->getCode() == PHPAGA_ERR_DB_FETCHVALUE))
                $errors["status"] = _("Invalid login or password.");
            else
                $errors["status"] = $userID->getMessage();
        } else {

            $userInfo = phpaga_user_getUserInfo($userID);

            if (PhPagaError::isError($userInfo))
                $errors["status"] = _("Invalid login or password.");
            else
            {
                $auth_session = 1;
                session_register("auth_session");
                $_SESSION["auth_session"] = 1;

                $auth_user = $userInfo;
                session_register("auth_user");
                $_SESSION["auth_user"] = $userInfo;

                header("Location: main.php");
                exit;
            }
        }
    }
}

$header_tpl = new psmarty;
$header_tpl->assign("userskin", PHPAGA_DEFAULT_SKIN);
$header_tpl->display("header.tpl.html");

$login_tpl = new psmarty;
$login_tpl->assign("ACTION", basename ($_SERVER["PHP_SELF"]));
$login_tpl->assign("LOGIN_VALUE", $form_login);
$login_tpl->assign("ERROR_STATUS",
                   isset ($errors["status"]) ? $errors["status"] : "");
$login_tpl->display("login.tpl.html");

?>