source: branches/2.0/phpgwapi/templates/default/login_default.php @ 1716

Revision 1716, 19.5 KB checked in by niltonneto, 14 years ago (diff)

Ticket #795 - Corrigido problema de login com prefixo de organização.

  • Property svn:executable set to *
Line 
1<?php
2        /**************************************************************************\
3        * eGroupWare login                                                         *
4        * http://www.egroupware.org                                                *
5        * Originaly written by Dan Kuykendall <seek3r@phpgroupware.org>            *
6        *                      Joseph Engo    <jengo@phpgroupware.org>             *
7        * Updated by Nilton Emilio Buhrer Neto <niltonneto@celepar.pr.gov.br>      *
8        *  This program is free software; you can redistribute it and/or modify it *
9        *  under the terms of the GNU General Public License as published by the   *
10        *  Free Software Foundation; either version 2 of the License, or (at your  *
11        *  option) any later version.                                              *
12        \**************************************************************************/
13
14        function check_logoutcode($code)
15        {
16                switch($code)
17                {
18                        case 1:
19                                return lang('You have been successfully logged out');
20                               
21                        case 2:
22                                return lang('Sorry, your login has expired');
23                               
24                        case 4:
25                                return lang('Cookies are required to login to this site.');
26                               
27                        case 5:
28                                return '<font color="FF0000">' . lang('Bad login or password') . '</font>';
29
30                        case 6:
31                                return '<font color="FF0000">' . lang('Your password has expired, and you do not have access to change it') . '</font>';
32                               
33                        case 98:
34                                return '<font color="FF0000">' . lang('Account is expired') . '</font>';
35                               
36                        case 99:
37                                return '<font color="FF0000">' . lang('Blocked, too many attempts') . '</font>';
38                        case 200:
39                                return '<font color="FF0000">' . lang('Invalid code') . '</font>';
40                        break;                         
41                        case 10:
42                                $GLOBALS['phpgw']->session->phpgw_setcookie('sessionid');
43                                $GLOBALS['phpgw']->session->phpgw_setcookie('kp3');
44                                $GLOBALS['phpgw']->session->phpgw_setcookie('domain');
45
46                                //fix for bug php4 expired sessions bug
47                                if($GLOBALS['phpgw_info']['server']['sessions_type'] == 'php4')
48                                {
49                                        $GLOBALS['phpgw']->session->phpgw_setcookie(PHPGW_PHPSESSID);
50                                }
51
52                                return '<font color="#FF0000">' . lang('Your session could not be verified.') . '</font>';
53                               
54                        default:
55                                return '&nbsp;';
56                }
57        }
58       
59        /* Program starts here */
60
61        if($GLOBALS['phpgw_info']['server']['auth_type'] == 'http' && isset($_SERVER['PHP_AUTH_USER']))
62        {
63                $submit = True;
64                $login  = $_SERVER['PHP_AUTH_USER'];
65                $passwd = $_SERVER['PHP_AUTH_PW'];
66                $passwd_type = 'text';
67        }
68        else
69        {
70                $passwd = $_POST['passwd'];
71                $passwd_type = $_POST['passwd_type'];
72        }
73
74        # Apache + mod_ssl style SSL certificate authentication
75        # Certificate (chain) verification occurs inside mod_ssl
76        if($GLOBALS['phpgw_info']['server']['auth_type'] == 'sqlssl' && isset($_SERVER['SSL_CLIENT_S_DN']) && !isset($_GET['cd']))
77        {
78                # an X.509 subject looks like:
79                # /CN=john.doe/OU=Department/O=Company/C=xx/Email=john@comapy.tld/L=City/
80                # the username is deliberately lowercase, to ease LDAP integration
81                $sslattribs = explode('/',$_SERVER['SSL_CLIENT_S_DN']);
82                # skip the part in front of the first '/' (nothing)
83                while($sslattrib = next($sslattribs))
84                {
85                        list($key,$val) = explode('=',$sslattrib);
86                        $sslattributes[$key] = $val;
87                }
88
89                if(isset($sslattributes['Email']))
90                {
91                        $submit = True;
92
93                        # login will be set here if the user logged out and uses a different username with
94                        # the same SSL-certificate.
95                        if(!isset($_POST['login'])&&isset($sslattributes['Email']))
96                        {
97                                $login = $sslattributes['Email'];
98                                # not checked against the database, but delivered to authentication module
99                                $passwd = $_SERVER['SSL_CLIENT_S_DN'];
100                        }
101                }
102                unset($key);
103                unset($val);
104                unset($sslattributes);
105        }
106
107        if(isset($passwd_type) || $_POST['submitit_x'] || $_POST['submitit_y'] || $submit)
108        {
109
110        // Primeiro testa o captcha....se houver......
111        if( $GLOBALS['phpgw_info']['server']['captcha']==1)
112                {
113                if(isset($_POST['codigo']))
114                        {
115                        if ($_SESSION['CAPTCHAString'] != strtoupper($_POST['codigo']))
116                                {
117                                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/login.php','cd=200'));
118                                }
119                        unset($_SESSION['CAPTCHAString']);
120                        }
121                }
122                if($_POST['user']) {
123                        if($GLOBALS['phpgw_info']['server']['use_prefix_organization']) {
124                                $common = CreateObject('phpgwapi.common');
125                                $ldap_conn = $common->ldapConnect();
126                                $justthese = array("uid");
127                                $filter="(&(phpgwAccountType=u)(uid=".$_POST['user']."))";
128                                $ldap_search = ldap_search($ldap_conn, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese);
129                                $ldap_info       = ldap_get_entries($ldap_conn, $ldap_search);
130                                ldap_close($ldap_conn);
131                                if ($ldap_info['count'] != 0) {
132                                        $_POST['login'] = $_POST['user'];
133                                }
134                        }
135                        else
136                                $_POST['login'] = $_POST['user'];
137                }
138                if(getenv('REQUEST_METHOD') != 'POST' && $_SERVER['REQUEST_METHOD'] != 'POST' &&
139                        !isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['SSL_CLIENT_S_DN']))
140                {
141                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/login.php','cd=5'));
142                }
143               
144                // don't get login data again when $submit is true
145                if($submit == false)
146                {
147                        $login = $_POST['login'];
148                }
149               
150                if(strstr($login,'@') === False && isset($_POST['logindomain']))
151                {
152                        $login .= '@' . $_POST['logindomain'];
153                }
154                elseif(!isset($GLOBALS['phpgw_domain'][$GLOBALS['phpgw_info']['user']['domain']]))
155                {
156                        $login .= '@'.$GLOBALS['phpgw_info']['server']['default_domain'];
157                }
158                $GLOBALS['sessionid'] = $GLOBALS['phpgw']->session->create(strtolower($login),$passwd,$passwd_type,'u');
159
160                if(!isset($GLOBALS['sessionid']) || ! $GLOBALS['sessionid'])
161                {
162                        $GLOBALS['phpgw']->redirect($GLOBALS['phpgw_info']['server']['webserver_url'] . '/login.php?cd=' . $GLOBALS['phpgw']->session->cd_reason);
163                }
164                else
165                {
166                        if ($_POST['lang'] && preg_match('/^[a-z]{2}(-[a-z]{2}){0,1}$/',$_POST['lang']) &&
167                            $_POST['lang'] != $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'])
168                        {
169                                $GLOBALS['phpgw']->preferences->add('common','lang',$_POST['lang'],'session');
170                        }
171
172                        if(!$GLOBALS['phpgw_info']['server']['disable_autoload_langfiles'])
173                        {
174                                $GLOBALS['phpgw']->translation->autoload_changed_langfiles();
175                        }
176                        $forward = isset($_GET['phpgw_forward']) ? urldecode($_GET['phpgw_forward']) : @$_POST['phpgw_forward'];
177                        if (!$forward)
178                        {
179                                $extra_vars['cd'] = 'yes';
180                                $forward = '/home.php';
181                        }
182                        else
183                        {
184                                list($forward,$extra_vars) = explode('?',$forward,2);
185                        }
186                        if ($GLOBALS['phpgw_info']['server']['use_https'] != 2)
187                        {
188                                $forward = 'http://'.$_SERVER['HTTP_HOST'].($GLOBALS['phpgw']->link($forward.'?cd=yes'));
189                                echo "<script language='Javascript1.3'>location.href='".$forward."'</script>";
190                        }
191                        else
192                        {
193                                $GLOBALS['phpgw']->redirect_link($forward,$extra_vars);
194                        }
195                }
196        }
197        else
198        {
199                // !!! DONT CHANGE THESE LINES !!!
200                // If there is something wrong with this code TELL ME!
201                // Commenting out the code will not fix it. (jengo)
202                if(isset($_COOKIE['last_loginid']))
203                {
204                        $accounts = CreateObject('phpgwapi.accounts');
205                        $prefs = CreateObject('phpgwapi.preferences', $accounts->name2id($_COOKIE['last_loginid']));
206
207                        if($prefs->account_id)
208                        {
209                                $GLOBALS['phpgw_info']['user']['preferences'] = $prefs->read_repository();
210                        }
211                }
212                if ($_GET['lang'])
213                {
214                        $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] = $_GET['lang'];
215                }
216                elseif(!isset($_COOKIE['last_loginid']) || !$prefs->account_id)
217                {
218                        // If the lastloginid cookies isn't set, we will default to the first language,
219                        // the users browser accepts.
220                        list($lang) = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
221                        /*
222                        if(strlen($lang) > 2)
223                        {
224                                $lang = substr($lang,0,2);
225                        }
226                        */
227                        $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] = $lang;
228                }
229                #print 'LANG:' . $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] . '<br>';
230
231                $GLOBALS['phpgw']->translation->init(); // this will set the language according to the (new) set prefs
232                $GLOBALS['phpgw']->translation->add_app('login');
233                $GLOBALS['phpgw']->translation->add_app('loginscreen');
234                if(lang('loginscreen_message') == 'loginscreen_message*')
235                {
236                        $GLOBALS['phpgw']->translation->add_app('loginscreen','en');    // trying the en one
237                }
238                if(lang('loginscreen_message') != 'loginscreen_message*')
239                {
240                        $tmpl->set_var('lang_message',stripslashes(lang('loginscreen_message')));
241                }
242        }
243
244        if($GLOBALS['phpgw_info']['server']['use_prefix_organization'])
245        {
246                $obj_organization = CreateObject('phpgwapi.sector_search_ldap');
247                $organizations = $obj_organization->organization_search($GLOBALS['phpgw_info']['server']['ldap_context']);
248               
249                for ($i=0; $i<count($organizations); $i++)
250                {
251                        $tmp_array[strtolower($organizations[$i])] = $organizations[$i];       
252                }
253               
254                $arrayOrganization = $tmp_array;               
255                ksort($arrayOrganization);
256               
257                foreach($arrayOrganization
258                         as $organization_name => $organization_vars)
259                {
260                        $organization_select .= '<option value="' . $organization_name . '"';
261
262                        if($organization_name == $_COOKIE['last_organization'])
263                        {
264                                $organization_select .= ' selected';
265                        }
266                        $organization_select .= '>' . $organization_vars . "</option>\n";
267                }
268                $organization_select =  '<div class="login_label"><label>'.lang("organization")
269                                                        .'</label><br><select name="organization">'
270                                                        .$organization_select.'</select></div>';
271                $tmpl->set_var('select_organization',$organization_select);
272        }
273               
274        $domain_select = '&nbsp;';
275        $last_loginid = $_COOKIE['last_loginid'];
276        if($GLOBALS['phpgw_info']['server']['show_domain_selectbox'])
277        {
278                $domain_select = "<select name=\"logindomain\">\n";
279                foreach($GLOBALS['phpgw_domain'] as $domain_name => $domain_vars)
280                {
281                        $domain_select .= '<option value="' . $domain_name . '"';
282
283                        if($domain_name == $_COOKIE['last_domain'])
284                        {
285                                $domain_select .= ' selected';
286                        }
287                        $domain_select .= '>' . $domain_name . "</option>\n";
288                }
289                $domain_select .= "</select>\n";
290        }
291        elseif($last_loginid !== '')
292        {
293                reset($GLOBALS['phpgw_domain']);
294                list($default_domain) = each($GLOBALS['phpgw_domain']);
295
296                if($_COOKIE['last_domain'] != $default_domain && !empty($_COOKIE['last_domain']))
297                {
298                        $last_loginid .= '@' . $_COOKIE['last_domain'];
299                }
300        }
301        $tmpl->set_var('select_domain',$domain_select);
302
303        foreach($_GET as $name => $value)
304        {
305                if(ereg('phpgw_',$name))
306                {
307                        $extra_vars .= '&' . $name . '=' . urlencode($value);
308                }
309        }
310
311        if($extra_vars)
312        {
313                $extra_vars = '?' . substr($extra_vars,1);
314        }
315
316        /********************************************************\
317        * Check is the registration app is installed, activated  *
318        * And if the register link must be placed                *
319        \********************************************************/
320       
321        $cnf_reg = createobject('phpgwapi.config','registration');
322        $cnf_reg->read_repository();
323        $config_reg = $cnf_reg->config_data;
324
325        if($config_reg[enable_registration]=='True' && $config_reg[register_link]=='True')
326        {
327                $reg_link='&nbsp;<a href="registration/">'.lang('Not a user yet? Register now').'</a><br/>';
328        }
329
330        $GLOBALS['phpgw_info']['server']['template_set'] = $GLOBALS['phpgw_info']['login_template_set'];
331
332        $tmpl->set_var('register_link',$reg_link);
333        $tmpl->set_var('charset',$GLOBALS['phpgw']->translation->charset());
334        $tmpl->set_var('login_url', $GLOBALS['phpgw_info']['server']['webserver_url'] . '/login.php' . $extra_vars);
335        $tmpl->set_var('registration_url',$GLOBALS['phpgw_info']['server']['webserver_url'] . '/registration/');
336        $tmpl->set_var('version',$GLOBALS['phpgw_info']['server']['versions']['phpgwapi']);
337        $tmpl->set_var('cd',check_logoutcode($_GET['cd']));
338        $tmpl->set_var('cookie',$last_loginid);
339
340        $tmpl->set_var('lang_username',lang('username'));
341        $tmpl->set_var('lang_password',lang('password'));
342        $tmpl->set_var('lang_login',lang('login'));
343
344        $tmpl->set_var('website_title', $GLOBALS['phpgw_info']['server']['site_title']);
345        $tmpl->set_var('template_set',$GLOBALS['phpgw_info']['login_template_set']);
346        $tmpl->set_var('bg_color',($GLOBALS['phpgw_info']['server']['login_bg_color']?$GLOBALS['phpgw_info']['server']['login_bg_color']:'FFFFFF'));
347        $tmpl->set_var('bg_color_title',($GLOBALS['phpgw_info']['server']['login_bg_color_title']?$GLOBALS['phpgw_info']['server']['login_bg_color_title']:'486591'));
348
349        if($GLOBALS['phpgw_info']['server']['use_frontend_name'])
350                $tmpl->set_var('frontend_name', " - ".$GLOBALS['phpgw_info']['server']['use_frontend_name']);
351
352        if (substr($GLOBALS['phpgw_info']['server']['login_logo_file'],0,4) == 'http')
353        {
354                $var['logo_file'] = $GLOBALS['phpgw_info']['server']['login_logo_file'];
355        }
356        else
357        {
358                $var['logo_file'] = $GLOBALS['phpgw']->common->image('phpgwapi',$GLOBALS['phpgw_info']['server']['login_logo_file']?$GLOBALS['phpgw_info']['server']['login_logo_file']:'logo');
359        }
360        $var['logo_url'] = $GLOBALS['phpgw_info']['server']['login_logo_url']?$GLOBALS['phpgw_info']['server']['login_logo_url']:'http://www.eGroupWare.org';
361        if (substr($var['logo_url'],0,4) != 'http')
362        {
363                $var['logo_url'] = 'http://'.$var['logo_url'];
364        }
365        $var['logo_title'] = $GLOBALS['phpgw_info']['server']['login_logo_title']?$GLOBALS['phpgw_info']['server']['login_logo_title']:'www.eGroupWare.org';
366        $tmpl->set_var($var);
367
368        if (@$GLOBALS['phpgw_info']['server']['login_show_language_selection'])
369        {
370                $select_lang = '<select name="lang" onchange="'."location.href=location.href+(location.search?'&':'?')+'lang='+this.value".'">';
371                $langs = $GLOBALS['phpgw']->translation->get_installed_langs();
372                uasort($langs,'strcasecmp');
373                foreach ($langs as $key => $name)       // if we have a translation use it
374                {
375                        $select_lang .= "\n\t".'<option value="'.$key.'"'.($key == $GLOBALS['phpgw_info']['user']['preferences']['common']['lang'] ? ' selected="1"' : '').'>'.$name.'</option>';
376                }
377                $select_lang .= "\n</select>\n";
378                $tmpl->set_var(array(
379                        'lang_language' => lang('Language'),
380                        'select_language' => $select_lang,
381                ));
382        }
383        else
384        {
385                $tmpl->set_block('login_form','language_select');
386                $tmpl->set_var('language_select','');
387        }
388
389        $tmpl->set_var('autocomplete', ($GLOBALS['phpgw_info']['server']['autocomplete_login'] ? 'autocomplete="off"' : ''));
390
391$aux_captcha = '';
392// soh mostra o captcha se for login sem certificado....
393if($GLOBALS['phpgw_info']['server']['captcha'] && $_GET['cd']!='300' )
394        {
395                if($valor_cookie > $GLOBALS['phpgw_info']['server']['num_badlogin'])
396                        {
397                                $aux_captcha = '<div class="login_label" >
398               <img src="./security/captcha.php" title="'.lang('Security code').'" alt="'.lang('Security code').'" style="width:60;">
399<br />
400                <input class="input" type="text" maxlength="50" size="20" name="codigo" id="codigo" value="" >
401              </div>';
402                                $tmpl->set_var('captcha',$aux_captcha);
403                        }
404        }
405
406// Testa se deve incluir applet para login com certificado......
407if ($_GET['cd']=='300' && $GLOBALS['phpgw_info']['server']['certificado']==1)
408        {
409                //Zera o Cookie contador, responsavel pelo captcha
410                $valor_cookie = 1;
411                setcookie("contador", 1,0);
412
413                $link_alterna_login = '<img border=0 style="padding: 0px 5px 0px 0px" src="phpgwapi/templates/default/images/warning.gif"/><a href="login.php" style="margin: 0px; padding: 0px; text-decoration:none;"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="1">' . lang('Access without Digital Certificate') . '</a>';
414                $tmpl->set_var('show','none');
415                $tmpl->set_var('action','<div id="action"><img style="border:0px;margin:31px 0px 58px 0px;" src="phpgwapi/templates/default/images/acao.gif" /></div>');
416                // gera parametro com tokens suportados ....
417                $var_tokens = '';
418                for($ii = 1; $ii < 11; $ii++)
419                        {
420                                if($GLOBALS['phpgw_info']['server']['test_token' . $ii . '1'])
421                                        $var_tokens .= $GLOBALS['phpgw_info']['server']['test_token' . $ii . '1'] . ',';
422                        }
423
424                if(!$var_tokens)
425                        {
426                                $var_tokens = 'ePass2000Lx;/usr/lib/libepsng_p11.so,ePass2000Win;c:/windows/system32/ngp11v211.dll';
427                        }
428                        $param1 = "
429                                                '<param name=\"token\" value=\"" . substr($var_tokens,0,strlen($var_tokens)) . "\"> ' +
430                                               ";
431                        $param2 = "
432                                                'token=\"" . substr($var_tokens,0,strlen($var_tokens)) . "\" ' +
433                                               ";
434                               
435                        $cod_applet =
436
437/*    // com debug ativado
438            '<script type="text/javascript">
439                                        if (navigator.userAgent.match(\'MSIE\')){
440                                                document.write(\'<object style="display:yes;width:0;height:0;vertical-align:bottom;" id="login_applet" \' +
441                                                \'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"> \' +
442                                                \'<param name="type" value="application/x-java-applet;version=1.5"> \' +
443                                                \'<param name="code" value="LoginApplet.class"> \' +
444                                                \'<param name="locale" value="' . $lang . '"> \' +
445                                                \'<param name="mayscript" value="true"> \' + '
446                                                . $param1
447                                                . ' \'<param name="archive" value="ExpressoCertLogin.jar,ExpressoCert.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,commons-codec-1.3.jar,bcmail-jdk15-142.jar,mail.jar,activation.jar,bcprov-jdk15-142.jar"> \' +
448                        \'<param name="debug" value="true"> \' +
449                                                \'</object>\');
450                                        }
451                                        else {
452                                                document.write(\'<embed style="display:yes;width:0;height:0;vertical-align:bottom;" id="login_applet" code="LoginApplet.class" locale="' . $lang . '"\' +
453                                                \'archive="ExpressoCertLogin.jar,ExpressoCert.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,commons-codec-1.3.jar,bcmail-jdk15-142.jar,mail.jar,activation.jar,bcprov-jdk15-142.jar" \' + '
454                                                . $param2
455                                                . ' \'type="application/x-java-applet;version=1.5" debug= "true" mayscript > \' +
456                                                \'<noembed> \' +
457                                                \'No Java Support. \' +
458                                                \'</noembed> \' +
459                                                \'</embed> \');
460                                        }
461                                </script>';
462*/
463            // sem debug ativado
464            '<script type="text/javascript">
465                                        if (navigator.userAgent.match(\'MSIE\')){
466                                                document.write(\'<object style="display:yes;width:0;height:0;vertical-align:bottom;" id="login_applet" \' +
467                                                \'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"> \' +
468                                                \'<param name="type" value="application/x-java-applet;version=1.5"> \' +
469                                                \'<param name="codebase" value="/security/">\' +
470                                                \'<param name="code" value="LoginApplet.class"> \' +
471                                                \'<param name="locale" value="' . $lang . '"> \' +
472                                                \'<param name="mayscript" value="true"> \' + '
473                                                . $param1
474                                                . ' \'<param name="archive" value="ExpressoCertLogin.jar,ExpressoCert.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,commons-codec-1.3.jar,bcmail-jdk15-142.jar,mail.jar,activation.jar,bcprov-jdk15-142.jar"> \' +
475                                                \'</object>\');
476                                        }
477                                        else {
478                                                document.write(\'<embed style="display:yes;width:0;height:0;vertical-align:bottom;" id="login_applet" codebase="/security/" code="LoginApplet.class" locale="' . $lang . '"\' +
479                                                \'archive="ExpressoCertLogin.jar,ExpressoCert.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,commons-codec-1.3.jar,bcmail-jdk15-142.jar,mail.jar,activation.jar,bcprov-jdk15-142.jar" \' + '
480                                                . $param2 
481                                                . ' \'type="application/x-java-applet;version=1.5" mayscript > \' +
482                                                \'<noembed> \' +
483                                                \'No Java Support. \' +
484                                                \'</noembed> \' +
485                                                \'</embed> \');
486                                        }
487                                </script>';
488
489
490        }
491
492else
493        {
494                if($GLOBALS['phpgw_info']['server']['certificado']==1)
495                        {
496                                $tmpl->set_var('show','yes');
497                                $link_alterna_login = '<img border=0 style="padding: 0px" src="phpgwapi/templates/default/images/lock1_icon.gif"/><a title="' . lang('Link to use digital certificate') . '" href="login.php?cd=300" style="margin: 0px; padding: 0px; text-decoration:none;"><font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>' . lang('Logon with my digital certificate') . '</b></font></a>';
498                        }
499                        $tmpl->set_var('lang_username',lang('username'));
500                        $tmpl->set_var('action','');
501                        $cod_applet = '';
502
503                }
504
505                $tmpl->set_var('applet',$cod_applet);
506                $tmpl->set_var('link_alterna_login',$link_alterna_login);
507               
508
509        $tmpl->pfp('loginout','login_form');
510?>
511
Note: See TracBrowser for help on using the repository browser.