add user creation
This commit is contained in:
parent
1b99445f0d
commit
554b3d9748
|
@ -46,6 +46,18 @@ function balise_LOGIN_SAML_dyn()
|
||||||
else return login_saml_successfull();
|
else return login_saml_successfull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function generate_password($length = 15) {
|
||||||
|
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789*\_-~#/!+={[]}()&$%';
|
||||||
|
$count = mb_strlen($chars);
|
||||||
|
|
||||||
|
for ($i = 0, $result = ''; $i < $length; $i++) {
|
||||||
|
$index = rand(0, $count - 1);
|
||||||
|
$result .= mb_substr($chars, $index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
function login_saml_successfull()
|
function login_saml_successfull()
|
||||||
{
|
{
|
||||||
$simplesaml = new SimpleSAML_Auth_Simple('default-sp');
|
$simplesaml = new SimpleSAML_Auth_Simple('default-sp');
|
||||||
|
@ -74,18 +86,22 @@ function login_saml_successfull()
|
||||||
spip_log("[auth_saml] display name : $display_name and email : $email");
|
spip_log("[auth_saml] display name : $display_name and email : $email");
|
||||||
spip_query("UPDATE spip_auteurs SET nom=" . _q($display_name) . ", email=" . _q($email) . " WHERE login="._q($login));
|
spip_query("UPDATE spip_auteurs SET nom=" . _q($display_name) . ", email=" . _q($email) . " WHERE login="._q($login));
|
||||||
|
|
||||||
$session = charger_fonction('session', 'inc');
|
|
||||||
$cookie_session = $session($row_auteur);
|
|
||||||
spip_setcookie('spip_session', $cookie_session);
|
|
||||||
$redirect = _DIR_RESTREINT_ABS. "?bonjour=oui";
|
|
||||||
redirige_par_entete($redirect);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Logout SAML au cas ou
|
spip_log("[auth_saml] creating user [" . $login . "]");
|
||||||
spip_log("[auth_saml] logout");
|
spip_log("[auth_saml] display name : $display_name and email : $email");
|
||||||
$simplesaml->logout();
|
$pass = generate_password();
|
||||||
|
spip_query("INSERT INTO spip_auteurs (nom, login, email, pass, statut) VALUES ('$display_name', '$login', '$email', '$pass', '1comite')");
|
||||||
|
// Si l'utilisateur figure deja dans la base, y recuperer les infos
|
||||||
|
$result = spip_query("SELECT * FROM spip_auteurs WHERE login=" ._q($login). " AND statut<>'5poubelle'" );
|
||||||
|
$row_auteur = spip_fetch_array($result);
|
||||||
}
|
}
|
||||||
|
$session = charger_fonction('session', 'inc');
|
||||||
|
$cookie_session = $session($row_auteur);
|
||||||
|
spip_setcookie('spip_session', $cookie_session);
|
||||||
|
$redirect = _DIR_RESTREINT_ABS. "?bonjour=oui";
|
||||||
|
redirige_par_entete($redirect);
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Reference in New Issue