Changeset 7033

Show
Ignore:
Timestamp:
11/22/08 02:27:39 (7 weeks ago)
Author:
inureyes
Message:

refs #777

  • Auth 클래스 정리.
Location:
trunk/library
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/library/auth.php

    r7022 r7033  
    55 
    66function login($loginid, $password, $preKnownPassword = null) { 
    7     global $service; 
    8     $loginid = POD::escapeString($loginid); 
    9     $blogid = getBlogId(); 
    10     $userid = Auth::authenticate($blogid , $loginid, $password ); 
    11  
    12     if( $userid === false ) { 
    13         return false; 
    14     } 
    15  
    16     if (empty($_POST['save'])) { 
    17         setcookie('TSSESSION_LOGINID', '', time() - 31536000, $service['path'] . '/', $service['domain']); 
    18     } else { 
    19         setcookie('TSSESSION_LOGINID', $loginid, time() + 31536000, $service['path'] . '/', $service['domain']); 
    20     } 
    21  
    22     if( in_array( "group.writers", Acl::getCurrentPrivilege() ) ) { 
    23         Session::authorize($blogid, $userid); 
    24     } 
    25     return true; 
     7    return Auth::login($loginid, $password, false); 
    268} 
    279 
    2810function logout() { 
    29     fireEvent("Logout"); 
    30     Acl::clearAcl(); 
    31     Transaction::clear(); 
    32     session_destroy(); 
     11    Auth::logout(); 
    3312} 
    3413 
  • trunk/library/auth/Auth.php

    r6989 r7033  
    105105    group.guests:         Guests 
    106106*/ 
    107     function Privilege() { 
     107    function __construct() { 
    108108    } 
    109109 
     
    347347 
    348348class Auth { 
    349     function login($loginid, $password) { 
    350         global $blogid; 
    351         if( Auth::authenticate($blogid,$loginid,$password,true) === false ) { 
    352             return false; 
    353         } 
    354         return true; 
    355     } 
    356  
    357     function authenticate( $blogid, $loginid, $password, $blogapi = false ) { 
    358         global $database; 
    359  
     349    public function login($loginid, $password, $checkOnly = true) { 
     350        $config = Config::getInstance(); 
     351        $context = Context::getInstance(); 
     352        if($checkOnly === true) { 
     353            if( Auth::authenticate($context->blogid,$loginid,$password,true) === false ) { 
     354                return false; 
     355            } 
     356            return true; 
     357        } else {    // Perform login process (browser) 
     358            $loginid = POD::escapeString($loginid); 
     359            $userid = Auth::authenticate($context->blogid , $loginid, $password ); 
     360         
     361            if( $userid === false ) { 
     362                return false; 
     363            } 
     364         
     365            if (empty($_POST['save'])) { 
     366                setcookie('TSSESSION_LOGINID', '', time() - 31536000, $config->service['path'] . '/', $config->service['domain']); 
     367            } else { 
     368                setcookie('TSSESSION_LOGINID', $loginid, time() + 31536000, $config->service['path'] . '/', $config->service['domain']); 
     369            } 
     370         
     371            if( in_array( "group.writers", Acl::getCurrentPrivilege() ) ) { 
     372                Session::authorize($context->blogid, $userid); 
     373            } 
     374            return true; 
     375        } 
     376    } 
     377 
     378    public function logout() { 
     379        fireEvent("Logout"); 
     380        Acl::clearAcl(); 
     381        Transaction::clear(); 
     382        session_destroy(); 
     383    } 
     384 
     385    public function authenticate( $blogid, $loginid, $password, $blogapi = false ) { 
     386        $config = Config::getInstance(); 
     387         
    360388        Acl::clearAcl(); 
    361389        $loginid = POD::escapeString($loginid); 
     
    365393        if ((strlen($password) == 32) && preg_match('/[0-9a-f]{32}/i', $password)) { 
    366394            $userid=getUserIdByEmail($loginid); 
    367             $authtoken = POD::queryCell("SELECT value FROM {$database['prefix']}UserSettings WHERE userid = '$userid' AND name = 'AuthToken' LIMIT 1"); 
     395            $authtoken = POD::queryCell("SELECT value FROM {$config->database['prefix']}UserSettings WHERE userid = '$userid' AND name = 'AuthToken' LIMIT 1"); 
    368396            if (!empty($authtoken)) { 
    369397                $password = POD::escapeString($password); 
     
    380408        } 
    381409 
    382         $session = POD::queryRow("SELECT userid, loginid, name FROM {$database['prefix']}Users WHERE loginid = '$loginid' AND $secret"); 
     410        $session = POD::queryRow("SELECT userid, loginid, name FROM {$config->database['prefix']}Users WHERE loginid = '$loginid' AND $secret"); 
    383411        if ( empty($session) ) { 
    384412            /* You should compare return value with '=== false' which checks with variable types*/ 
     
    388416 
    389417        Acl::authorize( 'textcube', $userid ); 
    390         POD::execute("UPDATE  {$database['prefix']}Users SET lastLogin = unix_timestamp() WHERE loginid = '$loginid'"); 
     418        POD::execute("UPDATE {$config->database['prefix']}Users SET lastLogin = unix_timestamp() WHERE loginid = '$loginid'"); 
    391419//      POD::execute("DELETE FROM {$database['prefix']}UserSettings WHERE userid = '$userid' AND name = 'AuthToken' LIMIT 1"); 
    392420        return $userid; 
     
    395423} 
    396424 
     425class Permission { 
     426    public function require($scope) { 
     427        switch($scope) { 
     428            case 'owner': 
     429            case 'member': 
     430                global $hostURL; 
     431                if( doesHaveMembership() ) return true; 
     432                $_SESSION['refererURI'] = $hostURL.$_SERVER['REQUEST_URI']; 
     433                requireLogin(); 
     434        } 
     435    } 
     436} 
    397437?>