mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +02:00
MDL-8813 Cas auth for 1.8x - credit goes to Jérôme Gutierrez; TODO: redirection after failed login
This commit is contained in:
parent
4e0d03df62
commit
ea714cfdbd
24 changed files with 1780 additions and 5088 deletions
27
auth/cas/CAS/languages/german.php
Normal file
27
auth/cas/CAS/languages/german.php
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file languages/german.php
|
||||||
|
* @author Henrik Genssen <hg at mediafactory.de>
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
|
||||||
|
$this->_strings = array(
|
||||||
|
CAS_STR_USING_SERVER
|
||||||
|
=> 'via Server',
|
||||||
|
CAS_STR_AUTHENTICATION_WANTED
|
||||||
|
=> 'CAS Authentifizierung erforderlich!',
|
||||||
|
CAS_STR_LOGOUT
|
||||||
|
=> 'CAS Abmeldung!',
|
||||||
|
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||||
|
=> 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie <a href="%s">hier</a> um fortzufahren.',
|
||||||
|
CAS_STR_AUTHENTICATION_FAILED
|
||||||
|
=> 'CAS Anmeldung fehlgeschlagen!',
|
||||||
|
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||||
|
=> '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontkatieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>',
|
||||||
|
CAS_STR_SERVICE_UNAVAILABLE
|
||||||
|
=> 'Der Dienst `<b>%s</b>\' ist nicht verfügbar (<b>%s</b>).'
|
||||||
|
);
|
||||||
|
|
||||||
|
?>
|
27
auth/cas/CAS/languages/japanese.php
Normal file
27
auth/cas/CAS/languages/japanese.php
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file languages/japanese.php
|
||||||
|
* @author fnorif (fnorif@yahoo.co.jp)
|
||||||
|
*
|
||||||
|
* Now Encoding is EUC-JP and LF
|
||||||
|
**/
|
||||||
|
|
||||||
|
$this->_strings = array(
|
||||||
|
CAS_STR_USING_SERVER
|
||||||
|
=> 'using server',
|
||||||
|
CAS_STR_AUTHENTICATION_WANTED
|
||||||
|
=> 'CASによる認証を行います',
|
||||||
|
CAS_STR_LOGOUT
|
||||||
|
=> 'CASからログアウトします!',
|
||||||
|
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||||
|
=> 'CASサーバに行く必要があります。自動的に転送されない場合は <a href="%s">こちら</a> をクリックして続行します。',
|
||||||
|
CAS_STR_AUTHENTICATION_FAILED
|
||||||
|
=> 'CASによる認証に失敗しました',
|
||||||
|
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||||
|
=> '<p>認証できませんでした.</p><p>もう一度リクエストを送信する場合は<a href="%s">こちら</a>をクリック.</p><p>問題が解決しない場合は <a href="mailto:%s">このサイトの管理者</a>に問い合わせてください.</p>',
|
||||||
|
CAS_STR_SERVICE_UNAVAILABLE
|
||||||
|
=> 'サービス `<b>%s</b>\' は利用できません (<b>%s</b>).'
|
||||||
|
);
|
||||||
|
|
||||||
|
?>
|
|
@ -1,7 +1,4 @@
|
||||||
CAS-module README
|
CAS-module README
|
||||||
|
|
||||||
Please read comments from lib.php for auth/cas module
|
|
||||||
The auth/cas module is using part of the /auth/ldap module. The /auth/ldap directory should exist.
|
|
||||||
The auth/cas use the PHPCAS project from http://esup-phpcas.sourceforge.net
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1573
auth/cas/auth.php
1573
auth/cas/auth.php
File diff suppressed because it is too large
Load diff
12
auth/cas/cas_form.html
Normal file
12
auth/cas/cas_form.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
<div class="loginbox clearfix">
|
||||||
|
<div class="loginpanel">
|
||||||
|
<div>
|
||||||
|
<a href="<?php echo $CFG->wwwroot.'/login/index.php?authCAS=CAS';?>"><?php print_string("accesCAS","auth");?></a>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<div>
|
||||||
|
<a href="<?php echo $CFG->wwwroot.'/login/index.php?authCAS=NOCAS';?>"><?php print_string("accesNOCAS","auth");?></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,187 +1,434 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
global $CFG;
|
global $CFG;
|
||||||
require_once 'languages.php';
|
require_once 'languages.php';
|
||||||
|
|
||||||
$createoptions[0] = get_string("no");
|
$createoptions[0] = get_string("no");
|
||||||
$createoptions[1] = get_string("yes");
|
$createoptions[1] = get_string("yes");
|
||||||
|
|
||||||
// set to defaults if undefined
|
// set to defaults if undefined (CAS)
|
||||||
if (!isset ($config->hostname)) {
|
if (!isset ($config->hostname))
|
||||||
$config->hostname = '';
|
$config->hostname = '';
|
||||||
}
|
if (!isset ($config->port))
|
||||||
if (!isset ($config->port)) {
|
$config->port = '';
|
||||||
$config->port = '';
|
if (!isset ($config->casversion))
|
||||||
}
|
$config->casversion = '';
|
||||||
if (!isset ($config->casversion)) {
|
if (!isset ($config->baseuri))
|
||||||
$config->casversion = '';
|
$config->baseuri = '';
|
||||||
}
|
if (!isset ($config->language))
|
||||||
if (!isset ($config->baseuri)) {
|
$config->language = '';
|
||||||
$config->baseuri = '';
|
if (!isset ($config->use_cas))
|
||||||
}
|
$config->use_cas = '';
|
||||||
if (!isset ($config->language)) {
|
if (!isset ($config->proxycas))
|
||||||
$config->language = '';
|
$config->proxycas = '';
|
||||||
}
|
if (!isset ($config->logoutcas))
|
||||||
if (!isset ($config->use_cas)) {
|
$config->logoutcas = '';
|
||||||
$config->use_cas = '';
|
if (!isset ($config->multiauth))
|
||||||
}
|
$config->multiauth = '';
|
||||||
if (!isset ($config->auth_user_create)) {
|
// set to defaults if undefined (LDAP)
|
||||||
$config->auth_user_create = '0';
|
if (!isset($config->host_url))
|
||||||
}
|
{ $config->host_url = ''; }
|
||||||
if (!isset ($config->create_user)) {
|
if (empty($config->ldapencoding))
|
||||||
$config->create_user = '0';
|
{ $config->ldapencoding = 'utf-8'; }
|
||||||
}
|
if (!isset($config->contexts))
|
||||||
if (!isset($config->changepasswordurl)) {
|
{ $config->contexts = ''; }
|
||||||
$config->changepasswordurl = '';
|
if (!isset($config->user_type))
|
||||||
}
|
{ $config->user_type = 'default'; }
|
||||||
|
if (!isset($config->user_attribute))
|
||||||
?>
|
{ $config->user_attribute = ''; }
|
||||||
<table cellspacing="0" cellpadding="5" border="0">
|
if (!isset($config->search_sub))
|
||||||
|
{ $config->search_sub = ''; }
|
||||||
<tr>
|
if (!isset($config->opt_deref))
|
||||||
<td colspan="2">
|
{ $config->opt_deref = LDAP_DEREF_NEVER; }
|
||||||
<h4><?php print_string('auth_cas_server_settings', 'auth') ?> </h4>
|
if (!isset($config->bind_dn))
|
||||||
</td>
|
{$config->bind_dn = ''; }
|
||||||
</tr>
|
if (!isset($config->bind_pw))
|
||||||
|
{$config->bind_pw = ''; }
|
||||||
<tr valign="top" class="required">
|
if (!isset($config->version))
|
||||||
<td align="right"><?php print_string('auth_cas_use_cas', 'auth') ?>:</td>
|
{$config->version = '2'; }
|
||||||
<td>
|
if (!isset($config->objectclass))
|
||||||
<?php
|
{$config->objectclass = ''; }
|
||||||
|
if (!isset($config->memberattribute))
|
||||||
unset($options);
|
{$config->memberattribute = ''; }
|
||||||
$options[1] = get_string('yes');
|
if (!isset($config->memberattribute_isdn))
|
||||||
choose_from_menu ($options, 'use_cas', $config->use_cas, get_string('no'), '', '');
|
{$config->memberattribute_isdn = ''; }
|
||||||
|
if (!isset($config->groupecreators))
|
||||||
?>
|
{$config->groupecreators = ''; }
|
||||||
</td>
|
if (!isset($config->attrcreators))
|
||||||
<td><?php print_string('auth_cas_enabled', 'auth') ?></td>
|
{$config->attrcreators = ''; }
|
||||||
</tr>
|
if (!isset($config->removeuser))
|
||||||
|
{$config->removeuser = 0; }
|
||||||
<tr valign="top" class="required">
|
|
||||||
<td align="right"><?php print_string('auth_cas_hostname_key', 'auth') ?>:</td>
|
$yesno = array( get_string('no'), get_string('yes') );
|
||||||
<td>
|
|
||||||
<input name="hostname" type="text" size="30" value="<?php echo $config->hostname ?>" />
|
if (!function_exists('ldap_connect')) { // Is php4-ldap really there?
|
||||||
<?php
|
notify(get_string('auth_ldap_noextension','auth'));
|
||||||
|
}
|
||||||
if (isset($err['hostname'])) {
|
|
||||||
formerr($err['hostname']);
|
|
||||||
}
|
?>
|
||||||
|
|
||||||
?>
|
<table cellspacing="0" cellpadding="5" border="0" align="center">
|
||||||
</td>
|
|
||||||
<td><?php print_string('auth_cas_hostname', 'auth') ?></td>
|
<tr>
|
||||||
</tr>
|
<td colspan="2">
|
||||||
|
<h4><?php print_string('auth_cas_server_settings', 'auth') ?> </h4>
|
||||||
<tr valign="top" class="required">
|
</td>
|
||||||
<td align="right"><?php print_string('auth_cas_baseuri_key', 'auth') ?>:</td>
|
</tr>
|
||||||
<td>
|
|
||||||
<input name="baseuri" type="text" size="30" value="<?php echo $config->baseuri ?>" />
|
<tr valign="top" class="required">
|
||||||
<?php
|
<td align="right"><?php print_string('auth_cas_use_cas', 'auth') ?>:</td>
|
||||||
|
<td>
|
||||||
if (isset($err['baseuri'])) {
|
<?php
|
||||||
formerr($err['baseuri']);
|
|
||||||
}
|
unset($options);
|
||||||
|
$options[1] = get_string('yes');
|
||||||
?>
|
choose_from_menu ($options, 'use_cas', $config->use_cas, get_string('no'), '', '');
|
||||||
</td>
|
|
||||||
<td><?php print_string('auth_cas_baseuri', 'auth') ?></td>
|
?>
|
||||||
</tr>
|
</td>
|
||||||
|
<td><?php print_string('auth_cas_enabled', 'auth') ?></td>
|
||||||
<tr valign="top" class="required">
|
</tr>
|
||||||
<td align="right"><?php print_string('auth_cas_port_key', 'auth') ?>:</td>
|
|
||||||
<td>
|
<tr valign="top" class="required">
|
||||||
<input name="port" type="text" size="30" value="<?php echo $config->port ?>" />
|
<td align="right"><?php print_string('auth_cas_hostname_key', 'auth') ?>:</td>
|
||||||
<?php
|
<td>
|
||||||
|
<input name="hostname" type="text" size="30" value="<?php echo $config->hostname ?>" />
|
||||||
if (isset($err['port'])) {
|
<?php
|
||||||
formerr($err['port']);
|
|
||||||
}
|
if (isset($err['hostname'])) {
|
||||||
|
formerr($err['hostname']);
|
||||||
?>
|
}
|
||||||
</td>
|
|
||||||
<td><?php print_string('auth_cas_port', 'auth') ?></td>
|
?>
|
||||||
</tr>
|
</td>
|
||||||
|
<td><?php print_string('auth_cas_hostname', 'auth') ?></td>
|
||||||
<tr valign="top" class="required">
|
</tr>
|
||||||
<td align="right"><?php print_string('auth_cas_casversion', 'auth') ?>:</td>
|
|
||||||
<td>
|
<tr valign="top" class="required">
|
||||||
<input name="casversion" type="text" size="30" value="<?php echo $config->casversion ?>" />
|
<td align="right"><?php print_string('auth_cas_baseuri_key', 'auth') ?>:</td>
|
||||||
<?php
|
<td>
|
||||||
|
<input name="baseuri" type="text" size="30" value="<?php echo $config->baseuri ?>" />
|
||||||
if (isset($err['casversion'])) {
|
<?php
|
||||||
formerr($err['casversion']);
|
|
||||||
}
|
if (isset($err['baseuri'])) {
|
||||||
|
formerr($err['baseuri']);
|
||||||
?>
|
}
|
||||||
</td>
|
|
||||||
<td><?php print_string('auth_cas_version', 'auth') ?></td>
|
?>
|
||||||
</tr>
|
</td>
|
||||||
|
<td><?php print_string('auth_cas_baseuri', 'auth') ?></td>
|
||||||
<tr valign="top" class="required">
|
</tr>
|
||||||
<td align="right"><?php print_string('auth_cas_language_key', 'auth') ?>:</td>
|
|
||||||
<td>
|
<tr valign="top" class="required">
|
||||||
<?php
|
<td align="right"><?php print_string('auth_cas_port_key', 'auth') ?>:</td>
|
||||||
|
<td>
|
||||||
choose_from_menu($CASLANGUAGES, 'language', $config->language, '');
|
<input name="port" type="text" size="30" value="<?php echo $config->port ?>" />
|
||||||
|
<?php
|
||||||
?>
|
|
||||||
</td>
|
if (isset($err['port'])) {
|
||||||
<td><?php print_string('auth_cas_language', 'auth') ?></td>
|
formerr($err['port']);
|
||||||
</tr>
|
}
|
||||||
|
|
||||||
<tr valign="top">
|
?>
|
||||||
<td align="right"><?php print_string('auth_cas_auth_user_create', 'auth') ?>: </td>
|
</td>
|
||||||
<td>
|
<td><?php print_string('auth_cas_port', 'auth') ?></td>
|
||||||
<?php
|
</tr>
|
||||||
|
|
||||||
choose_from_menu($createoptions, 'auth_user_create', $config->auth_user_create, '');
|
<tr valign="top" class="required">
|
||||||
if (isset($err['auth_user_create'])) {
|
<td align="right"><?php print_string('auth_cas_casversion', 'auth') ?>:</td>
|
||||||
formerr($err['auth_user_create']);
|
<td>
|
||||||
}
|
<input name="casversion" type="text" size="30" value="<?php echo $config->casversion ?>" />
|
||||||
|
<?php
|
||||||
?>
|
|
||||||
</td>
|
if (isset($err['casversion'])) {
|
||||||
<td>
|
formerr($err['casversion']);
|
||||||
<?php print_string("auth_user_creation","auth"); ?>
|
}
|
||||||
</td>
|
|
||||||
</tr>
|
?>
|
||||||
|
</td>
|
||||||
<tr valign="top" class="required">
|
<td><?php print_string('auth_cas_version', 'auth') ?></td>
|
||||||
<td align="right"><?php print_string('auth_cas_create_user_key', 'auth') ?>:</td>
|
</tr>
|
||||||
<td>
|
|
||||||
<?php
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><?php print_string('auth_cas_language_key', 'auth') ?>:</td>
|
||||||
unset($options);
|
<td>
|
||||||
$options[0] = get_string('no');
|
<?php
|
||||||
$options[1] = get_string('yes');
|
|
||||||
choose_from_menu($options, 'create_user', $config->create_user, '');
|
choose_from_menu($CASLANGUAGES, 'language', $config->language, '');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
<td><?php print_string('auth_cas_create_user', 'auth') ?></td>
|
<td><?php print_string('auth_cas_language', 'auth') ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr valign="top">
|
<tr valign="top" class="required">
|
||||||
<td align="right"><?php print_string('auth_cas_changepasswordurl', 'auth') ?>: </td>
|
<td align="right"><?php print_string('auth_cas_proxycas_key', 'auth') ?>:</td>
|
||||||
<td>
|
<td>
|
||||||
<input name="changepasswordurl" type="text" value="<?php echo $config->changepasswordurl ?>" />
|
<?php
|
||||||
<?php
|
unset($options);
|
||||||
|
$options[1] = get_string('yes');
|
||||||
if (isset($err['changepasswordurl'])) {
|
choose_from_menu ($options, 'proxycas', $config->proxycas, get_string('no'), '', '');
|
||||||
formerr($err['changepasswordurl']);
|
?>
|
||||||
}
|
</td>
|
||||||
|
<td><?php print_string('auth_cas_proxycas', 'auth') ?></td>
|
||||||
?>
|
</tr>
|
||||||
</td>
|
|
||||||
<td><?php print_string('changepasswordhelp', 'auth') ?></td>
|
<tr valign="top" class="required">
|
||||||
</tr>
|
<td align="right"><?php print_string('auth_cas_logoutcas_key', 'auth') ?>:</td>
|
||||||
|
<td>
|
||||||
</table>
|
<?php
|
||||||
|
unset($options);
|
||||||
<?php
|
$options[1] = get_string('yes');
|
||||||
|
choose_from_menu ($options, 'logoutcas', $config->logoutcas, get_string('no'), '', '');
|
||||||
$ldapplugin = get_auth_plugin('ldap');
|
?>
|
||||||
$ldapplugin->config_form(get_config('auth/ldap'), $err);
|
</td>
|
||||||
|
<td><?php print_string('auth_cas_logoutcas', 'auth') ?></td>
|
||||||
?>
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><?php print_string('auth_cas_multiauth_key', 'auth') ?>:</td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
unset($options);
|
||||||
|
$options[1] = get_string('yes');
|
||||||
|
choose_from_menu ($options, 'multiauth', $config->multiauth, get_string('no'), '', '');
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
<td><?php print_string('auth_cas_multiauth', 'auth') ?></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<h4><?php print_string('auth_ldap_server_settings', 'auth') ?> </h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="host_url"><?php print_string('auth_ldap_host_url_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="host_url" id="host_url" type="text" size="30" value="<?php echo $config->host_url?>" />
|
||||||
|
<?php if (isset($err['host_url'])) formerr($err['host_url']); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_host_url','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="menuversion"><?php print_string('auth_ldap_version_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
$versions = array();
|
||||||
|
$versions[2] = '2';
|
||||||
|
$versions[3] = '3';
|
||||||
|
choose_from_menu($versions, 'version', $config->version, '');
|
||||||
|
if (isset($err['version'])) formerr($err['version']);
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_version','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="ldapencoding"><?php print_string("auth_ldap_ldap_encoding_key", "auth") ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input id="ldapencoding" name="ldapencoding" type="text" value="<?php echo $config->ldapencoding ?>" />
|
||||||
|
<?php
|
||||||
|
|
||||||
|
if (isset($err['ldapencoding'])) {
|
||||||
|
formerr($err['ldapencoding']);
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
<td><?php print_string('auth_ldap_ldap_encoding', 'auth') ?></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<h4><?php print_string('auth_ldap_bind_settings', 'auth') ?> </h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="bind_dn"><?php print_string('auth_ldap_bind_dn_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="bind_dn" id="bind_dn" type="text" size="30" value="<?php echo $config->bind_dn?>" />
|
||||||
|
<?php if (isset($err['bind_dn'])) formerr($err['bind_dn']); ?>
|
||||||
|
</td><td>
|
||||||
|
<?php print_string('auth_ldap_bind_dn','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="bind_pw"><?php print_string('auth_ldap_bind_pw_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="bind_pw" id="bind_pw" type="password" size="30" value="<?php echo $config->bind_pw?>" />
|
||||||
|
<?php if (isset($err['bind_pw'])) formerr($err['bind_pw']); ?>
|
||||||
|
</td><td>
|
||||||
|
<?php print_string('auth_ldap_bind_pw','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<h4><?php print_string('auth_ldap_user_settings', 'auth') ?> </h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="menuuser_type"><?php print_string('auth_ldap_user_type_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<?php choose_from_menu($this->ldap_suppported_usertypes(), 'user_type', $config->user_type, ''); ?>
|
||||||
|
<?php if (isset($err['user_type'])) formerr($err['user_type']); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_user_type', 'auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="contexts"><?php print_string('auth_ldap_contexts_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="contexts" id="contexts" type="text" size="30" value="<?php echo $config->contexts?>" />
|
||||||
|
<?php if (isset($err['contexts'])) formerr($err['contexts']); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_contexts', 'auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="menusearch_sub"><?php print_string('auth_ldap_search_sub_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<?php choose_from_menu($yesno, 'search_sub', $config->search_sub, ''); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_search_sub','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="menuopt_deref"><?php print_string('auth_ldap_opt_deref_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
$opt_deref = array();
|
||||||
|
$opt_deref[LDAP_DEREF_NEVER] = get_string('no');
|
||||||
|
$opt_deref[LDAP_DEREF_ALWAYS] = get_string('yes');
|
||||||
|
choose_from_menu($opt_deref, 'opt_deref', $config->opt_deref, LDAP_DEREF_NEVER, '');
|
||||||
|
if (isset($err['opt_deref'])) formerr($err['opt_deref']);
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_opt_deref','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="user_attribute"><?php print_string('auth_ldap_user_attribute_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="user_attribute" id="user_attribute" type="text" size="30" value="<?php echo $config->user_attribute?>" />
|
||||||
|
<?php if (isset($err['user_attribute'])) formerr($err['user_attribute']); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_user_attribute','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="memberattribute"><?php print_string('auth_ldap_memberattribute_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="memberattribute" id="memberattribute" type="text" size="30" value="<?php echo $config->memberattribute?>" />
|
||||||
|
<?php if (isset($err['memberattribute'])) formerr($err['memberattribute']); ?>
|
||||||
|
</td><td>
|
||||||
|
<?php print_string('auth_ldap_memberattribute','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="memberattribute_isdn"><?php print_string('auth_ldap_memberattribute_isdn_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="memberattribute_isdn" id="memberattribute_isdn" type="text" size="30" value="<?php echo $config->memberattribute_isdn?>" />
|
||||||
|
<?php if (isset($err['memberattribute_isdn'])) formerr($err['memberattribute_isdn']); ?>
|
||||||
|
</td><td>
|
||||||
|
<?php print_string('auth_ldap_memberattribute_isdn','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="objectclass"><?php print_string('auth_ldap_objectclass_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="objectclass" id="objectclass" type="text" size="30" value="<?php echo $config->objectclass?>" />
|
||||||
|
<?php if (isset($err['objectclass'])) formerr($err['objectclass']); ?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_ldap_objectclass','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<h4><?php print_string('coursecreators') ?> </h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="attrcreators_key"><?php print_string('auth_ldap_attrcreators_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="attrcreators" id="attrcreators" type="text" size="30" value="<?php echo $config->attrcreators?>" />
|
||||||
|
<?php if (isset($err['attrcreators'])) formerr($err['attrcreators']); ?>
|
||||||
|
</td><td>
|
||||||
|
<?php print_string('auth_ldap_attrcreators','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top" class="required">
|
||||||
|
<td align="right"><label for="groupecreators_key"><?php print_string('auth_ldap_groupecreators_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<input name="groupecreators" id="groupecreators" type="text" size="30" value="<?php echo $config->groupecreators?>" />
|
||||||
|
<?php if (isset($err['groupecreators'])) formerr($err['groupecreators']); ?>
|
||||||
|
</td><td>
|
||||||
|
<?php print_string('auth_ldap_groupecreators','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<h4><?php print_string('auth_sync_script', 'auth') ?> </h4>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr valign="top">
|
||||||
|
<td align="right"><label for="menuremoveuser"><?php print_string('auth_remove_user_key','auth') ?></label></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
$deleteopt = array();
|
||||||
|
$deleteopt['0'] = get_string('auth_remove_keep','auth');
|
||||||
|
$deleteopt['1'] = get_string('auth_remove_suspend','auth');
|
||||||
|
$deleteopt['2'] = get_string('auth_remove_delete','auth');
|
||||||
|
choose_from_menu($deleteopt, 'removeuser', $config->removeuser, '');
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<?php print_string('auth_remove_user','auth') ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$help = get_string('auth_ldapextrafields','auth');
|
||||||
|
$help .= get_string('auth_updatelocal_expl','auth');
|
||||||
|
$help .= get_string('auth_fieldlock_expl','auth');
|
||||||
|
$help .= get_string('auth_updateremote_expl','auth');
|
||||||
|
$help .= '<hr />';
|
||||||
|
$help .= get_string('auth_updateremote_ldap','auth');
|
||||||
|
|
||||||
|
print_auth_lock_options('cas', $user_fields, $help, true, true);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<table width="90%" border="0" cellspacing="10" cellpadding="5" align="center" style="font-size: small">
|
|
||||||
<tr>
|
|
||||||
<td width="50%" class="required" class="headingblock">
|
|
||||||
<p align="center"><b><font size="3"><?php formerr($errormsg) ?></font></b></p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
<?php
|
|
||||||
// version $Id$
|
|
||||||
// Page for forbidden access from CAS
|
|
||||||
require("../../config.php");
|
|
||||||
|
|
||||||
if (!$site = get_site()) {
|
|
||||||
print_error('nosite', '', '', NULL, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$loginsite = get_string("loginsite");
|
|
||||||
$errormsg = get_string("auth_cas_invalidcaslogin", "auth");
|
|
||||||
|
|
||||||
print_header("$site->fullname: $loginsite", $site->fullname, $loginsite);
|
|
||||||
include("forbidden.html");
|
|
||||||
print_footer();
|
|
||||||
exit;
|
|
||||||
?>
|
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
<table width="90%" border="0" cellspacing="10" cellpadding="5" >
|
|
||||||
<tr>
|
|
||||||
<?php if ($show_instructions) { ?>
|
|
||||||
<td width="50%" class="headingblock">
|
|
||||||
<p><b><?php print_string("returningtosite") ?></b></p>
|
|
||||||
</td>
|
|
||||||
<td width="50%" class="headingblock">
|
|
||||||
<p><b><?php print_string("firsttime") ?></b></p>
|
|
||||||
</td>
|
|
||||||
<?php } ?>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="50%" align="center" valign="top" class="generalbox">
|
|
||||||
<p><?php print_string("loginusing") ?>:<br />
|
|
||||||
(<?php print_string("cookiesenabled");?>)
|
|
||||||
<?php helpbutton("cookies", get_string("cookiesenabled"))?><br /><?php formerr($errormsg) ?>
|
|
||||||
</p>
|
|
||||||
<form action="index.php" method="post" id="login">
|
|
||||||
<div>
|
|
||||||
<table border="0" style="font-size: small">
|
|
||||||
<tr>
|
|
||||||
<td width="100%">
|
|
||||||
<input type="hidden" name="username" id="username" value="cas" />
|
|
||||||
<input type="hidden" name="password" id="password" value="cas" />
|
|
||||||
<input type="submit" value="<?php print_string("auth_cas_logincas", "auth") ?>" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<?php if ($CFG->guestloginbutton) { ?>
|
|
||||||
<hr width="80%" />
|
|
||||||
<p><?php print_string("someallowguest") ?>:</p>
|
|
||||||
<form action="index.php" method="post" id="guestlogin">
|
|
||||||
<div>
|
|
||||||
<input type="hidden" name="username" value="guest" />
|
|
||||||
<input type="hidden" name="password" value="guest" />
|
|
||||||
<input type="submit" value="<?php print_string("loginguest") ?>" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
<?php if (is_internal_auth() ) {
|
|
||||||
$changepassword = "forgot_password.php";
|
|
||||||
$changebuttonname = get_string("senddetails");
|
|
||||||
?>
|
|
||||||
<hr width="80%" />
|
|
||||||
<p><?php print_string("forgotten") ?></p>
|
|
||||||
<form action="<?php p($changepassword) ?>" method="get" id="changepassword">
|
|
||||||
<div><input type="submit" value="<?php p($changebuttonname) ?>" /></div>
|
|
||||||
</form>
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<?php if ($show_instructions) { ?>
|
|
||||||
<td width="50%" valign="top" class="generalbox">
|
|
||||||
<?php switch ($CFG->auth) {
|
|
||||||
case "email":
|
|
||||||
print_string("loginsteps", "", "signup.php");
|
|
||||||
?>
|
|
||||||
<form action="signup.php" method="get" id="signup">
|
|
||||||
<div><input type="submit" value="<?php print_string("startsignup") ?>" /></div>
|
|
||||||
</form>
|
|
||||||
<?php break;
|
|
||||||
case "none":
|
|
||||||
print_string("loginstepsnone");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$authplugin = get_auth_plugin($CFG->auth);
|
|
||||||
echo format_text($CFG->auth_instructions);
|
|
||||||
if (!empty($authplugin->config->user_create) and method_exists($authplugin, 'user_create')) {
|
|
||||||
?>
|
|
||||||
|
|
||||||
<form action="signup.php" method="get" id="signup">
|
|
||||||
<div><input type="submit" value="<?php print_string("startsignup") ?>" /></div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<?php }
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td></tr>
|
|
||||||
<?php } ?>
|
|
||||||
</table>
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
<?PHP
|
<?PHP
|
||||||
// version $Id$
|
// version $Id$
|
||||||
// List of CAS langages.
|
// List of CAS langages.
|
||||||
// You can add langages in /CAS/langage.
|
// You can add langages in /CAS/langage.
|
||||||
// Please send them to http://esup-phpcas.sourceforge.net
|
// Please send them to http://esup-phpcas.sourceforge.net
|
||||||
$CASLANGUAGES = array (
|
$CASLANGUAGES = array (
|
||||||
"greek" => "Modern Greek",
|
"english" => "English",
|
||||||
"english" => "English",
|
"french" => "French");
|
||||||
"french" => "French");
|
?>
|
||||||
?>
|
|
||||||
|
|
|
@ -1,313 +0,0 @@
|
||||||
<?php
|
|
||||||
// $Id$
|
|
||||||
// author: romualdLorthioir $
|
|
||||||
//CHANGELOG:
|
|
||||||
//05.03.2005 replace /login/index.php
|
|
||||||
defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');
|
|
||||||
|
|
||||||
//Define variables used in page
|
|
||||||
if (!$site = get_site()) {
|
|
||||||
print_error('nosite', '', '', NULL, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($CFG->langmenu)) {
|
|
||||||
$langmenu = "";
|
|
||||||
} else {
|
|
||||||
$currlang = current_language();
|
|
||||||
$langs = get_list_of_languages();
|
|
||||||
if (empty($CFG->loginhttps)) {
|
|
||||||
$wwwroot = $CFG->wwwroot;
|
|
||||||
} else {
|
|
||||||
$wwwroot = str_replace('http:','https:',$CFG->wwwroot);
|
|
||||||
}
|
|
||||||
$langmenu = popup_form ("$wwwroot/login/index.php?lang=", $langs, "chooselang", $currlang, "", "", "", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$loginsite = get_string("loginsite");
|
|
||||||
$casauth = get_auth_plugin('cas');
|
|
||||||
$ldapauth = get_auth_plugin('ldap');
|
|
||||||
|
|
||||||
|
|
||||||
$frm = false;
|
|
||||||
$user = false;
|
|
||||||
if ((!empty($SESSION->wantsurl) and strstr($SESSION->wantsurl,'username=guest')) or $loginguest) {
|
|
||||||
/// Log in as guest automatically (idea from Zbigniew Fiedorowicz)
|
|
||||||
$frm->username = 'guest';
|
|
||||||
$frm->password = 'guest';
|
|
||||||
} else if (!empty($SESSION->wantsurl) && file_exists($CFG->dirroot.'/login/weblinkauth.php')) {
|
|
||||||
// Handles the case of another Moodle site linking into a page on this site
|
|
||||||
include($CFG->dirroot.'/login/weblinkauth.php');
|
|
||||||
if (function_exists(weblink_auth)) {
|
|
||||||
$user = weblink_auth($SESSION->wantsurl);
|
|
||||||
}
|
|
||||||
if ($user) {
|
|
||||||
$frm->username = $user->username;
|
|
||||||
} else {
|
|
||||||
$frm = data_submitted();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$frm = data_submitted();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($frm and (get_moodle_cookie() == '')) { // Login without cookie
|
|
||||||
|
|
||||||
$errormsg = get_string("cookiesnotenabled");
|
|
||||||
|
|
||||||
} else if ($frm) { // Login WITH cookies
|
|
||||||
|
|
||||||
$frm->username = trim(moodle_strtolower($frm->username));
|
|
||||||
|
|
||||||
if (($frm->username == 'guest') and empty($CFG->guestloginbutton)) {
|
|
||||||
$user = false; /// Can't log in as guest if guest button is disabled
|
|
||||||
$frm = false;
|
|
||||||
} else if (!$user) {
|
|
||||||
if ($CFG->auth == "cas" && $frm->username != 'guest') { /// Cas SSO case
|
|
||||||
$user = $casauth->authenticate_user_login($frm->username, $frm->password);
|
|
||||||
}else{
|
|
||||||
$user = authenticate_user_login($frm->username, $frm->password);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
update_login_count();
|
|
||||||
|
|
||||||
if ($user) {
|
|
||||||
if (! $user->confirmed ) { // they never confirmed via email
|
|
||||||
print_header(get_string("mustconfirm"), get_string("mustconfirm") );
|
|
||||||
print_heading(get_string("mustconfirm"));
|
|
||||||
print_simple_box(get_string("emailconfirmsent", "", $user->email), "center");
|
|
||||||
print_footer();
|
|
||||||
die;
|
|
||||||
}
|
|
||||||
|
|
||||||
$USER = $user;
|
|
||||||
if (!empty($USER->description)) {
|
|
||||||
$USER->description = true; // No need to cart all of it around
|
|
||||||
}
|
|
||||||
$USER->loggedin = true;
|
|
||||||
$USER->site = $CFG->wwwroot; // for added security, store the site in the session
|
|
||||||
sesskey(); // for added security, used to check script parameters
|
|
||||||
|
|
||||||
if ($USER->username == "guest") {
|
|
||||||
$USER->lang = $CFG->lang; // Guest language always same as site
|
|
||||||
$USER->firstname = get_string("guestuser"); // Name always in current language
|
|
||||||
$USER->lastname = " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!update_user_login_times()) {
|
|
||||||
error("Wierd error: could not update login records");
|
|
||||||
}
|
|
||||||
|
|
||||||
set_moodle_cookie($USER->username);
|
|
||||||
|
|
||||||
unset($SESSION->lang);
|
|
||||||
$SESSION->justloggedin = true;
|
|
||||||
|
|
||||||
// Restore the calendar filters, if saved
|
|
||||||
if (intval(get_user_preferences('calendar_persistflt', 0))) {
|
|
||||||
include_once($CFG->dirroot.'/calendar/lib.php');
|
|
||||||
calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
|
|
||||||
}
|
|
||||||
|
|
||||||
//Select password change url
|
|
||||||
$userauth = get_auth_plugin($USER->auth);
|
|
||||||
if (method_exists($userauth, 'can_change_password') and $userauth->can_change_password()) {
|
|
||||||
$passwordchangeurl=$CFG->wwwroot.'/login/change_password.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
// check whether the user should be changing password
|
|
||||||
if (get_user_preferences('auth_forcepasswordchange', false)) {
|
|
||||||
if (isset($passwordchangeurl)) {
|
|
||||||
redirect($passwordchangeurl);
|
|
||||||
} else {
|
|
||||||
print_error('auth_cas_broken_password','auth');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
add_to_log(SITEID, "user", "login", "view.php?id=$user->id&course=".SITEID, $user->id, 0, $user->id);
|
|
||||||
|
|
||||||
if (user_not_fully_set_up($USER)) {
|
|
||||||
$urltogo = $CFG->wwwroot.'/user/edit.php?id='.$USER->id.'&course='.SITEID;
|
|
||||||
// We don't delete $SESSION->wantsurl yet, so we get there later
|
|
||||||
|
|
||||||
} else if (isset($SESSION->wantsurl) and (strpos($SESSION->wantsurl, $CFG->wwwroot) === 0)) {
|
|
||||||
$urltogo = $SESSION->wantsurl; /// Because it's an address in this site
|
|
||||||
unset($SESSION->wantsurl);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$urltogo = $CFG->wwwroot.'/'; /// Go to the standard home page
|
|
||||||
unset($SESSION->wantsurl); /// Just in case
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if user password has expired
|
|
||||||
// Currently supported only for ldap-authentication module
|
|
||||||
if ($ldapauth->config->expiration == 1) {
|
|
||||||
$days2expire = $ldapauth->password_expire($USER->username);
|
|
||||||
if (intval($days2expire) > 0 && intval($days2expire) < intval($CFG->{$USER->auth.'_expiration_warning'})) {
|
|
||||||
print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div align=\"right\">$langmenu</div>");
|
|
||||||
notice_yesno(get_string('auth_passwordwillexpire', 'auth', $days2expire), $passwordchangeurl, $urltogo);
|
|
||||||
print_footer();
|
|
||||||
exit;
|
|
||||||
} elseif (intval($days2expire) < 0 ) {
|
|
||||||
print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div align=\"right\">$langmenu</div>");
|
|
||||||
notice_yesno(get_string('auth_passwordisexpired', 'auth'), $passwordchangeurl, $urltogo);
|
|
||||||
print_footer();
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
reset_login_count();
|
|
||||||
|
|
||||||
load_all_capabilities(); /// This is what lets the user do anything on the site :-)
|
|
||||||
|
|
||||||
redirect($urltogo);
|
|
||||||
|
|
||||||
exit;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if ($CFG->auth == "cas" ) { /// CAS error login
|
|
||||||
$errormsg = get_string("invalidcaslogin");
|
|
||||||
phpCAS::logout("$CFG->wwwroot/auth/cas/forbidden.php");
|
|
||||||
}else{
|
|
||||||
$errormsg = get_string("invalidlogin");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$user = $casauth->automatic_authenticate($user);
|
|
||||||
if ($user) {
|
|
||||||
if (! $user->confirmed ) { // they never confirmed via email
|
|
||||||
print_header(get_string("mustconfirm"), get_string("mustconfirm") );
|
|
||||||
print_heading(get_string("mustconfirm"));
|
|
||||||
print_simple_box(get_string("emailconfirmsent", "", $user->email), "center");
|
|
||||||
print_footer();
|
|
||||||
die;
|
|
||||||
}
|
|
||||||
|
|
||||||
$USER = $user;
|
|
||||||
if (!empty($USER->description)) {
|
|
||||||
$USER->description = true; // No need to cart all of it around
|
|
||||||
}
|
|
||||||
$USER->loggedin = true;
|
|
||||||
$USER->site = $CFG->wwwroot; // for added security, store the site in the session
|
|
||||||
sesskey(); // for added security, used to check script parameters
|
|
||||||
|
|
||||||
if ($USER->username == "guest") {
|
|
||||||
$USER->lang = $CFG->lang; // Guest language always same as site
|
|
||||||
$USER->firstname = get_string("guestuser"); // Name always in current language
|
|
||||||
$USER->lastname = " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!update_user_login_times()) {
|
|
||||||
error("Wierd error: could not update login records");
|
|
||||||
}
|
|
||||||
|
|
||||||
set_moodle_cookie($USER->username);
|
|
||||||
|
|
||||||
unset($SESSION->lang);
|
|
||||||
$SESSION->justloggedin = true;
|
|
||||||
|
|
||||||
// Restore the calendar filters, if saved
|
|
||||||
if (intval(get_user_preferences('calendar_persistflt', 0))) {
|
|
||||||
include_once($CFG->dirroot.'/calendar/lib.php');
|
|
||||||
calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
|
|
||||||
}
|
|
||||||
|
|
||||||
//Select password change url
|
|
||||||
$userauth = get_auth_plugin($USER->auth);
|
|
||||||
if (method_exists($userauth, 'can_change_password') and $userauth->can_change_password()) {
|
|
||||||
$passwordchangeurl=$CFG->wwwroot.'/login/change_password.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
// check whether the user should be changing password
|
|
||||||
if (get_user_preferences('auth_forcepasswordchange', false)) {
|
|
||||||
if (isset($passwordchangeurl)) {
|
|
||||||
redirect($passwordchangeurl);
|
|
||||||
} else {
|
|
||||||
print_error('auth_cas_broken_password','auth');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
add_to_log(SITEID, "user", "login", "view.php?id=$user->id&course=".SITEID, $user->id, 0, $user->id);
|
|
||||||
|
|
||||||
if (user_not_fully_set_up($USER)) {
|
|
||||||
$urltogo = $CFG->wwwroot.'/user/edit.php?id='.$USER->id.'&course='.SITEID;
|
|
||||||
// We don't delete $SESSION->wantsurl yet, so we get there later
|
|
||||||
|
|
||||||
} else if (isset($SESSION->wantsurl) and (strpos($SESSION->wantsurl, $CFG->wwwroot) === 0)) {
|
|
||||||
$urltogo = $SESSION->wantsurl; /// Because it's an address in this site
|
|
||||||
unset($SESSION->wantsurl);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$urltogo = $CFG->wwwroot.'/'; /// Go to the standard home page
|
|
||||||
unset($SESSION->wantsurl); /// Just in case
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if user password has expired
|
|
||||||
// Currently supported only for ldap-authentication module
|
|
||||||
if ($ldapauth->config->expiration == 1) {
|
|
||||||
$days2expire = $ldapauth->password_expire($USER->username);
|
|
||||||
if (intval($days2expire) > 0 && intval($days2expire) < intval($CFG->{$USER->auth.'_expiration_warning'})) {
|
|
||||||
print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div class=\"langmenu\">$langmenu</div>");
|
|
||||||
notice_yesno(get_string('auth_passwordwillexpire', 'auth', $days2expire), $passwordchangeurl, $urltogo);
|
|
||||||
print_footer();
|
|
||||||
exit;
|
|
||||||
} elseif (intval($days2expire) < 0 ) {
|
|
||||||
print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div class=\"langmenu\">$langmenu</div>");
|
|
||||||
notice_yesno(get_string('auth_passwordisexpired', 'auth'), $passwordchangeurl, $urltogo);
|
|
||||||
print_footer();
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
reset_login_count();
|
|
||||||
|
|
||||||
load_all_capabilities(); /// This is what lets the user do anything on the site :-)
|
|
||||||
|
|
||||||
redirect($urltogo);
|
|
||||||
|
|
||||||
exit;
|
|
||||||
} else {
|
|
||||||
if (!$CFG->guestloginbutton) {
|
|
||||||
$errormsg = get_string("invalidcaslogin");
|
|
||||||
phpCAS::logout("$CFG->wwwroot/auth/cas/forbidden.php");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($errormsg)) {
|
|
||||||
$errormsg = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($SESSION->wantsurl)) {
|
|
||||||
$SESSION->wantsurl = array_key_exists('HTTP_REFERER',$_SERVER) ? $_SERVER["HTTP_REFERER"] : $CFG->wwwroot.'/';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (get_moodle_cookie() == '') {
|
|
||||||
set_moodle_cookie('nobody'); // To help search for cookies
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($frm->username)) {
|
|
||||||
$frm->username = get_moodle_cookie() === 'nobody' ? '' : get_moodle_cookie();
|
|
||||||
$frm->password = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($frm->username)) {
|
|
||||||
$focus = "login.password";
|
|
||||||
} else {
|
|
||||||
$focus = "login.username";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($CFG->auth == "email" or $CFG->auth == "none" or chop($CFG->auth_instructions) <> "" ) {
|
|
||||||
$show_instructions = true;
|
|
||||||
} else {
|
|
||||||
$show_instructions = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
print_header("$site->fullname: $loginsite", $site->fullname, $loginsite, $focus, "", true, "<div align=\"right\">$langmenu</div>");
|
|
||||||
include($CFG->dirroot.'/auth/cas/index_form.html');
|
|
||||||
print_footer();
|
|
||||||
|
|
||||||
exit;
|
|
||||||
|
|
||||||
// No footer on this page
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,15 +0,0 @@
|
||||||
<?php
|
|
||||||
// $Id$
|
|
||||||
// logout the user from CAS server (destroy the ticket)
|
|
||||||
defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');
|
|
||||||
|
|
||||||
global $CFG;
|
|
||||||
if ($CFG->cas_logout) {
|
|
||||||
require_once($CFG->dirroot.'/config.php');
|
|
||||||
include_once($CFG->dirroot.'/lib/cas/CAS.php');
|
|
||||||
phpCAS::client($CFG->cas_version,$CFG->cas_hostname,(int)$CFG->cas_port,$CFG->cas_baseuri);
|
|
||||||
$backurl = $CFG->wwwroot;
|
|
||||||
phpCAS::logout($backurl);
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
|
@ -30,6 +30,15 @@ $string['auth_nologindescription'] = 'Auxiliary plugin that prevents user to log
|
||||||
$string['auth_nologintitle'] = 'No login';
|
$string['auth_nologintitle'] = 'No login';
|
||||||
|
|
||||||
// CAS plugin
|
// CAS plugin
|
||||||
|
$string['auth_cas_proxycas_key'] = "Proxy mode";
|
||||||
|
$string['auth_cas_logoutcas_key'] = "Logout CAS";
|
||||||
|
$string['auth_cas_multiauth_key'] = "Multi-authentication";
|
||||||
|
$string['auth_cas_proxycas'] = "Turn this to 'yes'' if you use CASin proxy-mode";
|
||||||
|
$string['auth_cas_logoutcas'] = "Turn this to 'yes'' if tou want to logout from CAS when you deconnect from Moodle";
|
||||||
|
$string['auth_cas_multiauth'] = "Turn this to 'yes'' if you want to have multi-authentication (CAS + other authentication)";
|
||||||
|
$string['accesCAS'] = "CAS users";
|
||||||
|
$string['accesNOCAS'] = "other users";
|
||||||
|
$string['CASform'] = "Authentication choice";
|
||||||
$string['auth_cas_logincas'] = 'Secure connection access';
|
$string['auth_cas_logincas'] = 'Secure connection access';
|
||||||
$string['auth_cas_invalidcaslogin'] = 'Sorry, your login has failed - you could not be authorised';
|
$string['auth_cas_invalidcaslogin'] = 'Sorry, your login has failed - you could not be authorised';
|
||||||
$string['auth_cas_server_settings'] = 'CAS server configuration';
|
$string['auth_cas_server_settings'] = 'CAS server configuration';
|
||||||
|
|
1182
lib/cas/CAS.php
1182
lib/cas/CAS.php
File diff suppressed because it is too large
Load diff
|
@ -1,190 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file CAS/PGTStorage/pgt-db.php
|
|
||||||
* Basic class for PGT database storage
|
|
||||||
*/
|
|
||||||
|
|
||||||
// include phpDB library (the test was introduced in release 0.4.8 for
|
|
||||||
// the integration into Tikiwiki).
|
|
||||||
if (!class_exists('DB')) {
|
|
||||||
include_once('DB.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class PGTStorageDB
|
|
||||||
* The PGTStorageDB class is a class for PGT database storage. An instance of
|
|
||||||
* this class is returned by CASClient::SetPGTStorageDB().
|
|
||||||
*
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
*
|
|
||||||
* @ingroup internalPGTStorageDB
|
|
||||||
*/
|
|
||||||
|
|
||||||
class PGTStorageDB extends PGTStorage
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @addtogroup internalPGTStorageDB
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a string representing a PEAR DB URL to connect to the database. Written by
|
|
||||||
* PGTStorageDB::PGTStorageDB(), read by getURL().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_url='';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the PEAR DB URL to use to connect to the database.
|
|
||||||
*
|
|
||||||
* @return a PEAR DB URL
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getURL()
|
|
||||||
{
|
|
||||||
return $this->_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The handle of the connection to the database where PGT's are stored. Written by
|
|
||||||
* PGTStorageDB::init(), read by getLink().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_link = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the handle of the connection to the database where PGT's are
|
|
||||||
* stored.
|
|
||||||
*
|
|
||||||
* @return a handle of connection.
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getLink()
|
|
||||||
{
|
|
||||||
return $this->_link;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The name of the table where PGT's are stored. Written by
|
|
||||||
* PGTStorageDB::PGTStorageDB(), read by getTable().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_table = '';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the name of the table where PGT's are stored.
|
|
||||||
*
|
|
||||||
* @return the name of a table.
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getTable()
|
|
||||||
{
|
|
||||||
return $this->_table;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// DEBUGGING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving the type of storage
|
|
||||||
* used by the object (used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @return an informational string.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageType()
|
|
||||||
{
|
|
||||||
return "database";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving informations on the
|
|
||||||
* parameters of the storage.(used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageInfo()
|
|
||||||
{
|
|
||||||
return 'url=`'.$this->getURL().'\', table=`'.$this->getTable().'\'';
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// CONSTRUCTOR
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The class constructor, called by CASClient::SetPGTStorageDB().
|
|
||||||
*
|
|
||||||
* @param $cas_parent the CASClient instance that creates the object.
|
|
||||||
* @param $user the user to access the data with
|
|
||||||
* @param $password the user's password
|
|
||||||
* @param $database_type the type of the database hosting the data
|
|
||||||
* @param $hostname the server hosting the database
|
|
||||||
* @param $port the port the server is listening on
|
|
||||||
* @param $database the name of the database
|
|
||||||
* @param $table the name of the table storing the data
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function PGTStorageDB($cas_parent,$user,$password,$database_type,$hostname,$port,$database,$table)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
|
|
||||||
// call the ancestor's constructor
|
|
||||||
$this->PGTStorage($cas_parent);
|
|
||||||
|
|
||||||
if ( empty($database_type) ) $database_type = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE;
|
|
||||||
if ( empty($hostname) ) $hostname = CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME;
|
|
||||||
if ( $port==0 ) $port = CAS_PGT_STORAGE_DB_DEFAULT_PORT;
|
|
||||||
if ( empty($database) ) $database = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE;
|
|
||||||
if ( empty($table) ) $table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE;
|
|
||||||
|
|
||||||
// build and store the PEAR DB URL
|
|
||||||
$this->_url = $database_type.':'.'//'.$user.':'.$password.'@'.$server.':'.$port.'/'.$database;
|
|
||||||
|
|
||||||
// XXX should use setURL and setTable
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// INITIALIZATION
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is used to initialize the storage. Halts on error.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function init()
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
// if the storage has already been initialized, return immediatly
|
|
||||||
if ( $this->isInitialized() )
|
|
||||||
return;
|
|
||||||
// call the ancestor's method (mark as initialized)
|
|
||||||
parent::init();
|
|
||||||
|
|
||||||
// try to connect to the database
|
|
||||||
$this->_link = DB::connect($this->getURL());
|
|
||||||
if ( DB::isError($this->_link) ) {
|
|
||||||
phpCAS::error('could not connect to database ('.DB::errorMessage($this->_link).')');
|
|
||||||
}
|
|
||||||
var_dump($this->_link);
|
|
||||||
phpCAS::traceBEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,237 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file CAS/PGTStorage/pgt-file.php
|
|
||||||
* Basic class for PGT file storage
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class PGTStorageFile
|
|
||||||
* The PGTStorageFile class is a class for PGT file storage. An instance of
|
|
||||||
* this class is returned by CASClient::SetPGTStorageFile().
|
|
||||||
*
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
*
|
|
||||||
* @ingroup internalPGTStorageFile
|
|
||||||
*/
|
|
||||||
|
|
||||||
class PGTStorageFile extends PGTStorage
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @addtogroup internalPGTStorageFile
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a string telling where PGT's should be stored on the filesystem. Written by
|
|
||||||
* PGTStorageFile::PGTStorageFile(), read by getPath().
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_path;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the name of the directory where PGT's should be stored
|
|
||||||
* on the filesystem.
|
|
||||||
*
|
|
||||||
* @return the name of a directory (with leading and trailing '/')
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getPath()
|
|
||||||
{
|
|
||||||
return $this->_path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a string telling the format to use to store PGT's (plain or xml). Written by
|
|
||||||
* PGTStorageFile::PGTStorageFile(), read by getFormat().
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_format;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the format to use when storing PGT's on the filesystem.
|
|
||||||
*
|
|
||||||
* @return a string corresponding to the format used (plain or xml).
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getFormat()
|
|
||||||
{
|
|
||||||
return $this->_format;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// DEBUGGING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving the type of storage
|
|
||||||
* used by the object (used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @return an informational string.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageType()
|
|
||||||
{
|
|
||||||
return "file";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving informations on the
|
|
||||||
* parameters of the storage.(used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @return an informational string.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageInfo()
|
|
||||||
{
|
|
||||||
return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// CONSTRUCTOR
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The class constructor, called by CASClient::SetPGTStorageFile().
|
|
||||||
*
|
|
||||||
* @param $cas_parent the CASClient instance that creates the object.
|
|
||||||
* @param $format the format used to store the PGT's (`plain' and `xml' allowed).
|
|
||||||
* @param $path the path where the PGT's should be stored
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function PGTStorageFile($cas_parent,$format,$path)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
// call the ancestor's constructor
|
|
||||||
$this->PGTStorage($cas_parent);
|
|
||||||
|
|
||||||
if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
|
|
||||||
if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
|
|
||||||
|
|
||||||
// check that the path is an absolute path
|
|
||||||
if ( $path[0] != '/' ) {
|
|
||||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
|
||||||
}
|
|
||||||
|
|
||||||
// store the path (with a leading and trailing '/')
|
|
||||||
$path = preg_replace('|[/]*$|','/',$path);
|
|
||||||
$path = preg_replace('|^[/]*|','/',$path);
|
|
||||||
$this->_path = $path;
|
|
||||||
|
|
||||||
// check the format and store it
|
|
||||||
switch ($format) {
|
|
||||||
case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
|
|
||||||
case CAS_PGT_STORAGE_FILE_FORMAT_XML:
|
|
||||||
$this->_format = $format;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
|
|
||||||
}
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// INITIALIZATION
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is used to initialize the storage. Halts on error.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function init()
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
// if the storage has already been initialized, return immediatly
|
|
||||||
if ( $this->isInitialized() )
|
|
||||||
return;
|
|
||||||
// call the ancestor's method (mark as initialized)
|
|
||||||
parent::init();
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// PGT I/O
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the filename corresponding to a PGT Iou.
|
|
||||||
*
|
|
||||||
* @param $pgt_iou the PGT iou.
|
|
||||||
*
|
|
||||||
* @return a filename
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getPGTIouFilename($pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
return $this->getPath().$pgt_iou.'.'.$this->getFormat();
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
|
|
||||||
* warning on error.
|
|
||||||
*
|
|
||||||
* @param $pgt the PGT
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function write($pgt,$pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
|
||||||
if ( $f=fopen($fname,"w") ) {
|
|
||||||
if ( fputs($f,$pgt) === FALSE ) {
|
|
||||||
phpCAS::error('could not write PGT to `'.$fname.'\'');
|
|
||||||
}
|
|
||||||
fclose($f);
|
|
||||||
} else {
|
|
||||||
phpCAS::error('could not open `'.$fname.'\'');
|
|
||||||
}
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method reads a PGT corresponding to a PGT Iou and deletes the
|
|
||||||
* corresponding file.
|
|
||||||
*
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @return the corresponding PGT, or FALSE on error
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function read($pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
$pgt = FALSE;
|
|
||||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
|
||||||
if ( !($f=fopen($fname,"r")) ) {
|
|
||||||
phpCAS::trace('could not open `'.$fname.'\'');
|
|
||||||
} else {
|
|
||||||
if ( ($pgt=fgets($f)) === FALSE ) {
|
|
||||||
phpCAS::trace('could not read PGT from `'.$fname.'\'');
|
|
||||||
}
|
|
||||||
fclose($f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete the PGT file
|
|
||||||
@unlink($fname);
|
|
||||||
|
|
||||||
phpCAS::traceEnd($pgt);
|
|
||||||
return $pgt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,188 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file CAS/PGTStorage/pgt-main.php
|
|
||||||
* Basic class for PGT storage
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class PGTStorage
|
|
||||||
* The PGTStorage class is a generic class for PGT storage. This class should
|
|
||||||
* not be instanciated itself but inherited by specific PGT storage classes.
|
|
||||||
*
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
*
|
|
||||||
* @ingroup internalPGTStorage
|
|
||||||
*/
|
|
||||||
|
|
||||||
class PGTStorage
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @addtogroup internalPGTStorage
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// CONSTRUCTOR
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The constructor of the class, should be called only by inherited classes.
|
|
||||||
*
|
|
||||||
* @param $cas_parent the CASclient instance that creates the current object.
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function PGTStorage($cas_parent)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
if ( !$cas_parent->isProxy() ) {
|
|
||||||
phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy');
|
|
||||||
}
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// DEBUGGING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method returns an informational string giving the type of storage
|
|
||||||
* used by the object (used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageType()
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method returns an informational string giving informations on the
|
|
||||||
* parameters of the storage.(used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageInfo()
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// ERROR HANDLING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* string used to store an error message. Written by PGTStorage::setErrorMessage(),
|
|
||||||
* read by PGTStorage::getErrorMessage().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
* @deprecated not used.
|
|
||||||
*/
|
|
||||||
var $_error_message=FALSE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method sets en error message, which can be read later by
|
|
||||||
* PGTStorage::getErrorMessage().
|
|
||||||
*
|
|
||||||
* @param $error_message an error message
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
* @deprecated not used.
|
|
||||||
*/
|
|
||||||
function setErrorMessage($error_message)
|
|
||||||
{
|
|
||||||
$this->_error_message = $error_message;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an error message set by PGTStorage::setErrorMessage().
|
|
||||||
*
|
|
||||||
* @return an error message when set by PGTStorage::setErrorMessage(), FALSE
|
|
||||||
* otherwise.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
* @deprecated not used.
|
|
||||||
*/
|
|
||||||
function getErrorMessage()
|
|
||||||
{
|
|
||||||
return $this->_error_message;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// INITIALIZATION
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a boolean telling if the storage has already been initialized. Written by
|
|
||||||
* PGTStorage::init(), read by PGTStorage::isInitialized().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_initialized = FALSE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method tells if the storage has already been intialized.
|
|
||||||
*
|
|
||||||
* @return a boolean
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function isInitialized()
|
|
||||||
{
|
|
||||||
return $this->_initialized;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method initializes the object.
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function init()
|
|
||||||
{
|
|
||||||
$this->_initialized = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// PGT I/O
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method stores a PGT and its corresponding PGT Iuo.
|
|
||||||
* @note Should never be called.
|
|
||||||
*
|
|
||||||
* @param $pgt the PGT
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function write($pgt,$pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
|
|
||||||
* the corresponding storage entry.
|
|
||||||
* @note Should never be called.
|
|
||||||
*
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function read($pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// include specific PGT storage classes
|
|
||||||
include_once(dirname(__FILE__).'/pgt-file.php');
|
|
||||||
include_once(dirname(__FILE__).'/pgt-db.php');
|
|
||||||
|
|
||||||
?>
|
|
1950
lib/cas/client.php
1950
lib/cas/client.php
File diff suppressed because it is too large
Load diff
|
@ -1,277 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* @file domxml-php4-php5.php
|
|
||||||
* Require PHP5, uses built-in DOM extension.
|
|
||||||
* To be used in PHP4 scripts using DOMXML extension.
|
|
||||||
* Allows PHP4/DOMXML scripts to run on PHP5/DOM.
|
|
||||||
* (Requires PHP5/XSL extension for domxml_xslt functions)
|
|
||||||
*
|
|
||||||
* Typical use:
|
|
||||||
* <pre>
|
|
||||||
* {
|
|
||||||
* if (version_compare(PHP_VERSION,'5','>='))
|
|
||||||
* require_once('domxml-php4-to-php5.php');
|
|
||||||
* }
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* Version 1.5.5, 2005-01-18, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
|
|
||||||
*
|
|
||||||
* ------------------------------------------------------------------<br>
|
|
||||||
* Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/
|
|
||||||
*
|
|
||||||
* Copyright 2004, Licence: Creative Commons "Attribution-ShareAlike 2.0 France" BY-SA (FR),
|
|
||||||
* http://creativecommons.org/licenses/by-sa/2.0/fr/
|
|
||||||
* http://alexandre.alapetite.net/divers/apropos/#by-sa
|
|
||||||
* - Attribution. You must give the original author credit
|
|
||||||
* - Share Alike. If you alter, transform, or build upon this work,
|
|
||||||
* you may distribute the resulting work only under a license identical to this one
|
|
||||||
* - The French law is authoritative
|
|
||||||
* - Any of these conditions can be waived if you get permission from Alexandre Alapetite
|
|
||||||
* - Please send to Alexandre Alapetite the modifications you make,
|
|
||||||
* in order to improve this file for the benefit of everybody
|
|
||||||
*
|
|
||||||
* If you want to distribute this code, please do it as a link to:
|
|
||||||
* http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
|
|
||||||
*/
|
|
||||||
|
|
||||||
function domxml_new_doc($version) {return new php4DOMDocument('');}
|
|
||||||
function domxml_open_file($filename) {return new php4DOMDocument($filename);}
|
|
||||||
function domxml_open_mem($str)
|
|
||||||
{
|
|
||||||
$dom=new php4DOMDocument('');
|
|
||||||
$dom->myDOMNode->loadXML($str);
|
|
||||||
return $dom;
|
|
||||||
}
|
|
||||||
function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->query($eval_str,$contextnode);}
|
|
||||||
function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);}
|
|
||||||
|
|
||||||
class php4DOMAttr extends php4DOMNode
|
|
||||||
{
|
|
||||||
function php4DOMAttr($aDOMAttr) {$this->myDOMNode=$aDOMAttr;}
|
|
||||||
function Name() {return $this->myDOMNode->name;}
|
|
||||||
function Specified() {return $this->myDOMNode->specified;}
|
|
||||||
function Value() {return $this->myDOMNode->value;}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMDocument extends php4DOMNode
|
|
||||||
{
|
|
||||||
function php4DOMDocument($filename='')
|
|
||||||
{
|
|
||||||
$this->myDOMNode=new DOMDocument();
|
|
||||||
if ($filename!='') $this->myDOMNode->load($filename);
|
|
||||||
}
|
|
||||||
function create_attribute($name,$value)
|
|
||||||
{
|
|
||||||
$myAttr=$this->myDOMNode->createAttribute($name);
|
|
||||||
$myAttr->value=$value;
|
|
||||||
return new php4DOMAttr($myAttr,$this);
|
|
||||||
}
|
|
||||||
function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);}
|
|
||||||
function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);}
|
|
||||||
function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);}
|
|
||||||
function create_text_node($content) {return new php4DOMNode($this->myDOMNode->createTextNode($content),$this);}
|
|
||||||
function document_element() {return new php4DOMElement($this->myDOMNode->documentElement,$this);}
|
|
||||||
function dump_file($filename,$compressionmode=false,$format=false) {return $this->myDOMNode->save($filename);}
|
|
||||||
function dump_mem($format=false,$encoding=false) {return $this->myDOMNode->saveXML();}
|
|
||||||
function get_element_by_id($id) {return new php4DOMElement($this->myDOMNode->getElementById($id),$this);}
|
|
||||||
function get_elements_by_tagname($name)
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i))
|
|
||||||
{
|
|
||||||
$nodeSet[]=new php4DOMElement($node,$this);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function html_dump_mem() {return $this->myDOMNode->saveHTML();}
|
|
||||||
function root() {return new php4DOMElement($this->myDOMNode->documentElement,$this);}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMElement extends php4DOMNode
|
|
||||||
{
|
|
||||||
function get_attribute($name) {return $this->myDOMNode->getAttribute($name);}
|
|
||||||
function get_elements_by_tagname($name)
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i))
|
|
||||||
{
|
|
||||||
$nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);}
|
|
||||||
function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);}
|
|
||||||
function set_attribute($name,$value) {return $this->myDOMNode->setAttribute($name,$value);}
|
|
||||||
function tagname() {return $this->myDOMNode->tagName;}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMNode
|
|
||||||
{
|
|
||||||
var $myDOMNode;
|
|
||||||
var $myOwnerDocument;
|
|
||||||
function php4DOMNode($aDomNode,$aOwnerDocument)
|
|
||||||
{
|
|
||||||
$this->myDOMNode=$aDomNode;
|
|
||||||
$this->myOwnerDocument=$aOwnerDocument;
|
|
||||||
}
|
|
||||||
function __get($name)
|
|
||||||
{
|
|
||||||
if ($name=='type') return $this->myDOMNode->nodeType;
|
|
||||||
elseif ($name=='tagname') return $this->myDOMNode->tagName;
|
|
||||||
elseif ($name=='content') return $this->myDOMNode->textContent;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$myErrors=debug_backtrace();
|
|
||||||
trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function append_child($newnode) {return new php4DOMElement($this->myDOMNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function append_sibling($newnode) {return new php4DOMElement($this->myDOMNode->parentNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function attributes()
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->attributes;
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i))
|
|
||||||
{
|
|
||||||
$nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function child_nodes()
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->childNodes;
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i))
|
|
||||||
{
|
|
||||||
$nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function children() {return $this->child_nodes();}
|
|
||||||
function clone_node($deep=false) {return new php4DOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);}
|
|
||||||
function first_child() {return new php4DOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);}
|
|
||||||
function get_content() {return $this->myDOMNode->textContent;}
|
|
||||||
function has_attributes() {return $this->myDOMNode->hasAttributes();}
|
|
||||||
function has_child_nodes() {return $this->myDOMNode->hasChildNodes();}
|
|
||||||
function insert_before($newnode,$refnode) {return new php4DOMElement($this->myDOMNode->insertBefore($newnode->myDOMNode,$refnode->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function is_blank_node()
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->childNodes;
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i))
|
|
||||||
{
|
|
||||||
if (($node->nodeType==XML_ELEMENT_NODE)||
|
|
||||||
(($node->nodeType==XML_TEXT_NODE)&&!ereg('^([[:cntrl:]]|[[:space:]])*$',$node->nodeValue)))
|
|
||||||
return false;
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
function last_child() {return new php4DOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);}
|
|
||||||
function new_child($name,$content)
|
|
||||||
{
|
|
||||||
$mySubNode=$this->myDOMNode->ownerDocument->createElement($name);
|
|
||||||
$mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($content));
|
|
||||||
$this->myDOMNode->appendChild($mySubNode);
|
|
||||||
return new php4DOMElement($mySubNode,$this->myOwnerDocument);
|
|
||||||
}
|
|
||||||
function next_sibling() {return new php4DOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);}
|
|
||||||
function node_name() {return $this->myDOMNode->localName;}
|
|
||||||
function node_type() {return $this->myDOMNode->nodeType;}
|
|
||||||
function node_value() {return $this->myDOMNode->nodeValue;}
|
|
||||||
function owner_document() {return $this->myOwnerDocument;}
|
|
||||||
function parent_node() {return new php4DOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);}
|
|
||||||
function prefix() {return $this->myDOMNode->prefix;}
|
|
||||||
function previous_sibling() {return new php4DOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);}
|
|
||||||
function remove_child($oldchild) {return new php4DOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function replace_child($oldnode,$newnode) {return new php4DOMElement($this->myDOMNode->replaceChild($oldnode->myDOMNode,$newnode->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function set_content($text)
|
|
||||||
{
|
|
||||||
if (($this->myDOMNode->hasChildNodes())&&($this->myDOMNode->firstChild->nodeType==XML_TEXT_NODE))
|
|
||||||
$this->myDOMNode->removeChild($this->myDOMNode->firstChild);
|
|
||||||
return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($text));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMNodelist
|
|
||||||
{
|
|
||||||
var $myDOMNodelist;
|
|
||||||
var $nodeset;
|
|
||||||
function php4DOMNodelist($aDOMNodelist,$aOwnerDocument)
|
|
||||||
{
|
|
||||||
$this->myDOMNodelist=$aDOMNodelist;
|
|
||||||
$this->nodeset=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($this->myDOMNodelist))
|
|
||||||
while ($node=$this->myDOMNodelist->item($i))
|
|
||||||
{
|
|
||||||
$this->nodeset[]=new php4DOMElement($node,$aOwnerDocument);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMXPath
|
|
||||||
{
|
|
||||||
var $myDOMXPath;
|
|
||||||
var $myOwnerDocument;
|
|
||||||
function php4DOMXPath($dom_document)
|
|
||||||
{
|
|
||||||
$this->myOwnerDocument=$dom_document;
|
|
||||||
$this->myDOMXPath=new DOMXPath($dom_document->myDOMNode);
|
|
||||||
}
|
|
||||||
function query($eval_str,$contextnode)
|
|
||||||
{
|
|
||||||
if (isset($contextnode)) return new php4DOMNodelist($this->myDOMXPath->query($eval_str,$contextnode->myDOMNode),$this->myOwnerDocument);
|
|
||||||
else return new php4DOMNodelist($this->myDOMXPath->query($eval_str),$this->myOwnerDocument);
|
|
||||||
}
|
|
||||||
function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extension_loaded('xsl'))
|
|
||||||
{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/
|
|
||||||
function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}
|
|
||||||
function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}
|
|
||||||
function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}
|
|
||||||
class php4DomXsltStylesheet
|
|
||||||
{
|
|
||||||
var $myxsltProcessor;
|
|
||||||
function php4DomXsltStylesheet($dom_document)
|
|
||||||
{
|
|
||||||
$this->myxsltProcessor=new xsltProcessor();
|
|
||||||
$this->myxsltProcessor->importStyleSheet($dom_document);
|
|
||||||
}
|
|
||||||
function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false)
|
|
||||||
{
|
|
||||||
foreach ($xslt_parameters as $param=>$value)
|
|
||||||
$this->myxsltProcessor->setParameter('',$param,$value);
|
|
||||||
$myphp4DOMDocument=new php4DOMDocument();
|
|
||||||
$myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode);
|
|
||||||
return $myphp4DOMDocument;
|
|
||||||
}
|
|
||||||
function result_dump_file($dom_document,$filename)
|
|
||||||
{
|
|
||||||
$html=$dom_document->myDOMNode->saveHTML();
|
|
||||||
file_put_contents($filename,$html);
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/english.php
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'using server',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'CAS Authentication wanted!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'CAS logout wanted!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'CAS Authentication failed!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'The service `<b>%s</b>\' is not available (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/english.php
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'utilisant le serveur',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'Authentication CAS nécessaire !',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'Déconnexion demandée !',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'Vous auriez du etre redirigé(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'Authentification CAS infructueuse !',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>Vous n\'avez pas été authentifié(e).</p><p>Vous pouvez soumettre votre requete à nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le problème persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)'
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/greek.php
|
|
||||||
* @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> '÷ñçóéìïðïéåßôáé ï åîõðçñåôçôÞò',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'Áðáéôåßôáé ç ôáõôïðïßçóç CAS!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'Áðáéôåßôáé ç áðïóýíäåóç áðü CAS!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'Èá Ýðñåðå íá åß÷áôå áíáêáôåõèõíèåß óôïí åîõðçñåôçôÞ CAS. ÊÜíôå êëßê <a href="%s">åäþ</a> ãéá íá óõíå÷ßóåôå.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'Ç ôáõôïðïßçóç CAS áðÝôõ÷å!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>Äåí ôáõôïðïéçèÞêáôå.</p><p>Ìðïñåßôå íá îáíáðñïóðáèÞóåôå, êÜíïíôáò êëßê <a href="%s">åäþ</a>.</p><p>Åáí ôï ðñüâëçìá åðéìåßíåé, åëÜôå óå åðáöÞ ìå ôïí <a href="mailto:%s">äéá÷åéñéóôÞ</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'Ç õðçñåóßá `<b>%s</b>\' äåí åßíáé äéáèÝóéìç (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,24 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/languages.php
|
|
||||||
* Internationalization constants
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
//@{
|
|
||||||
/**
|
|
||||||
* a phpCAS string index
|
|
||||||
*/
|
|
||||||
define("CAS_STR_USING_SERVER", 1);
|
|
||||||
define("CAS_STR_AUTHENTICATION_WANTED", 2);
|
|
||||||
define("CAS_STR_LOGOUT", 3);
|
|
||||||
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
|
|
||||||
define("CAS_STR_AUTHENTICATION_FAILED", 5);
|
|
||||||
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6);
|
|
||||||
define("CAS_STR_SERVICE_UNAVAILABLE", 7);
|
|
||||||
//@}
|
|
||||||
|
|
||||||
?>
|
|
Loading…
Add table
Add a link
Reference in a new issue