Compare commits

..

No commits in common. "961740c85538291f59b25e1caef6439976d6f0c2" and "05519c543276f8f06d24628d29598b75f40c732f" have entirely different histories.

6 changed files with 77 additions and 177 deletions

View file

@ -25,7 +25,6 @@ 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],
@ -171,21 +170,6 @@ 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>

View file

@ -132,7 +132,6 @@ 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'),
); );
} }
@ -170,19 +169,11 @@ 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,
@ -190,28 +181,12 @@ 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');
@ -331,29 +306,6 @@ 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();
}
} }
/* /*
@ -383,6 +335,3 @@ ___("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}).")
);

View file

@ -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 %{param}. Must be an boolean.") ___("LSsearch : Invalid parameter %{attr}. 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.")

View file

@ -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-08-18 15:45+0200\n" "PO-Revision-Date: 2023-07-19 12:07+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,9 +174,7 @@ 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 "" msgstr "SSH : Impossible de renommer le dossier %{dir} sur le serveur distant."
"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."
@ -280,7 +278,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:248 #: includes/addons/LSaddons.accesslog.php:249
#: includes/addons/LSaddons.showTechInfo.php:117 #: includes/addons/LSaddons.showTechInfo.php:117
msgid "Go back" msgid "Go back"
msgstr "Retour" msgstr "Retour"
@ -428,15 +426,15 @@ msgstr "Remplacer"
msgid "Increment" msgid "Increment"
msgstr "Incrémenter" msgstr "Incrémenter"
#: includes/addons/LSaddons.accesslog.php:238 #: includes/addons/LSaddons.accesslog.php:239
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:238 #: includes/addons/LSaddons.accesslog.php:239
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:243 #: includes/addons/LSaddons.accesslog.php:244
#: 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"
@ -805,57 +803,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:887 #: includes/class/class.LSio.php:883
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:890 #: includes/class/class.LSio.php:886
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:893 #: includes/class/class.LSio.php:889
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:896 #: includes/class/class.LSio.php:892
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:899 #: includes/class/class.LSio.php:895
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:902 #: includes/class/class.LSio.php:898
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:905 #: includes/class/class.LSio.php:901
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:908 #: includes/class/class.LSio.php:904
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:911 #: includes/class/class.LSio.php:907
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:914 #: includes/class/class.LSio.php:910
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:917 #: includes/class/class.LSio.php:913
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."
@ -1050,7 +1048,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 "%{val} (valeur non-reconnue)" msgstr "%{value} (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}."
@ -1673,7 +1671,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 : %{code})" "administrateurs. (Code : %{type})"
#: 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."
@ -2010,7 +2008,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 (méthode : %{meth})." "manipulation des relations standards."
#: 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})."
@ -2148,7 +2146,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 (%{host})." msgstr "Hôte LDAP invalide (%{type})."
#: includes/class/class.LSformRule_ldapSearchURI.php:79 #: includes/class/class.LSformRule_ldapSearchURI.php:79
msgid "Invalid LDAP port (%{port})" msgid "Invalid LDAP port (%{port})"
@ -2247,7 +2245,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 '%{parameter}' de la relation %{relation} est " "LSrelation : Le paramètre '%{parametre}' 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
@ -2263,7 +2261,8 @@ 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 ""
"LSrelation : Type d'objet %{LSobject} inconnu (relation : %{relation})." "LSsession : La fonction de mise à jour de la relation %{relation} est "
"inconnue."
#: includes/class/class.LSrelation.php:1050 #: includes/class/class.LSrelation.php:1050
msgid "" msgid ""
@ -2419,11 +2418,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:153 #: includes/class/class.LSauthMethod_CAS.php:137
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:156 #: includes/class/class.LSauthMethod_CAS.php:140
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 : "
@ -2709,60 +2708,43 @@ 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:343 includes/class/class.LSauth.php:345 #: includes/class/class.LSauth.php:315
#: 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:366 #: includes/class/class.LSauth.php:318
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:369 #: includes/class/class.LSauth.php:321
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:372 #: includes/class/class.LSauth.php:324
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:375 #: includes/class/class.LSauth.php:327
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:378 #: includes/class/class.LSauth.php:330
msgid "LSauth : Not correctly initialized." msgid "LSauth : Not correctly initialized."
msgstr "LSauth : Mauvaise initialisation." msgstr "LSauth : Mauvaise initialisation."
#: includes/class/class.LSauth.php:381 #: includes/class/class.LSauth.php:333
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:384 #: includes/class/class.LSauth.php:336
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"
@ -2822,8 +2804,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 (%{basedn})." msgstr "LSsearch : Base DN invalide."
#: 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."
@ -2837,7 +2819,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 %{param}. Must be an boolean." msgid "LSsearch : Invalid parameter %{attr}. 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
@ -3500,15 +3482,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:172 #: conf/LSaddons/config.LSaddons.supann.php:166
msgid "Female" msgid "Female"
msgstr "Femme" msgstr "Femme"
#: conf/LSaddons/config.LSaddons.supann.php:173 #: conf/LSaddons/config.LSaddons.supann.php:167
msgid "Male" msgid "Male"
msgstr "Homme" msgstr "Homme"
#: conf/LSaddons/config.LSaddons.supann.php:174 #: conf/LSaddons/config.LSaddons.supann.php:168
msgid "Other" msgid "Other"
msgstr "Autre" msgstr "Autre"
@ -3630,7 +3612,7 @@ msgstr "Messages"
msgid "Nb / page :" msgid "Nb / page :"
msgstr "Nb / page :" msgstr "Nb / page :"
#: templates/default/showObjectAccessLogs.tpl:80 #: templates/default/showObjectAccessLogs.tpl:71
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."
@ -3769,7 +3751,7 @@ msgstr "Valider"
msgid "Value" msgid "Value"
msgstr "Valeur" msgstr "Valeur"
#: templates/default/showObjectAccessLogs.tpl:85 #: templates/default/showObjectAccessLogs.tpl:76
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."

View file

@ -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:248 #: includes/addons/LSaddons.accesslog.php:249
#: 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:238 #: includes/addons/LSaddons.accesslog.php:239
msgid "Hide LdapSaisie modifications" msgid "Hide LdapSaisie modifications"
msgstr "" msgstr ""
#: includes/addons/LSaddons.accesslog.php:238 #: includes/addons/LSaddons.accesslog.php:239
msgid "Show LdapSaisie modifications" msgid "Show LdapSaisie modifications"
msgstr "" msgstr ""
#: includes/addons/LSaddons.accesslog.php:243 #: includes/addons/LSaddons.accesslog.php:244
#: 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:887 #: includes/class/class.LSio.php:883
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:890 #: includes/class/class.LSio.php:886
msgid "LSio: object type invalid." msgid "LSio: object type invalid."
msgstr "" msgstr ""
#: includes/class/class.LSio.php:893 #: includes/class/class.LSio.php:889
msgid "LSio: input/output format %{format} invalid." msgid "LSio: input/output format %{format} invalid."
msgstr "" msgstr ""
#: includes/class/class.LSio.php:896 #: includes/class/class.LSio.php:892
msgid "LSio: Fail to initialize input/output driver." msgid "LSio: Fail to initialize input/output driver."
msgstr "" msgstr ""
#: includes/class/class.LSio.php:899 #: includes/class/class.LSio.php:895
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:902 #: includes/class/class.LSio.php:898
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:905 #: includes/class/class.LSio.php:901
msgid "LSio: Fail to export objects's data." msgid "LSio: Fail to export objects's data."
msgstr "" msgstr ""
#: includes/class/class.LSio.php:908 #: includes/class/class.LSio.php:904
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:911 #: includes/class/class.LSio.php:907
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:914 #: includes/class/class.LSio.php:910
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:917 #: includes/class/class.LSio.php:913
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:153 #: includes/class/class.LSauthMethod_CAS.php:137
msgid "LSauthMethod_CAS : Failed to load phpCAS." msgid "LSauthMethod_CAS : Failed to load phpCAS."
msgstr "" msgstr ""
#: includes/class/class.LSauthMethod_CAS.php:156 #: includes/class/class.LSauthMethod_CAS.php:140
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,53 +2299,38 @@ msgid ""
"password will be stored in clear text." "password will be stored in clear text."
msgstr "" msgstr ""
#: includes/class/class.LSauth.php:343 includes/class/class.LSauth.php:345 #: includes/class/class.LSauth.php:315
#: 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:366 #: includes/class/class.LSauth.php:318
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:369 #: includes/class/class.LSauth.php:321
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:372 #: includes/class/class.LSauth.php:324
msgid "LSauth : Can't load authentication method %{method}." msgid "LSauth : Can't load authentication method %{method}."
msgstr "" msgstr ""
#: includes/class/class.LSauth.php:375 #: includes/class/class.LSauth.php:327
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:378 #: includes/class/class.LSauth.php:330
msgid "LSauth : Not correctly initialized." msgid "LSauth : Not correctly initialized."
msgstr "" msgstr ""
#: includes/class/class.LSauth.php:381 #: includes/class/class.LSauth.php:333
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:384 #: includes/class/class.LSauth.php:336
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 ""
@ -2405,7 +2390,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
@ -2418,7 +2403,7 @@ msgid ""
msgstr "" msgstr ""
#: includes/class/class.LSsearch.php:1975 #: includes/class/class.LSsearch.php:1975
msgid "LSsearch : Invalid parameter %{param}. Must be an boolean." msgid "LSsearch : Invalid parameter %{attr}. Must be an boolean."
msgstr "" msgstr ""
#: includes/class/class.LSsearch.php:1978 #: includes/class/class.LSsearch.php:1978
@ -2994,15 +2979,15 @@ msgid ""
"a hacked account, etc.)" "a hacked account, etc.)"
msgstr "" msgstr ""
#: conf/LSaddons/config.LSaddons.supann.php:172 #: conf/LSaddons/config.LSaddons.supann.php:166
msgid "Female" msgid "Female"
msgstr "" msgstr ""
#: conf/LSaddons/config.LSaddons.supann.php:173 #: conf/LSaddons/config.LSaddons.supann.php:167
msgid "Male" msgid "Male"
msgstr "" msgstr ""
#: conf/LSaddons/config.LSaddons.supann.php:174 #: conf/LSaddons/config.LSaddons.supann.php:168
msgid "Other" msgid "Other"
msgstr "" msgstr ""
@ -3124,7 +3109,7 @@ msgstr ""
msgid "Nb / page :" msgid "Nb / page :"
msgstr "" msgstr ""
#: templates/default/showObjectAccessLogs.tpl:80 #: templates/default/showObjectAccessLogs.tpl:71
msgid "No access log found for this object." msgid "No access log found for this object."
msgstr "" msgstr ""
@ -3261,7 +3246,7 @@ msgstr ""
msgid "Value" msgid "Value"
msgstr "" msgstr ""
#: templates/default/showObjectAccessLogs.tpl:85 #: templates/default/showObjectAccessLogs.tpl:76
msgid "event(s) found for this object." msgid "event(s) found for this object."
msgstr "" msgstr ""