source: branches/2.2/mobile/login.php @ 4695

Revision 4695, 7.8 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #2093 - Corrigido o caminho do link para Versão Clássica dentro do mobile

Line 
1<?php
2        //TODO: Trocar name="login" para name="user" no campo username
3
4        $phpgw_info = array();
5        $submit = False;
6
7        $GLOBALS['phpgw_info']['flags'] = array(
8                'disable_Template_class' => True,
9                'login'                  => True,
10                'currentapp'             => 'login',
11                'currentdir'             => '/mobile',
12                'noheader'               => True
13        );
14       
15        include_once('../header.inc.php');
16        include_once('./mobile_header.inc.php');
17        $GLOBALS['sessionid'] = @$_GET['sessionid'] ? $_GET['sessionid'] : @$_COOKIE['sessionid'];
18       
19        if(isset($GLOBALS['sessionid']) && $_GET['cd'] != 10 && $_GET['cd'] != 1)
20                start_prefered_app();
21               
22        if ( $GLOBALS['phpgw_info']['server']['use_https'] > 0 )
23        {
24                if ($_SERVER['HTTPS'] != 'on')
25                {
26                        $proxies = explode(',',$_SERVER['HTTP_X_FORWARDED_HOST']);
27            $fwConstruct = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $proxies[0] : $_SERVER['HTTP_HOST'];
28                        Header('Location: https://' . $fwConstruct . '/' . $_SERVER['REQUEST_URI']);
29                        exit;
30                }
31        }
32
33        $GLOBALS['phpgw']->session = CreateObject('phpgwapi.sessions');
34        $GLOBALS['phpgw_info']['server']['template_dir'] = PHPGW_SERVER_ROOT.$GLOBALS['phpgw_info']['flags']['currentdir'].'/templates/'.$GLOBALS['phpgw_info']['user']['preferences']['common']['template_set'];
35        $tmpl = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
36        $GLOBALS['phpgw_info']['user']['preferences']['common']['template_set'] = $GLOBALS['phpgw_info']['login_template_set'];
37       
38        //URL Expresso
39        $url_expresso = $GLOBALS['phpgw_info']['server']['webserver_url'];
40        $url_expresso = ( !empty($url_expresso) ) ? $url_expresso : '/';
41       
42        if(strrpos($url_expresso,'/') === false || strrpos($url_expresso,'/') != (strlen($url_expresso)-1))
43        {
44                $url_expresso .= '/';
45        }
46       
47        $tmpl->set_file(array('login_form' => 'login.tpl'));
48        $tmpl->set_block('login_form','page');
49        $tmpl->set_block('login_form','success_message');
50        $tmpl->set_block('login_form','error_message');
51        $tmpl->set_var('url_expresso', $url_expresso);
52        $tmpl->set_var('lang_username', lang('username'));
53        $tmpl->set_var('lang_password', lang('password'));
54        $tmpl->set_var('lang_login', lang('login'));
55       
56       
57        //verificando a mensagem erro ou sucesso
58        $cd = check_logoutcode($_GET['cd']);
59        $tmpl->set_var('message', $cd);
60       
61        if(trim($cd) != "")
62                $tmpl->parse('message_box', (($_GET['cd'] == 1) ? 'success_message' : 'error_message') ,true);
63                //detect if the user has a mobile browser
64       
65        $browser = CreateObject('phpgwapi.browser');
66       
67        switch ($browser->get_platform())
68        {
69                case browser::PLATFORM_IPHONE:
70                case browser::PLATFORM_IPOD:
71                case browser::PLATFORM_IPAD:
72                case browser::PLATFORM_BLACKBERRY:
73                case browser::PLATFORM_NOKIA:
74                case browser::PLATFORM_ANDROID:
75                        $tmpl->set_var('os_browser',$browser->get_platform());                         
76                        break;
77                default:
78                        $tmpl->set_var('os_browser',false);
79                        //$tmpl->set_var('os_browser',$browser->get_platform());
80                        break;
81        }
82
83        function check_logoutcode($code) {
84                switch($code) {
85                        case 1:
86                                logout();
87                                return lang('You have been successfully logged out');
88
89                        case 2:
90                                return lang('Sorry, your login has expired');
91
92                        case 4:
93                                return lang('Cookies are required to login to this site.');
94
95                        case 5:
96                                return lang('Bad login or password');
97                        case 6:
98                                return lang('Your password has expired, and you do not have access to change it');
99                        case 98:
100                                return lang('Account is expired');
101                        case 99:
102                                return lang('Blocked, too many attempts');
103                        case 10:
104                                $GLOBALS['phpgw']->session->phpgw_setcookie('sessionid');
105                                $GLOBALS['phpgw']->session->phpgw_setcookie('kp3');
106                                $GLOBALS['phpgw']->session->phpgw_setcookie('domain');
107                                if($GLOBALS['phpgw_info']['server']['sessions_type'] == 'php4') {
108                                        $GLOBALS['phpgw']->session->phpgw_setcookie(PHPGW_PHPSESSID);
109                                }
110                                return lang('Your session could not be verified.');
111                        default:
112                                return '';
113                }
114        }
115
116        if($GLOBALS['phpgw_info']['server']['auth_type'] == 'http' && isset($_SERVER['PHP_AUTH_USER'])) {
117                $submit = True;
118                $login  = $_SERVER['PHP_AUTH_USER'];
119                $passwd = $_SERVER['PHP_AUTH_PW'];
120                $passwd_type = 'text';
121        }
122        // Automatic login from browser cookies
123        elseif(get_var('lem',array('GET','COOKIE')) && get_var('pem',array('GET','COOKIE')))
124        {
125                if(!$_GET['cd'] || $_GET['cd'] == '1' || $_GET['cd'] == '10') {
126                        $submit = True;
127                        $login  = base64_decode(get_var('lem',array('GET','COOKIE')));
128                        $passwd = base64_decode(get_var('pem',array('GET','COOKIE')));
129                        $passwd_type = 'text';
130                }
131                else {
132                        $GLOBALS['phpgw']->session->phpgw_setcookie('lem');
133                        $GLOBALS['phpgw']->session->phpgw_setcookie('pem');
134                }
135        }
136        else
137        {
138                $passwd = $_POST['passwd'];
139                $passwd_type = $_POST['passwd_type'];
140        }
141
142        if( isset($passwd_type) || $_POST['submitit_x'] || $_POST['submitit_y'] || $submit )
143        {
144                if( !get_var('pem',array('GET','COOKIE')) && getenv('REQUEST_METHOD') != 'POST'
145                        && $_SERVER['REQUEST_METHOD'] != 'POST' && !isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['SSL_CLIENT_S_DN']))
146                {
147                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link($GLOBALS['phpgw_info']['flags']['currentdir'].'/login.php','cd=5'));
148                }
149
150                if(!$submit)
151                {
152                        $login = $_POST['login'];
153                }
154
155                $GLOBALS['sessionid'] = $GLOBALS['phpgw']->session->create(strtolower($login),$passwd,$passwd_type,'u');
156
157                if(!isset($GLOBALS['sessionid']) || ! $GLOBALS['sessionid']){
158                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw_info']['server']['webserver_url'] .$GLOBALS['phpgw_info']['flags']['currentdir'].'/login.php?cd=' . $GLOBALS['phpgw']->session->cd_reason);
159                }
160                else
161                {
162                        if(isset($_POST['max_resolution']) && $_POST['max_resolution'] > 600)
163                        {
164                                $GLOBALS['phpgw_info']['user']['preferences']['common']['default_mobile_app'] = 'mobilemail';
165                                $GLOBALS['phpgw']->session->appsession('mobile.layout','mobile','mini_desktop');
166                        }
167                        else
168                        {
169                                $GLOBALS['phpgw']->session->appsession('mobile.layout','mobile','mini_mobile');
170                        }
171                       
172                        $preferences = $GLOBALS['phpgw']->preferences->read();
173                        $_SESSION['phpgw_info']['user']['preferences']['expressoMail'] = $preferences['expressoMail'];
174                       
175                        if($_POST['save_login'] == 'yes')
176                        {
177                                // Time to keep values into cookies
178                                $ttl = time()+15552000; // Six Months
179                                $GLOBALS['phpgw']->session->phpgw_setcookie('lem', base64_encode(strtolower($login)),$ttl); // lem = login
180                                $GLOBALS['phpgw']->session->phpgw_setcookie('pem', base64_encode($passwd), $ttl);                       // pem = password
181                        }
182                        start_prefered_app();
183                }
184        }
185        elseif ($_GET['lang'])
186        {
187                $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] = $_GET['lang'];
188        }
189        elseif(!isset($_COOKIE['last_loginid']) || !$prefs->account_id)
190        {
191                list($lang) = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
192                $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] = $lang;
193        }
194
195        $tmpl->set_var('charset',$GLOBALS['phpgw']->translation->charset());
196        $tmpl->set_var('cookie',$last_loginid);
197        $tmpl->set_var('lang_notices', lang('notices'));
198        $tmpl->set_var('website_title', $GLOBALS['phpgw_info']['server']['site_title']);
199        $tmpl->set_var('template_set',$GLOBALS['phpgw_info']['login_template_set']);
200        $tmpl->set_var('language_select','');
201        $tmpl->set_var($var);
202        $tmpl->set_block('login_form','language_select');
203        $tmpl->pfp('loginout','page');
204
205        function logout()
206        {
207                $verified = $GLOBALS['phpgw']->session->verify();
208                if ($verified)
209                {
210                        if (file_exists($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid']))
211                        {
212                                $dh = opendir($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid']);
213                                while ($file = readdir($dh))
214                                {
215                                        if ($file != '.' && $file != '..')
216                                        {
217                                                unlink($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid'] . SEP . $file);
218                                        }
219                                }
220                                rmdir($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid']);
221                        }
222                        $GLOBALS['phpgw']->hooks->process('logout');
223                        $GLOBALS['phpgw']->session->destroy($GLOBALS['sessionid'],$GLOBALS['kp3']);
224                }
225        }
226?>
Note: See TracBrowser for help on using the repository browser.