Changeset 13314

Show
Ignore:
Timestamp:
11/07/07 16:38:30 (1 year ago)
Author:
bergie
Message:

Run authentication before MidCOM kicks in so cache can take it into account

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/midcom/midcom.core/midcom.php

    r12019 r13314  
    8686/////////////////////////////////// 
    8787// Load first-level supporting code 
    88 // Note that the cache check hit depends on the i18n code. 
     88// Note that the cache check hit depends on the i18n and auth code. 
    8989require('midcom/helper/misc.php'); 
    9090require('midcom/helper/formatters.php'); 
    9191require('midcom/services/i18n.php'); 
     92 
     93require('midcom/baseclasses/core/object.php'); 
     94require('midcom/core/user.php'); 
     95require('midcom/services/auth.php'); 
     96require('midcom/services/auth/sessionmgr.php'); 
     97$auth = new midcom_services_auth(); 
     98$auth->initialize(); 
    9299 
    93100//require('autoload.php'); 
     
    105112// Note that the DB classes are spawned in midcom_application as they require the 
    106113// DB class loader to work. 
    107 require('midcom/baseclasses/core/object.php'); 
     114 
    108115require('midcom/baseclasses/core/dbobject.php'); 
    109116require('midcom/baseclasses/components/cron_handler.php'); 
     
    119126 
    120127// Core classes 
    121 require('midcom/core/user.php'); 
    122128require('midcom/core/group.php'); 
    123129require('midcom/core/group_midgard.php'); 
     
    145151require('midcom/services/session.php'); 
    146152require('midcom/services/indexer.php'); // Further indexer files are included in indexer.php 
    147 require('midcom/services/auth.php'); 
    148 require('midcom/services/auth/sessionmgr.php'); 
    149153require('midcom/services/dbclassloader.php'); 
    150154require('midcom/services/permalinks.php'); 
  • trunk/midcom/midcom.core/midcom/services/auth.php

    r13245 r13314  
    490490        debug_push_class(__CLASS__, __FUNCTION__); 
    491491 
    492         $this->sessionmgr = new midcom_services_auth_sessionmgr(); 
     492        $this->sessionmgr = new midcom_services_auth_sessionmgr($this); 
    493493 
    494494        $this->_register_core_privileges(); 
     
    546546        if (array_key_exists('midcom_services_auth_login_success_url', $_REQUEST)) 
    547547        { 
    548             $_MIDCOM->relocate($_REQUEST['midcom_services_auth_login_success_url']); 
     548            if (isset($_MIDCOM)) 
     549            { 
     550                $_MIDCOM->relocate($_REQUEST['midcom_services_auth_login_success_url']); 
     551            } 
     552            else 
     553            { 
     554                header("Location: {$_REQUEST['midcom_services_auth_login_success_url']}"); 
     555                exit(); 
     556            } 
    549557            // This will exit. 
    550558        } 
     
    627635        require_once (MIDCOM_ROOT . "/midcom/services/auth/backend/{$GLOBALS['midcom_config']['auth_backend']}.php"); 
    628636        $classname = "midcom_services_auth_backend_{$GLOBALS['midcom_config']['auth_backend']}"; 
    629         $this->_auth_backend = new $classname(); 
     637        $this->_auth_backend = new $classname($this); 
    630638 
    631639        require_once (MIDCOM_ROOT . "/midcom/services/auth/frontend/{$GLOBALS['midcom_config']['auth_frontend']}.php"); 
  • trunk/midcom/midcom.core/midcom/services/auth/backend.php

    r12585 r13314  
    4040    var $session_id = null; 
    4141     
     42    var $auth = null; 
     43     
    4244    /** 
    4345     * The constructor should do only basic initialization. 
    4446     */ 
    45     function midcom_services_auth_backend (
     47    function midcom_services_auth_backend($auth
    4648    { 
     49        $this->auth = $auth; 
    4750        return parent::midcom_baseclasses_core_object(); 
    4851    } 
     
    7578    function authenticate() 
    7679    { 
    77         return $_MIDCOM->auth->sessionmgr->authenticate($this->_session_id); 
     80        return $this->auth->sessionmgr->authenticate($this->_session_id); 
    7881    } 
    7982 
     
    98101        } 
    99102         
    100         $result = $_MIDCOM->auth->sessionmgr->create_login_session($username, $password, $clientip); 
     103        $result = $this->auth->sessionmgr->create_login_session($username, $password, $clientip); 
    101104         
    102105        if (! $result) 
     
    140143        } 
    141144 
    142         if (! $_MIDCOM->auth->sessionmgr->delete_session($this->session_id)) 
     145        if (! $this->auth->sessionmgr->delete_session($this->session_id)) 
    143146        { 
    144147            $_MIDCOM->generate_error(MIDCOM_ERRCRIT,  
  • trunk/midcom/midcom.core/midcom/services/auth/backend/simple.php

    r13153 r13314  
    3838     * Read the configuration 
    3939     */ 
    40     function midcom_services_auth_backend_simple (
     40    function midcom_services_auth_backend_simple($auth
    4141    { 
    4242        $this->_cookie_id .= $GLOBALS['midcom_config']['auth_backend_simple_cookie_id']; 
    4343 
    44         return parent::midcom_services_auth_backend(); 
     44        return parent::midcom_services_auth_backend($auth); 
    4545    } 
    4646 
     
    8787        $user_id = $data[1]; 
    8888 
    89         $this->user =& $_MIDCOM->auth->get_user($user_id); 
     89        $this->user =& $this->auth->get_user($user_id); 
    9090 
    9191        if (! $this->user) 
     
    100100        } 
    101101 
    102         $this->session_id = $_MIDCOM->auth->sessionmgr->load_login_session($session_id, $this->user); 
     102        $this->session_id = $this->auth->sessionmgr->load_login_session($session_id, $this->user); 
    103103 
    104104        if (! $this->session_id) 
  • trunk/midcom/midcom.core/midcom/services/auth/sessionmgr.php

    r12585 r13314  
    1717 * 
    1818 * The single instance of this class can be accessed as 
    19  * $_MIDCOM->auth->sessionmgr. 
     19 * $this->auth->sessionmgr. 
    2020 * 
    2121 * <b>Checking whether a user is online</b> 
     
    4848     */ 
    4949    var $current_session_id = null; 
     50     
     51    var $auth = null; 
    5052 
    5153    /** 
    5254     * Simple, currently empty default constructor. 
    5355     */ 
    54     function midcom_services_auth_sessionmgr() 
    55     { 
     56    function midcom_services_auth_sessionmgr($auth) 
     57    { 
     58        $this->auth = $auth; 
    5659        parent::midcom_baseclasses_core_object(); 
    5760    } 
     
    8588        } 
    8689 
    87         $user =& $_MIDCOM->auth->get_user($_MIDGARD['user']); 
     90        $user =& $this->auth->get_user($_MIDGARD['user']); 
    8891        if (! $user) 
    8992        { 
     
    469472    function is_user_online(&$user) 
    470473    { 
    471         if (! $_MIDCOM->auth->can_do('midcom:isonline', $user->_storage)) 
     474        if (! $this->auth->can_do('midcom:isonline', $user->_storage)) 
    472475        { 
    473476            return 'unknown'; 
     
    535538            foreach ($query_result as $session) 
    536539            { 
    537                 $user =& $_MIDCOM->auth->get_user($session->userid); 
     540                $user =& $this->auth->get_user($session->userid); 
    538541                if (array_key_exists($user->guid, $result)) 
    539542                {