source: trunk/mobile/login.php @ 273

Revision 273, 5.3 KB checked in by niltonneto, 16 years ago (diff)

Contexto que permite o login no Expresso e visualiza de modo simples a agenda semanal do usuário.
Utilizado por usuários que querem visualizar compromissos em browsers de celulares.

  • Property svn:executable set to *
Line 
1<?php
2        $phpgw_info = array();
3        $submit = False;
4
5        $GLOBALS['phpgw_info']['flags'] = array(
6                'disable_Template_class' => True,
7                'login'                  => True,
8                'currentapp'             => 'login',
9                'currentdir'             => '/mobile',
10                'noheader'               => True
11        );
12
13        include('../header.inc.php');
14        $GLOBALS['sessionid'] = @$_GET['sessionid'] ? $_GET['sessionid'] : @$_COOKIE['sessionid'];
15        if(isset($GLOBALS['sessionid']) && $_GET['cd'] != 10 && $_GET['cd'] != 1)
16                $GLOBALS['phpgw']->redirect_link($GLOBALS['phpgw_info']['flags']['currentdir'].'/calendar.php');
17        if ($GLOBALS['phpgw_info']['server']['use_https'] > 0)  {
18                if ($_SERVER['HTTPS'] != 'on') {
19                        Header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
20                        exit;
21                }
22        }
23
24        $GLOBALS['phpgw']->session = CreateObject('phpgwapi.sessions');
25        $GLOBALS['phpgw_info']['server']['template_dir'] = PHPGW_SERVER_ROOT.$GLOBALS['phpgw_info']['flags']['currentdir'].'/templates/'.$GLOBALS['phpgw_info']['login_template_set'];
26        $tmpl = CreateObject('phpgwapi.Template', $GLOBALS['phpgw_info']['server']['template_dir']);
27        $GLOBALS['phpgw_info']['user']['preferences']['common']['template_set'] = $GLOBALS['phpgw_info']['login_template_set'];
28        $tmpl->set_file(array('login_form' => 'login.tpl'));
29        $tmpl->set_var('cd',check_logoutcode($_GET['cd']));
30       
31        function check_logoutcode($code) {
32                switch($code) {
33                        case 1:
34                                logout();                       
35                                return lang('You have been successfully logged out');
36                               
37                        case 2:
38                                return lang('Sorry, your login has expired');
39                               
40                        case 4:
41                                return lang('Cookies are required to login to this site.');
42                               
43                        case 5:
44                                return '<font color="FF0000">' . lang('Bad login or password') . '</font>';
45
46                        case 6:
47                                return '<font color="FF0000">' . lang('Your password has expired, and you do not have access to change it') . '</font>';
48                               
49                        case 98:
50                                return '<font color="FF0000">' . lang('Account is expired') . '</font>';
51                               
52                        case 99:
53                                return '<font color="FF0000">' . lang('Blocked, too many attempts') . '</font>';
54                               
55                        case 10:
56                                $GLOBALS['phpgw']->session->phpgw_setcookie('sessionid');
57                                $GLOBALS['phpgw']->session->phpgw_setcookie('kp3');
58                                $GLOBALS['phpgw']->session->phpgw_setcookie('domain');
59                                if($GLOBALS['phpgw_info']['server']['sessions_type'] == 'php4') {
60                                        $GLOBALS['phpgw']->session->phpgw_setcookie(PHPGW_PHPSESSID);
61                                }
62                                return '<font color="#FF0000">' . lang('Your session could not be verified.') . '</font>';
63                               
64                        default:
65                                return '&nbsp;';
66                }
67        }       
68
69        if($GLOBALS['phpgw_info']['server']['auth_type'] == 'http' && isset($_SERVER['PHP_AUTH_USER'])) {
70                $submit = True;
71                $login  = $_SERVER['PHP_AUTH_USER'];
72                $passwd = $_SERVER['PHP_AUTH_PW'];
73                $passwd_type = 'text';
74        }
75        else {
76                $passwd = $_POST['passwd'];
77                $passwd_type = $_POST['passwd_type'];
78        }
79
80        if(isset($passwd_type) || $_POST['submitit_x'] || $_POST['submitit_y'] || $submit) {
81                if(getenv('REQUEST_METHOD') != 'POST' && $_SERVER['REQUEST_METHOD'] != 'POST' &&
82                        !isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['SSL_CLIENT_S_DN'])){
83                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link($GLOBALS['phpgw_info']['flags']['currentdir'].'/login.php','cd=5'));
84                }
85               
86                if(!$submit)
87                        $login = $_POST['login'];
88       
89                $GLOBALS['sessionid'] = $GLOBALS['phpgw']->session->create(strtolower($login),$passwd,$passwd_type,'u');
90
91                if(!isset($GLOBALS['sessionid']) || ! $GLOBALS['sessionid']){
92                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw_info']['server']['webserver_url'] .$GLOBALS['phpgw_info']['flags']['currentdir'].'/login.php?cd=' . $GLOBALS['phpgw']->session->cd_reason);
93                }
94                else{
95                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw_info']['server']['webserver_url'] .$GLOBALS['phpgw_info']['flags']['currentdir'].'/calendar.php');
96                }
97        }
98        elseif ($_GET['lang'])  {
99                $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] = $_GET['lang'];
100        }
101        elseif(!isset($_COOKIE['last_loginid']) || !$prefs->account_id) {
102                list($lang) = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
103                $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] = $lang;
104        }
105       
106        $tmpl->set_var('charset',$GLOBALS['phpgw']->translation->charset());   
107        $tmpl->set_var('cookie',$last_loginid);
108        $tmpl->set_var('lang_username',lang('username'));
109        $tmpl->set_var('lang_password',lang('password'));
110        $tmpl->set_var('lang_login',lang('login'));
111        $tmpl->set_var('website_title', $GLOBALS['phpgw_info']['server']['site_title']);
112        $tmpl->set_var('template_set',$GLOBALS['phpgw_info']['login_template_set']);
113        $tmpl->set_var('language_select','');
114        $tmpl->set_var($var);
115        $tmpl->set_block('login_form','language_select');       
116        $tmpl->pfp('loginout','login_form');
117
118        function logout(){
119                $verified = $GLOBALS['phpgw']->session->verify();
120                if ($verified)
121                {
122                        if (file_exists($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid']))
123                        {
124                                $dh = opendir($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid']);
125                                while ($file = readdir($dh))
126                                {
127                                        if ($file != '.' && $file != '..')
128                                        {
129                                                unlink($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid'] . SEP . $file);
130                                        }
131                                }
132                                rmdir($GLOBALS['phpgw_info']['server']['temp_dir'] . SEP . $GLOBALS['sessionid']);
133                        }
134                        $GLOBALS['phpgw']->hooks->process('logout');
135                        $GLOBALS['phpgw']->session->destroy($GLOBALS['sessionid'],$GLOBALS['kp3']);
136                }
137        }       
138?>
Note: See TracBrowser for help on using the repository browser.