mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-24 02:49:07 +01:00
Compare commits
2 commits
05519c5432
...
961740c855
Author | SHA1 | Date | |
---|---|---|---|
|
961740c855 | ||
|
0c171789d3 |
6 changed files with 177 additions and 77 deletions
|
@ -25,6 +25,7 @@ serveur LDAP.</para>
|
||||||
'[object type 1]',
|
'[object type 1]',
|
||||||
'[object type 2]' => array(
|
'[object type 2]' => array(
|
||||||
'filter' => '[LDAP filter]',
|
'filter' => '[LDAP filter]',
|
||||||
|
'filter_function' => [callable],
|
||||||
'password_attribute' => '[attribute name]',
|
'password_attribute' => '[attribute name]',
|
||||||
'web_access' => [booléen],
|
'web_access' => [booléen],
|
||||||
'api_access' => [booléen],
|
'api_access' => [booléen],
|
||||||
|
@ -170,6 +171,21 @@ serveur LDAP.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>filter_function</term>
|
||||||
|
<listitem>
|
||||||
|
<simpara><emphasis>Callable</emphasis> (au sens PHP) utilisé pour filtrer les utilisateurs
|
||||||
|
trouvés dans l'annuaire à partir des autres paramètres : cette fonction, si elle est définie,
|
||||||
|
sera appelée pour chaque utilisateur trouvé, avec pour unique paramètre, une référence à l'objet
|
||||||
|
LDAP correspondant (<literal>LSldapObject</literal>). Cette méthode devra alors retourner
|
||||||
|
<literal>true</literal> ou <literal>false</literal> pour respectivement autoriser ou interdire
|
||||||
|
l'accès à l'application à l'utilisateur.</simpara>
|
||||||
|
<note><simpara>Si un utilisateur est exclus par cette méthode et qu'aucun autre utilisateur
|
||||||
|
correspondant n'a été trouvé dans l'annuaire, une page d'erreur sera affichée et indiquera que
|
||||||
|
l'accès à l'application est refusée.</simpara></note>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>password_attribute</term>
|
<term>password_attribute</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
|
@ -132,6 +132,7 @@ class LSauth extends LSlog_staticLoggerClass {
|
||||||
|
|
||||||
$objTypes[$objType] = array(
|
$objTypes[$objType] = array(
|
||||||
'filter' => self :: getConfig("LSobjects.$objType.filter", null, 'string'),
|
'filter' => self :: getConfig("LSobjects.$objType.filter", null, 'string'),
|
||||||
|
'filter_function' => self :: getConfig("LSobjects.$objType.filter_function", null),
|
||||||
'password_attribute' => self :: getConfig("LSobjects.$objType.password_attribute", 'userPassword', 'string'),
|
'password_attribute' => self :: getConfig("LSobjects.$objType.password_attribute", 'userPassword', 'string'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -169,11 +170,19 @@ class LSauth extends LSlog_staticLoggerClass {
|
||||||
*/
|
*/
|
||||||
public static function username2LSobjects($username) {
|
public static function username2LSobjects($username) {
|
||||||
$user_objects = array();
|
$user_objects = array();
|
||||||
|
$excluded_objects = false;
|
||||||
foreach (self :: getAuthObjectTypes() as $objType => $objParams) {
|
foreach (self :: getAuthObjectTypes() as $objType => $objParams) {
|
||||||
if (!LSsession :: loadLSobject($objType)) {
|
if (!LSsession :: loadLSobject($objType)) {
|
||||||
LSerror :: addErrorCode('LSauth_03', $objType);
|
LSerror :: addErrorCode('LSauth_03', $objType);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (isset($objParams['filter_function']) && !is_callable($objParams['filter_function'])) {
|
||||||
|
LSerror :: addErrorCode(
|
||||||
|
'LSauth_09',
|
||||||
|
['objtype' => $objType, 'function' => format_callable($objParams['filter_function'])]
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$authobject = new $objType();
|
$authobject = new $objType();
|
||||||
$result = $authobject -> searchObject(
|
$result = $authobject -> searchObject(
|
||||||
$username,
|
$username,
|
||||||
|
@ -181,12 +190,28 @@ class LSauth extends LSlog_staticLoggerClass {
|
||||||
$objParams['filter'],
|
$objParams['filter'],
|
||||||
array('withoutCache' => true, 'onlyAccessible' => false)
|
array('withoutCache' => true, 'onlyAccessible' => false)
|
||||||
);
|
);
|
||||||
for($i=0; $i<count($result); $i++)
|
for($i=0; $i<count($result); $i++) {
|
||||||
|
if (
|
||||||
|
isset($objParams['filter_function'])
|
||||||
|
&& !call_user_func_array($objParams['filter_function'], [$result[$i]])
|
||||||
|
) {
|
||||||
|
self :: log_debug(
|
||||||
|
sprintf(
|
||||||
|
'username2LSobjects(%s): user %s filtered out by filter function %s',
|
||||||
|
$username, $result[$i]->getDn(), format_callable($objParams['filter_function'])
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$excluded_objects = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$user_objects[$result[$i] -> getDn()] = $result[$i];
|
$user_objects[$result[$i] -> getDn()] = $result[$i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$nbresult = count($user_objects);
|
$nbresult = count($user_objects);
|
||||||
if ($nbresult == 0) {
|
if ($nbresult == 0) {
|
||||||
|
if ($excluded_objects)
|
||||||
|
self :: accessDenied();
|
||||||
// incorrect login
|
// incorrect login
|
||||||
self :: log_debug('Invalid username');
|
self :: log_debug('Invalid username');
|
||||||
LSerror :: addErrorCode('LSauth_01');
|
LSerror :: addErrorCode('LSauth_01');
|
||||||
|
@ -306,6 +331,29 @@ class LSauth extends LSlog_staticLoggerClass {
|
||||||
return self :: $params['displayLoginForm'];
|
return self :: $params['displayLoginForm'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle access denied error
|
||||||
|
*
|
||||||
|
* @return never
|
||||||
|
**/
|
||||||
|
public static function accessDenied() {
|
||||||
|
http_response_code(401);
|
||||||
|
if (LSsession :: get('api_mode') || LSsession :: getAjaxDisplay()) {
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
$errors = array(_("You are not authorized to access this application."));
|
||||||
|
echo json_encode(
|
||||||
|
['errors' => [_("You are not authorized to access this application.")], 'success' => false],
|
||||||
|
(isset($_REQUEST['pretty'])?JSON_PRETTY_PRINT:0)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else if (class_exists('LStemplate')) {
|
||||||
|
LStemplate :: assign('pagetitle', _("Access denied."));
|
||||||
|
LStemplate :: assign('error', _("You are not authorized to access this application."));
|
||||||
|
LStemplate :: display("error.tpl");
|
||||||
|
}
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -335,3 +383,6 @@ ___("LSauth : Failed to get authentication informations from provider.")
|
||||||
LSerror :: defineError('LSauth_08',
|
LSerror :: defineError('LSauth_08',
|
||||||
___("LSauth : Method %{method} configured doesn't support API mode.")
|
___("LSauth : Method %{method} configured doesn't support API mode.")
|
||||||
);
|
);
|
||||||
|
LSerror :: defineError('LSauth_09',
|
||||||
|
___("LSauth : The filter function speficied for %{objtype} is not callable (%{function}).")
|
||||||
|
);
|
||||||
|
|
|
@ -1963,7 +1963,7 @@ LSerror :: defineError('LSsearch_01',
|
||||||
___("LSsearch : Invalid filter : %{filter}.")
|
___("LSsearch : Invalid filter : %{filter}.")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSsearch_02',
|
LSerror :: defineError('LSsearch_02',
|
||||||
___("LSsearch : Invalid basedn : %{basedn}.")
|
___("LSsearch : Invalid basedn (%{basedn}).")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSsearch_03',
|
LSerror :: defineError('LSsearch_03',
|
||||||
___("LSsearch : Invalid value for %{param} parameter.")
|
___("LSsearch : Invalid value for %{param} parameter.")
|
||||||
|
@ -1972,7 +1972,7 @@ LSerror :: defineError('LSsearch_04',
|
||||||
___("LSsearch : Invalid size limit. Must be an integer greater or equal to 0.")
|
___("LSsearch : Invalid size limit. Must be an integer greater or equal to 0.")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSsearch_05',
|
LSerror :: defineError('LSsearch_05',
|
||||||
___("LSsearch : Invalid parameter %{attr}. Must be an boolean.")
|
___("LSsearch : Invalid parameter %{param}. Must be an boolean.")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSsearch_06',
|
LSerror :: defineError('LSsearch_06',
|
||||||
___("LSsearch : Invalid parameter attributes. Must be an string or an array of strings.")
|
___("LSsearch : Invalid parameter attributes. Must be an string or an array of strings.")
|
||||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgstr ""
|
||||||
"Project-Id-Version: LdapSaisie\n"
|
"Project-Id-Version: LdapSaisie\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: \n"
|
"POT-Creation-Date: \n"
|
||||||
"PO-Revision-Date: 2023-07-19 12:07+0200\n"
|
"PO-Revision-Date: 2023-08-18 15:45+0200\n"
|
||||||
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
|
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
|
||||||
"Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise."
|
"Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise."
|
||||||
"org>\n"
|
"org>\n"
|
||||||
|
@ -174,7 +174,9 @@ msgstr ""
|
||||||
#: includes/addons/LSaddons.ssh.php:59
|
#: includes/addons/LSaddons.ssh.php:59
|
||||||
msgid ""
|
msgid ""
|
||||||
"SSH : Unable to rename folder from %{old} to %{new} on the remote server."
|
"SSH : Unable to rename folder from %{old} to %{new} on the remote server."
|
||||||
msgstr "SSH : Impossible de renommer le dossier %{dir} sur le serveur distant."
|
msgstr ""
|
||||||
|
"SSH : Impossible de renommer le dossier de %{old} vers %{new} sur le serveur "
|
||||||
|
"distant."
|
||||||
|
|
||||||
#: includes/addons/LSaddons.exportSearchResultAsCSV.php:27
|
#: includes/addons/LSaddons.exportSearchResultAsCSV.php:27
|
||||||
msgid "ExportSearchResultAsCSV Support : function fputcsv is not available."
|
msgid "ExportSearchResultAsCSV Support : function fputcsv is not available."
|
||||||
|
@ -278,7 +280,7 @@ msgid "Download"
|
||||||
msgstr "Télécharger"
|
msgstr "Télécharger"
|
||||||
|
|
||||||
#: includes/addons/LSaddons.showSupportInfo.php:78
|
#: includes/addons/LSaddons.showSupportInfo.php:78
|
||||||
#: includes/addons/LSaddons.accesslog.php:249
|
#: includes/addons/LSaddons.accesslog.php:248
|
||||||
#: includes/addons/LSaddons.showTechInfo.php:117
|
#: includes/addons/LSaddons.showTechInfo.php:117
|
||||||
msgid "Go back"
|
msgid "Go back"
|
||||||
msgstr "Retour"
|
msgstr "Retour"
|
||||||
|
@ -426,15 +428,15 @@ msgstr "Remplacer"
|
||||||
msgid "Increment"
|
msgid "Increment"
|
||||||
msgstr "Incrémenter"
|
msgstr "Incrémenter"
|
||||||
|
|
||||||
#: includes/addons/LSaddons.accesslog.php:239
|
#: includes/addons/LSaddons.accesslog.php:238
|
||||||
msgid "Hide LdapSaisie modifications"
|
msgid "Hide LdapSaisie modifications"
|
||||||
msgstr "Cacher les modifications d'LdapSaisie"
|
msgstr "Cacher les modifications d'LdapSaisie"
|
||||||
|
|
||||||
#: includes/addons/LSaddons.accesslog.php:239
|
#: includes/addons/LSaddons.accesslog.php:238
|
||||||
msgid "Show LdapSaisie modifications"
|
msgid "Show LdapSaisie modifications"
|
||||||
msgstr "Voir les modifications d'LdapSaisie"
|
msgstr "Voir les modifications d'LdapSaisie"
|
||||||
|
|
||||||
#: includes/addons/LSaddons.accesslog.php:244
|
#: includes/addons/LSaddons.accesslog.php:243
|
||||||
#: includes/class/class.LSsession.php:1875 includes/routes.php:157
|
#: includes/class/class.LSsession.php:1875 includes/routes.php:157
|
||||||
#: includes/routes.php:474 templates/default/select.tpl:29
|
#: includes/routes.php:474 templates/default/select.tpl:29
|
||||||
msgid "Refresh"
|
msgid "Refresh"
|
||||||
|
@ -803,57 +805,57 @@ msgid "Error updating object on LDAP server."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Une erreur est survenue en mettant à jour cet objet dans l'annuaire LDAP."
|
"Une erreur est survenue en mettant à jour cet objet dans l'annuaire LDAP."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:883
|
#: includes/class/class.LSio.php:887
|
||||||
msgid "LSio: Post data not found or not completed."
|
msgid "LSio: Post data not found or not completed."
|
||||||
msgstr "LSio : les données transmises sont introuvables ou incomplètes."
|
msgstr "LSio : les données transmises sont introuvables ou incomplètes."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:886
|
#: includes/class/class.LSio.php:890
|
||||||
msgid "LSio: object type invalid."
|
msgid "LSio: object type invalid."
|
||||||
msgstr "LSio : type d'objet invalide."
|
msgstr "LSio : type d'objet invalide."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:889
|
#: includes/class/class.LSio.php:893
|
||||||
msgid "LSio: input/output format %{format} invalid."
|
msgid "LSio: input/output format %{format} invalid."
|
||||||
msgstr "LSio : Le format d'entrée/sortie %{format} est invalide."
|
msgstr "LSio : Le format d'entrée/sortie %{format} est invalide."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:892
|
#: includes/class/class.LSio.php:896
|
||||||
msgid "LSio: Fail to initialize input/output driver."
|
msgid "LSio: Fail to initialize input/output driver."
|
||||||
msgstr "LSio : Impossible d'initialiser le pilote d'entrée/sortie."
|
msgstr "LSio : Impossible d'initialiser le pilote d'entrée/sortie."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:895
|
#: includes/class/class.LSio.php:899
|
||||||
msgid "LSio: Fail to load objects's data from input file."
|
msgid "LSio: Fail to load objects's data from input file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSio: Impossible de charger les données des objets depuis le fichier "
|
"LSio: Impossible de charger les données des objets depuis le fichier "
|
||||||
"d'import."
|
"d'import."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:898
|
#: includes/class/class.LSio.php:902
|
||||||
msgid "LSio: Fail to load objects's data to export from LDAP directory."
|
msgid "LSio: Fail to load objects's data to export from LDAP directory."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSio: Impossible de charger les données des objets à exporter depuis "
|
"LSio: Impossible de charger les données des objets à exporter depuis "
|
||||||
"l'annuaire LDAP."
|
"l'annuaire LDAP."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:901
|
#: includes/class/class.LSio.php:905
|
||||||
msgid "LSio: Fail to export objects's data."
|
msgid "LSio: Fail to export objects's data."
|
||||||
msgstr "LSio: Impossible d'exporter les données des objets."
|
msgstr "LSio: Impossible d'exporter les données des objets."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:904
|
#: includes/class/class.LSio.php:908
|
||||||
msgid "LSio: An error occured running before import hooks. Stop the import."
|
msgid "LSio: An error occured running before import hooks. Stop the import."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSio : Une erreur est survenue durant l'exécution des déclencheurs d'avant "
|
"LSio : Une erreur est survenue durant l'exécution des déclencheurs d'avant "
|
||||||
"import. Arrêt de l'import."
|
"import. Arrêt de l'import."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:907
|
#: includes/class/class.LSio.php:911
|
||||||
msgid "LSio: An error occured running after import hooks."
|
msgid "LSio: An error occured running after import hooks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSio : Une erreur est survenue durant l'exécution des déclencheurs d'après "
|
"LSio : Une erreur est survenue durant l'exécution des déclencheurs d'après "
|
||||||
"import."
|
"import."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:910
|
#: includes/class/class.LSio.php:914
|
||||||
msgid "LSio: Error occured loading objects's data from input file."
|
msgid "LSio: Error occured loading objects's data from input file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSio: Une erreur est survenue en chargeant les données des objets depuis le "
|
"LSio: Une erreur est survenue en chargeant les données des objets depuis le "
|
||||||
"fichier d'import."
|
"fichier d'import."
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:913
|
#: includes/class/class.LSio.php:917
|
||||||
msgid ""
|
msgid ""
|
||||||
"LSio: This input/output format only support update. You must check the "
|
"LSio: This input/output format only support update. You must check the "
|
||||||
"'Update objects if exists' box."
|
"'Update objects if exists' box."
|
||||||
|
@ -1048,7 +1050,7 @@ msgstr "Aucun résultat"
|
||||||
#: includes/class/class.LSformElement_supannCompositeAttribute.php:276
|
#: includes/class/class.LSformElement_supannCompositeAttribute.php:276
|
||||||
#: includes/class/class.LSformElement_supannCompositeAttribute.php:293
|
#: includes/class/class.LSformElement_supannCompositeAttribute.php:293
|
||||||
msgid "%{val} (unrecognized)"
|
msgid "%{val} (unrecognized)"
|
||||||
msgstr "%{value} (valeur non-reconnue)"
|
msgstr "%{val} (valeur non-reconnue)"
|
||||||
|
|
||||||
#: includes/class/class.LSformElement_supannCompositeAttribute.php:351
|
#: includes/class/class.LSformElement_supannCompositeAttribute.php:351
|
||||||
msgid "Fail to decode composite value #%{idx}."
|
msgid "Fail to decode composite value #%{idx}."
|
||||||
|
@ -1671,7 +1673,7 @@ msgid ""
|
||||||
"(Code : %{code})"
|
"(Code : %{code})"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSsession : Erreur durant la création de la liste des niveaux. Contacter les "
|
"LSsession : Erreur durant la création de la liste des niveaux. Contacter les "
|
||||||
"administrateurs. (Code : %{type})"
|
"administrateurs. (Code : %{code})"
|
||||||
|
|
||||||
#: includes/class/class.LSsession.php:3184
|
#: includes/class/class.LSsession.php:3184
|
||||||
msgid "LSsession : The password recovery is disabled for this LDAP server."
|
msgid "LSsession : The password recovery is disabled for this LDAP server."
|
||||||
|
@ -2008,7 +2010,7 @@ msgid ""
|
||||||
"standard relations (Method : %{meth})."
|
"standard relations (Method : %{meth})."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSrelation : Des paramètres sont manquants dans l'appel des méthodes de "
|
"LSrelation : Des paramètres sont manquants dans l'appel des méthodes de "
|
||||||
"manipulation des relations standards."
|
"manipulation des relations standards (méthode : %{meth})."
|
||||||
|
|
||||||
#: includes/class/class.LSformRule_password.php:58
|
#: includes/class/class.LSformRule_password.php:58
|
||||||
msgid "Password is too long (maximum: %{maxLength})."
|
msgid "Password is too long (maximum: %{maxLength})."
|
||||||
|
@ -2146,7 +2148,7 @@ msgstr "URI de serveur LDAP invalide (%{uri})"
|
||||||
|
|
||||||
#: includes/class/class.LSformRule_ldapSearchURI.php:75
|
#: includes/class/class.LSformRule_ldapSearchURI.php:75
|
||||||
msgid "Invalid LDAP host (%{host})"
|
msgid "Invalid LDAP host (%{host})"
|
||||||
msgstr "Hôte LDAP invalide (%{type})."
|
msgstr "Hôte LDAP invalide (%{host})."
|
||||||
|
|
||||||
#: includes/class/class.LSformRule_ldapSearchURI.php:79
|
#: includes/class/class.LSformRule_ldapSearchURI.php:79
|
||||||
msgid "Invalid LDAP port (%{port})"
|
msgid "Invalid LDAP port (%{port})"
|
||||||
|
@ -2245,7 +2247,7 @@ msgid ""
|
||||||
"LSrelation : Invalid parameter '%{parameter}' of the relation %{relation}: "
|
"LSrelation : Invalid parameter '%{parameter}' of the relation %{relation}: "
|
||||||
"objects %{LSobject} have no function '%{function}'."
|
"objects %{LSobject} have no function '%{function}'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSrelation : Le paramètre '%{parametre}' de la relation %{relation} est "
|
"LSrelation : Le paramètre '%{parameter}' de la relation %{relation} est "
|
||||||
"invalide: les objets %{LSobject} n'ont pas de fonction '%{function}'."
|
"invalide: les objets %{LSobject} n'ont pas de fonction '%{function}'."
|
||||||
|
|
||||||
#: includes/class/class.LSrelation.php:1041
|
#: includes/class/class.LSrelation.php:1041
|
||||||
|
@ -2261,8 +2263,7 @@ msgstr "LSsession : Erreur durant la mise à jour de la relation %{relation}"
|
||||||
#: includes/class/class.LSrelation.php:1047
|
#: includes/class/class.LSrelation.php:1047
|
||||||
msgid "LSrelation : Object type %{LSobject} unknown (Relation : %{relation})."
|
msgid "LSrelation : Object type %{LSobject} unknown (Relation : %{relation})."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSsession : La fonction de mise à jour de la relation %{relation} est "
|
"LSrelation : Type d'objet %{LSobject} inconnu (relation : %{relation})."
|
||||||
"inconnue."
|
|
||||||
|
|
||||||
#: includes/class/class.LSrelation.php:1050
|
#: includes/class/class.LSrelation.php:1050
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -2418,11 +2419,11 @@ msgstr "Fichier trop gros."
|
||||||
msgid "File is too light."
|
msgid "File is too light."
|
||||||
msgstr "Fichier trop petit."
|
msgstr "Fichier trop petit."
|
||||||
|
|
||||||
#: includes/class/class.LSauthMethod_CAS.php:137
|
#: includes/class/class.LSauthMethod_CAS.php:153
|
||||||
msgid "LSauthMethod_CAS : Failed to load phpCAS."
|
msgid "LSauthMethod_CAS : Failed to load phpCAS."
|
||||||
msgstr "LSauthMethod_CAS : Impossible de charger phpCAS."
|
msgstr "LSauthMethod_CAS : Impossible de charger phpCAS."
|
||||||
|
|
||||||
#: includes/class/class.LSauthMethod_CAS.php:140
|
#: includes/class/class.LSauthMethod_CAS.php:156
|
||||||
msgid ""
|
msgid ""
|
||||||
"LSauthMethod_CAS : Please check your configuration : you must configure CAS "
|
"LSauthMethod_CAS : Please check your configuration : you must configure CAS "
|
||||||
"server SSL certificate validation using one of the following constant : "
|
"server SSL certificate validation using one of the following constant : "
|
||||||
|
@ -2708,43 +2709,60 @@ msgstr ""
|
||||||
"LSattr_ldap_password : La fonction d'encodage %{function} n'est pas "
|
"LSattr_ldap_password : La fonction d'encodage %{function} n'est pas "
|
||||||
"disponible. Le mot de passe sera stocké en clair."
|
"disponible. Le mot de passe sera stocké en clair."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:315
|
#: includes/class/class.LSauth.php:343 includes/class/class.LSauth.php:345
|
||||||
|
#: includes/class/class.LSauth.php:351
|
||||||
|
msgid "You are not authorized to access this application."
|
||||||
|
msgstr "Vous n'êtes pas autorisé à accéder à cette application."
|
||||||
|
|
||||||
|
#: includes/class/class.LSauth.php:350
|
||||||
|
msgid "Access denied."
|
||||||
|
msgstr "Accès interdit."
|
||||||
|
|
||||||
|
#: includes/class/class.LSauth.php:363
|
||||||
msgid "LSauth : Login or password incorrect."
|
msgid "LSauth : Login or password incorrect."
|
||||||
msgstr "LSauth : Identifiant ou mot de passe incorrects."
|
msgstr "LSauth : Identifiant ou mot de passe incorrects."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:318
|
#: includes/class/class.LSauth.php:366
|
||||||
msgid "LSauth : Impossible to identify you : Duplication of identities."
|
msgid "LSauth : Impossible to identify you : Duplication of identities."
|
||||||
msgstr "LSauth : Impossible de vous identifier : Duplication d'identité."
|
msgstr "LSauth : Impossible de vous identifier : Duplication d'identité."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:321
|
#: includes/class/class.LSauth.php:369
|
||||||
msgid "LSauth : Could not load type of identifiable objects %{type}."
|
msgid "LSauth : Could not load type of identifiable objects %{type}."
|
||||||
msgstr "LSauth : Impossible de charger le type d'objets identifiables %{type}."
|
msgstr "LSauth : Impossible de charger le type d'objets identifiables %{type}."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:324
|
#: includes/class/class.LSauth.php:372
|
||||||
msgid "LSauth : Can't load authentication method %{method}."
|
msgid "LSauth : Can't load authentication method %{method}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSauth : Impossible de charger la méthode d'authentification %{method}."
|
"LSauth : Impossible de charger la méthode d'authentification %{method}."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:327
|
#: includes/class/class.LSauth.php:375
|
||||||
msgid "LSauth : Failed to build the authentication provider %{method}."
|
msgid "LSauth : Failed to build the authentication provider %{method}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSauth : Impossible de construire le gestionnaire d'authentification "
|
"LSauth : Impossible de construire le gestionnaire d'authentification "
|
||||||
"%{method}."
|
"%{method}."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:330
|
#: includes/class/class.LSauth.php:378
|
||||||
msgid "LSauth : Not correctly initialized."
|
msgid "LSauth : Not correctly initialized."
|
||||||
msgstr "LSauth : Mauvaise initialisation."
|
msgstr "LSauth : Mauvaise initialisation."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:333
|
#: includes/class/class.LSauth.php:381
|
||||||
msgid "LSauth : Failed to get authentication informations from provider."
|
msgid "LSauth : Failed to get authentication informations from provider."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"LSauth : Impossible de récupérer les informations authentification auprès du "
|
"LSauth : Impossible de récupérer les informations authentification auprès du "
|
||||||
"gestionnaire."
|
"gestionnaire."
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:336
|
#: includes/class/class.LSauth.php:384
|
||||||
msgid "LSauth : Method %{method} configured doesn't support API mode."
|
msgid "LSauth : Method %{method} configured doesn't support API mode."
|
||||||
msgstr "LSauth : La méthode %{method} configurée ne supporte pas le mode API."
|
msgstr "LSauth : La méthode %{method} configurée ne supporte pas le mode API."
|
||||||
|
|
||||||
|
#: includes/class/class.LSauth.php:387
|
||||||
|
msgid ""
|
||||||
|
"LSauth : The filter function speficied for %{objtype} is not callable "
|
||||||
|
"(%{function})."
|
||||||
|
msgstr ""
|
||||||
|
"LSauth : La fonction de filtrage pour les %{objtype} n'est pas exécutable "
|
||||||
|
"(%{function})."
|
||||||
|
|
||||||
#: includes/class/class.LSformElement_supannEtuInscription.php:41
|
#: includes/class/class.LSformElement_supannEtuInscription.php:41
|
||||||
msgid "Organism"
|
msgid "Organism"
|
||||||
msgstr "Etablissement"
|
msgstr "Etablissement"
|
||||||
|
@ -2804,8 +2822,8 @@ msgid "LSsearch : Invalid filter : %{filter}."
|
||||||
msgstr "LSsearch : Filtre invalide : %{filter}."
|
msgstr "LSsearch : Filtre invalide : %{filter}."
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1966
|
#: includes/class/class.LSsearch.php:1966
|
||||||
msgid "LSsearch : Invalid basedn : %{basedn}."
|
msgid "LSsearch : Invalid basedn (%{basedn})."
|
||||||
msgstr "LSsearch : Base DN invalide."
|
msgstr "LSsearch : Base DN invalide (%{basedn})."
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1969
|
#: includes/class/class.LSsearch.php:1969
|
||||||
msgid "LSsearch : Invalid value for %{param} parameter."
|
msgid "LSsearch : Invalid value for %{param} parameter."
|
||||||
|
@ -2819,7 +2837,7 @@ msgstr ""
|
||||||
"supérieur ou égal à 0."
|
"supérieur ou égal à 0."
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1975
|
#: includes/class/class.LSsearch.php:1975
|
||||||
msgid "LSsearch : Invalid parameter %{attr}. Must be an boolean."
|
msgid "LSsearch : Invalid parameter %{param}. Must be an boolean."
|
||||||
msgstr "LSsearch : Paramètre %{param} invalide. Il doit être un booléen."
|
msgstr "LSsearch : Paramètre %{param} invalide. Il doit être un booléen."
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1978
|
#: includes/class/class.LSsearch.php:1978
|
||||||
|
@ -3482,15 +3500,15 @@ msgstr ""
|
||||||
"Compte verrouillé pour une raison technique (détection d'homonyme, suspicion "
|
"Compte verrouillé pour une raison technique (détection d'homonyme, suspicion "
|
||||||
"de compte piraté…)"
|
"de compte piraté…)"
|
||||||
|
|
||||||
#: conf/LSaddons/config.LSaddons.supann.php:166
|
#: conf/LSaddons/config.LSaddons.supann.php:172
|
||||||
msgid "Female"
|
msgid "Female"
|
||||||
msgstr "Femme"
|
msgstr "Femme"
|
||||||
|
|
||||||
#: conf/LSaddons/config.LSaddons.supann.php:167
|
#: conf/LSaddons/config.LSaddons.supann.php:173
|
||||||
msgid "Male"
|
msgid "Male"
|
||||||
msgstr "Homme"
|
msgstr "Homme"
|
||||||
|
|
||||||
#: conf/LSaddons/config.LSaddons.supann.php:168
|
#: conf/LSaddons/config.LSaddons.supann.php:174
|
||||||
msgid "Other"
|
msgid "Other"
|
||||||
msgstr "Autre"
|
msgstr "Autre"
|
||||||
|
|
||||||
|
@ -3612,7 +3630,7 @@ msgstr "Messages"
|
||||||
msgid "Nb / page :"
|
msgid "Nb / page :"
|
||||||
msgstr "Nb / page :"
|
msgstr "Nb / page :"
|
||||||
|
|
||||||
#: templates/default/showObjectAccessLogs.tpl:71
|
#: templates/default/showObjectAccessLogs.tpl:80
|
||||||
msgid "No access log found for this object."
|
msgid "No access log found for this object."
|
||||||
msgstr "Aucun log d'accès trouvé pour cet objet."
|
msgstr "Aucun log d'accès trouvé pour cet objet."
|
||||||
|
|
||||||
|
@ -3751,7 +3769,7 @@ msgstr "Valider"
|
||||||
msgid "Value"
|
msgid "Value"
|
||||||
msgstr "Valeur"
|
msgstr "Valeur"
|
||||||
|
|
||||||
#: templates/default/showObjectAccessLogs.tpl:76
|
#: templates/default/showObjectAccessLogs.tpl:85
|
||||||
msgid "event(s) found for this object."
|
msgid "event(s) found for this object."
|
||||||
msgstr "événement(s) trouvé(s) pour cet objet."
|
msgstr "événement(s) trouvé(s) pour cet objet."
|
||||||
|
|
||||||
|
|
|
@ -217,7 +217,7 @@ msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/addons/LSaddons.showSupportInfo.php:78
|
#: includes/addons/LSaddons.showSupportInfo.php:78
|
||||||
#: includes/addons/LSaddons.accesslog.php:249
|
#: includes/addons/LSaddons.accesslog.php:248
|
||||||
#: includes/addons/LSaddons.showTechInfo.php:117
|
#: includes/addons/LSaddons.showTechInfo.php:117
|
||||||
msgid "Go back"
|
msgid "Go back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -350,15 +350,15 @@ msgstr ""
|
||||||
msgid "Increment"
|
msgid "Increment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/addons/LSaddons.accesslog.php:239
|
#: includes/addons/LSaddons.accesslog.php:238
|
||||||
msgid "Hide LdapSaisie modifications"
|
msgid "Hide LdapSaisie modifications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/addons/LSaddons.accesslog.php:239
|
#: includes/addons/LSaddons.accesslog.php:238
|
||||||
msgid "Show LdapSaisie modifications"
|
msgid "Show LdapSaisie modifications"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/addons/LSaddons.accesslog.php:244
|
#: includes/addons/LSaddons.accesslog.php:243
|
||||||
#: includes/class/class.LSsession.php:1875 includes/routes.php:157
|
#: includes/class/class.LSsession.php:1875 includes/routes.php:157
|
||||||
#: includes/routes.php:474 templates/default/select.tpl:29
|
#: includes/routes.php:474 templates/default/select.tpl:29
|
||||||
msgid "Refresh"
|
msgid "Refresh"
|
||||||
|
@ -683,47 +683,47 @@ msgstr ""
|
||||||
msgid "Error updating object on LDAP server."
|
msgid "Error updating object on LDAP server."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:883
|
#: includes/class/class.LSio.php:887
|
||||||
msgid "LSio: Post data not found or not completed."
|
msgid "LSio: Post data not found or not completed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:886
|
#: includes/class/class.LSio.php:890
|
||||||
msgid "LSio: object type invalid."
|
msgid "LSio: object type invalid."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:889
|
#: includes/class/class.LSio.php:893
|
||||||
msgid "LSio: input/output format %{format} invalid."
|
msgid "LSio: input/output format %{format} invalid."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:892
|
#: includes/class/class.LSio.php:896
|
||||||
msgid "LSio: Fail to initialize input/output driver."
|
msgid "LSio: Fail to initialize input/output driver."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:895
|
#: includes/class/class.LSio.php:899
|
||||||
msgid "LSio: Fail to load objects's data from input file."
|
msgid "LSio: Fail to load objects's data from input file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:898
|
#: includes/class/class.LSio.php:902
|
||||||
msgid "LSio: Fail to load objects's data to export from LDAP directory."
|
msgid "LSio: Fail to load objects's data to export from LDAP directory."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:901
|
#: includes/class/class.LSio.php:905
|
||||||
msgid "LSio: Fail to export objects's data."
|
msgid "LSio: Fail to export objects's data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:904
|
#: includes/class/class.LSio.php:908
|
||||||
msgid "LSio: An error occured running before import hooks. Stop the import."
|
msgid "LSio: An error occured running before import hooks. Stop the import."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:907
|
#: includes/class/class.LSio.php:911
|
||||||
msgid "LSio: An error occured running after import hooks."
|
msgid "LSio: An error occured running after import hooks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:910
|
#: includes/class/class.LSio.php:914
|
||||||
msgid "LSio: Error occured loading objects's data from input file."
|
msgid "LSio: Error occured loading objects's data from input file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSio.php:913
|
#: includes/class/class.LSio.php:917
|
||||||
msgid ""
|
msgid ""
|
||||||
"LSio: This input/output format only support update. You must check the "
|
"LSio: This input/output format only support update. You must check the "
|
||||||
"'Update objects if exists' box."
|
"'Update objects if exists' box."
|
||||||
|
@ -2041,11 +2041,11 @@ msgstr ""
|
||||||
msgid "File is too light."
|
msgid "File is too light."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauthMethod_CAS.php:137
|
#: includes/class/class.LSauthMethod_CAS.php:153
|
||||||
msgid "LSauthMethod_CAS : Failed to load phpCAS."
|
msgid "LSauthMethod_CAS : Failed to load phpCAS."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauthMethod_CAS.php:140
|
#: includes/class/class.LSauthMethod_CAS.php:156
|
||||||
msgid ""
|
msgid ""
|
||||||
"LSauthMethod_CAS : Please check your configuration : you must configure CAS "
|
"LSauthMethod_CAS : Please check your configuration : you must configure CAS "
|
||||||
"server SSL certificate validation using one of the following constant : "
|
"server SSL certificate validation using one of the following constant : "
|
||||||
|
@ -2299,38 +2299,53 @@ msgid ""
|
||||||
"password will be stored in clear text."
|
"password will be stored in clear text."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:315
|
#: includes/class/class.LSauth.php:343 includes/class/class.LSauth.php:345
|
||||||
|
#: includes/class/class.LSauth.php:351
|
||||||
|
msgid "You are not authorized to access this application."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class/class.LSauth.php:350
|
||||||
|
msgid "Access denied."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class/class.LSauth.php:363
|
||||||
msgid "LSauth : Login or password incorrect."
|
msgid "LSauth : Login or password incorrect."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:318
|
#: includes/class/class.LSauth.php:366
|
||||||
msgid "LSauth : Impossible to identify you : Duplication of identities."
|
msgid "LSauth : Impossible to identify you : Duplication of identities."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:321
|
#: includes/class/class.LSauth.php:369
|
||||||
msgid "LSauth : Could not load type of identifiable objects %{type}."
|
msgid "LSauth : Could not load type of identifiable objects %{type}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:324
|
#: includes/class/class.LSauth.php:372
|
||||||
msgid "LSauth : Can't load authentication method %{method}."
|
msgid "LSauth : Can't load authentication method %{method}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:327
|
#: includes/class/class.LSauth.php:375
|
||||||
msgid "LSauth : Failed to build the authentication provider %{method}."
|
msgid "LSauth : Failed to build the authentication provider %{method}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:330
|
#: includes/class/class.LSauth.php:378
|
||||||
msgid "LSauth : Not correctly initialized."
|
msgid "LSauth : Not correctly initialized."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:333
|
#: includes/class/class.LSauth.php:381
|
||||||
msgid "LSauth : Failed to get authentication informations from provider."
|
msgid "LSauth : Failed to get authentication informations from provider."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSauth.php:336
|
#: includes/class/class.LSauth.php:384
|
||||||
msgid "LSauth : Method %{method} configured doesn't support API mode."
|
msgid "LSauth : Method %{method} configured doesn't support API mode."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: includes/class/class.LSauth.php:387
|
||||||
|
msgid ""
|
||||||
|
"LSauth : The filter function speficied for %{objtype} is not callable "
|
||||||
|
"(%{function})."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSformElement_supannEtuInscription.php:41
|
#: includes/class/class.LSformElement_supannEtuInscription.php:41
|
||||||
msgid "Organism"
|
msgid "Organism"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2390,7 +2405,7 @@ msgid "LSsearch : Invalid filter : %{filter}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1966
|
#: includes/class/class.LSsearch.php:1966
|
||||||
msgid "LSsearch : Invalid basedn : %{basedn}."
|
msgid "LSsearch : Invalid basedn (%{basedn})."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1969
|
#: includes/class/class.LSsearch.php:1969
|
||||||
|
@ -2403,7 +2418,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1975
|
#: includes/class/class.LSsearch.php:1975
|
||||||
msgid "LSsearch : Invalid parameter %{attr}. Must be an boolean."
|
msgid "LSsearch : Invalid parameter %{param}. Must be an boolean."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: includes/class/class.LSsearch.php:1978
|
#: includes/class/class.LSsearch.php:1978
|
||||||
|
@ -2979,15 +2994,15 @@ msgid ""
|
||||||
"a hacked account, etc.)"
|
"a hacked account, etc.)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: conf/LSaddons/config.LSaddons.supann.php:166
|
#: conf/LSaddons/config.LSaddons.supann.php:172
|
||||||
msgid "Female"
|
msgid "Female"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: conf/LSaddons/config.LSaddons.supann.php:167
|
#: conf/LSaddons/config.LSaddons.supann.php:173
|
||||||
msgid "Male"
|
msgid "Male"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: conf/LSaddons/config.LSaddons.supann.php:168
|
#: conf/LSaddons/config.LSaddons.supann.php:174
|
||||||
msgid "Other"
|
msgid "Other"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3109,7 +3124,7 @@ msgstr ""
|
||||||
msgid "Nb / page :"
|
msgid "Nb / page :"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/default/showObjectAccessLogs.tpl:71
|
#: templates/default/showObjectAccessLogs.tpl:80
|
||||||
msgid "No access log found for this object."
|
msgid "No access log found for this object."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3246,7 +3261,7 @@ msgstr ""
|
||||||
msgid "Value"
|
msgid "Value"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/default/showObjectAccessLogs.tpl:76
|
#: templates/default/showObjectAccessLogs.tpl:85
|
||||||
msgid "event(s) found for this object."
|
msgid "event(s) found for this object."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue