Вход Регистрация
Файл: adultscript-2.0.3-pro/files/libraries/framework/auth.php
Строк: 46
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VAuth
{
    public static 
$groups = array();
    public static function 
check($group='Registered'$url=NULL$message=NULL)
    {
        if (!
self::$groups) {
            
self::__cache_user_groups();
        }

        if (isset(
$_SESSION['user_id']) && isset($_SESSION['group_id'])) {
            if (isset(
$_SESSION['status']) && $_SESSION['status'] == '1') {
                if (
$_SESSION['group_id'] <= self::$groups[$group]) {
                    return 
TRUE;
                }
            }
        }

        if (!
is_null($message)) {
            
$_SESSION['message'] = $message;
        }

        
$redirect_url BASE_URL'/user/login/';
        if (isset(
$url)) {
            
$redirect_url $url;
        }
        
        
$group ucfirst($group);
        if (
$group != 'Administrator') {
            
$_SESSION['redirect'] = CURRENT_URL;
        }
        
        
VF::close();
        
VF::redirect($redirect_url);
    }

    public static function 
loggedin()
    {
        if (isset(
$_SESSION['user_id']) && $_SESSION['user_id'] != '' &&
            isset(
$_SESSION['group_id']) && $_SESSION['group_id'] != '' &&
            isset(
$_SESSION['status']) && $_SESSION['status'] == '1') {
            return 
TRUE;
        }

        return 
FALSE;
    }
    
    public static function 
group($group='Moderator')
    {
        if (!
self::$groups) {
            
self::__cache_user_groups();
        }
        
        if (
VAuth::loggedin() && $_SESSION['group_id'] <= self::$groups[$group]) {
            return 
TRUE;
        }
        
        return 
FALSE;
    }

    public static function 
login($username$password)
    {
        
$db VF::factory('database');
        
$db->query("SELECT user_id, group_id, username, password, email, name, gender, birth_date,
                           country, city, zip, avatar, login_date, verified, status
                    FROM #__user
                    WHERE username = '"
.$db->escape($username)."'
                    LIMIT 1"
);
        if (
$db->affected_rows()) {
            
$user $db->fetch_assoc();
            if (
VHash::check($password$user['password'])) {
                return 
$user;
            }
        }

        return 
FALSE;
    }
    
    public static function 
get_group_id($name) {
        if (!
self::$groups) {
            
self::__cache_user_groups();
        }
        
        if (isset(
self::$groups[$name])) {
            return 
self::$groups[$name];
        }
        
        throw new 
VException('Invalid group name specified!');
    }
    
    private static function 
__cache_user_groups()
    {
        
$cache VF::factory('cache');
        if (!
$groups $cache->get('user_groups'0)) {
            
$db VF::factory('database');
            
$db->query("SELECT group_id, name FROM #__user_groups WHERE status = '1'");
            if (
$db->affected_rows()) {
                
$rows     $db->fetch_rows();
                
$groups    = array();
                foreach (
$rows as $group) {
                    
$groups[$group['name']] = (int) $group['group_id'];
                }
            } else {
                die(
'Failed to load user groups table!');
            }
        }
        
        
self::$groups $groups;
    }
}
?>
Онлайн: 1
Реклама