Exemplo n.º 1
0
<?php

/**
 * @author Matthew McNaney <mcnaney at gmail dot com>
 * @version $Id: runtime.php 7776 2010-06-11 13:52:58Z jtickle $
 */
if (!class_exists('PHPWS_User')) {
    include '../../core/conf/404.html';
    exit;
}
if (isset($_REQUEST['module']) && $_REQUEST['module'] == 'users' && (isset($_REQUEST['action']) && $_REQUEST['action'] == 'reset')) {
    $_SESSION['User'] = new PHPWS_User();
} elseif (!isset($_SESSION['User'])) {
    Current_User::init();
    if (Current_User::allowRememberMe()) {
        if (PHPWS_Settings::get('users', 'allow_remember')) {
            Current_User::rememberLogin();
        }
    }
}
Current_User::loadAuthorization($_SESSION['User']);
Current_User::getLogin();
if (Current_User::isLogged() && PHPWS_Settings::get('users', 'session_warning')) {
    $lifetime = ini_get('session.gc_maxlifetime');
    $path = PHPWS_SOURCE_HTTP . 'mod/users/javascript/session_check/script.min.js';
    $timeout = floor($lifetime / 60);
    $warning_minutes = $timeout - 5;
    javascript('jquery');
    \Layout::addJSHeader("<script type='text/javascript'>var sess_expirationMinutes = {$timeout};var sess_warningMinutes = {$warning_minutes};</script>" . "<script type='text/javascript' src='{$path}'></script>");
}
Exemplo n.º 2
0
 /**
  * Logs in a user dependant on their authorization setting
  */
 public static function loginUser($username, $password = null)
 {
     if (!Current_User::allowUsername($username)) {
         return PHPWS_Error::get(USER_BAD_CHARACTERS, 'users', 'Current_User::loginUser');
     }
     // First check if they are currently a user
     $user = new PHPWS_User();
     $db = new PHPWS_DB('users');
     $db->addWhere('username', strtolower($username));
     $result = $db->loadObject($user);
     if (PHPWS_Error::isError($result)) {
         return $result;
     }
     if ($result == false) {
         if (PHPWS_Error::logIfError($user->setUsername($username))) {
             return false;
         }
     } else {
         // This user is in the local database
         if (!$user->approved) {
             return PHPWS_Error::get(USER_NOT_APPROVED, 'users', 'Current_User::loginUser');
         }
         if (!$user->loadScript()) {
             Layout::add(dgettext('users', 'Could not load authentication script. Please contact site administrator.'));
             return false;
         }
     }
     if (!Current_User::loadAuthorization($user)) {
         Layout::add(dgettext('users', 'Could not load authentication script. Please contact site administrator.'));
         return false;
     }
     $auth = Current_User::getAuthorization();
     $auth->setPassword($password);
     $result = $auth->authenticate();
     if (PHPWS_Error::isError($result)) {
         return $result;
     }
     if ($result == true) {
         // If the user id is zero and the authorization wants a new
         // user created
         if (!$user->id && $auth->create_new_user) {
             $user->setActive(true);
             $user->setApproved(true);
             $auth->createUser();
             $user->save();
             PHPWS_Core::initModClass('users', 'Action.php');
             User_Action::assignDefaultGroup($user);
         }
         if (!$user->active) {
             return PHPWS_Error::get(USER_DEACTIVATED, 'users', 'Current_User:loginUser', $user->username);
         }
         if ($auth->localUser()) {
             $user->login();
         }
         unset($_SESSION['User']);
         $_SESSION['User'] = $user;
         return true;
     } else {
         return false;
     }
 }