Changeset 4116


Ignore:
Timestamp:
04/20/11 17:29:40 (8 years ago)
Author:
alexandrecorreia
Message:

Ticket #1787 - Permite o salvamento do usuario e senha no dispositivo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/mobile/login.php

    r3892 r4116  
    1212                'noheader'               => True 
    1313        ); 
    14  
     14         
    1515        include('../header.inc.php'); 
    1616        include('./mobile_header.inc.php'); 
    1717        $GLOBALS['sessionid'] = @$_GET['sessionid'] ? $_GET['sessionid'] : @$_COOKIE['sessionid']; 
    18  
     18         
    1919        if(isset($GLOBALS['sessionid']) && $_GET['cd'] != 10 && $_GET['cd'] != 1) 
    2020                start_prefered_app(); 
     
    4444        if(trim($cd) != "") 
    4545                $tmpl->parse('message_box', (($_GET['cd'] == 1) ? 'success_message' : 'error_message') ,true); 
     46                //detect if the user has a mobile browser 
     47         
     48        $browser = CreateObject('mobile.browser'); 
     49         
     50        switch ($browser->get_platform()) { 
     51                case browser::PLATFORM_IPHONE: 
     52                case browser::PLATFORM_IPOD: 
     53                case browser::PLATFORM_IPAD: 
     54                case browser::PLATFORM_BLACKBERRY: 
     55                case browser::PLATFORM_NOKIA: 
     56                case browser::PLATFORM_ANDROID: 
     57                        $tmpl->set_var('os_browser',$browser->get_platform());                           
     58                        break; 
     59                default: 
     60                        $tmpl->set_var('os_browser',false); 
     61                        //$tmpl->set_var('os_browser',$browser->get_platform()); 
     62                        break; 
     63        } 
    4664 
    4765        function check_logoutcode($code) { 
     
    5068                                logout(); 
    5169                                return lang('You have been successfully logged out'); 
     70 
    5271                        case 2: 
    5372                                return lang('Sorry, your login has expired'); 
     73 
    5474                        case 4: 
    5575                                return lang('Cookies are required to login to this site.'); 
     76 
    5677                        case 5: 
    5778                                return lang('Bad login or password'); 
     
    81102                $passwd_type = 'text'; 
    82103        } 
     104        // Automatic login from browser cookies 
     105        elseif(get_var('lem',array('GET','COOKIE')) && get_var('pem',array('GET','COOKIE'))) 
     106        { 
     107                if(!$_GET['cd'] || $_GET['cd'] == '1' || $_GET['cd'] == '10') {  
     108                        $submit = True; 
     109                        $login  = base64_decode(get_var('lem',array('GET','COOKIE'))); 
     110                        $passwd = base64_decode(get_var('pem',array('GET','COOKIE'))); 
     111                        $passwd_type = 'text'; 
     112                } 
     113                else { 
     114                        $GLOBALS['phpgw']->session->phpgw_setcookie('lem'); 
     115                        $GLOBALS['phpgw']->session->phpgw_setcookie('pem'); 
     116                } 
     117        } 
     118         
    83119        else { 
    84120                $passwd = $_POST['passwd']; 
     
    86122        } 
    87123 
    88         if(isset($passwd_type) || $_POST['submitit_x'] || $_POST['submitit_y'] || $submit) { 
    89                 if(getenv('REQUEST_METHOD') != 'POST' && $_SERVER['REQUEST_METHOD'] != 'POST' && 
    90                         !isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['SSL_CLIENT_S_DN'])){ 
     124        if(isset($passwd_type) || $_POST['submitit_x'] || $_POST['submitit_y'] || $submit) 
     125        { 
     126                if( !get_var('pem',array('GET','COOKIE')) && getenv('REQUEST_METHOD') != 'POST'  
     127                        && $_SERVER['REQUEST_METHOD'] != 'POST' && !isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['SSL_CLIENT_S_DN'])) 
     128                { 
    91129                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link($GLOBALS['phpgw_info']['flags']['currentdir'].'/login.php','cd=5')); 
    92130                } 
    93131 
    94132                if(!$submit) 
     133                { 
    95134                        $login = $_POST['login']; 
     135                } 
    96136 
    97137                $GLOBALS['sessionid'] = $GLOBALS['phpgw']->session->create(strtolower($login),$passwd,$passwd_type,'u'); 
     
    100140                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw_info']['server']['webserver_url'] .$GLOBALS['phpgw_info']['flags']['currentdir'].'/login.php?cd=' . $GLOBALS['phpgw']->session->cd_reason); 
    101141                } 
    102                 else { 
    103                         if(isset($_POST['max_resolution']) && $_POST['max_resolution'] > 600) { 
     142                else 
     143                { 
     144                        if(isset($_POST['max_resolution']) && $_POST['max_resolution'] > 600) 
     145                        { 
    104146                                $GLOBALS['phpgw_info']['user']['preferences']['common']['default_mobile_app'] = 'mobilemail'; 
    105147                                $GLOBALS['phpgw']->session->appsession('mobile.layout','mobile','mini_desktop'); 
    106                         } else { 
     148                        } 
     149                        else 
     150                        { 
    107151                                $GLOBALS['phpgw']->session->appsession('mobile.layout','mobile','mini_mobile'); 
    108152                        } 
     
    111155                        $_SESSION['phpgw_info']['user']['preferences']['expressoMail'] = $preferences['expressoMail']; 
    112156                         
     157                        if($_POST['save_login'] == 'yes') 
     158                        { 
     159                                // Time to keep values into cookies 
     160                                $ttl = time()+15552000; // Six Months 
     161                                $GLOBALS['phpgw']->session->phpgw_setcookie('lem', base64_encode(strtolower($login)),$ttl); // lem = login 
     162                                $GLOBALS['phpgw']->session->phpgw_setcookie('pem', base64_encode($passwd), $ttl);                       // pem = password 
     163                        } 
    113164                        start_prefered_app(); 
    114165                } 
     
    135186        $tmpl->pfp('loginout','page'); 
    136187 
    137         function logout(){ 
     188        function logout() 
     189        { 
    138190                $verified = $GLOBALS['phpgw']->session->verify(); 
    139191                if ($verified) 
Note: See TracChangeset for help on using the changeset viewer.