Popravljen AAI login, da deluje tudi po spremembi Arnes emaila - POTREBNO TESTIRATI NA AAI

This commit is contained in:
pero1203 2021-09-01 08:42:42 +02:00
parent 79f9bdcfd0
commit 4be6dea5d4
3 changed files with 53 additions and 18 deletions

View File

@ -109,6 +109,30 @@ class User {
return null;
}
public static function findByEmail_AAI($email, $aai_id){
$user_id = sisplet_query("SELECT id FROM users WHERE email='".$email."'", "obj");
if(!empty($user_id)){
// Ce se nimamo zabelezenega aai_id-ja (uuid), ga pri prvi novi prijavi zabelezimo
sisplet_query("UPDATE users SET aai_id='".$aai_id."' WHERE user_id='".$user_id->id."' AND email='".$email."' AND aai_id=''");
return $user_id->id;
}
// Preverimo, če obstaja racun s tem aai id (uuid)
$user_id = sisplet_query("SELECT id FROM users WHERE aai_id='".$aai_id."'", "obj");
if(!empty($user_id)){
// Ce obstaja pomeni da je bil aai email spremenjen - ga popravimo se v bazi
sisplet_query("UPDATE users SET email='".$email."' WHERE user_id='".$user_id->id."' AND aai_id='".$aai_id."'");
return $user_id->id;
}
return null;
}
public function insertAlternativeEmail($email = NULL, $active = 0)
{
if (is_null($email) || !validEmail($email) || !unikatenEmail($email)) {
@ -147,7 +171,8 @@ class User {
if(!empty($option)){
sisplet_query("UPDATE user_options SET option_value='".$value."' WHERE user_id='".$this->user->id."' AND id='".$option->id."'");
}else{;
}
else{;
sisplet_query("INSERT INTO user_options (user_id, option_name, option_value, created_at) VALUES ('".$this->user->id."', '".$name."', '".$value."', NOW())");
}
}

View File

@ -895,11 +895,14 @@ class ApiLogin
sort($mails);
$mail = $mails[0];
$ime = $data[1];
$priimek = $data[2];
// Pridobimo aai (shibboleth) "uuid"
$aai_id = $data[1];
$njegova = $data[3];
$moja = $data[4];
$ime = $data[2];
$priimek = $data[3];
$njegova = $data[4];
$moja = $data[5];
// Preverimo ce ima veljaven token (najprej pobrisemo stare)
@ -911,14 +914,15 @@ class ApiLogin
$pass = base64_encode((hash('SHA256', "e5zhbWRTEGW&u375ejsznrtztjhdtz%WZ&".$pass_salt)));
// Preverimo ce obstaja user v bazi
$user_id_1ka = User::findByEmail($mail);
$user_id_1ka = User::findByEmail_AAI($mail, $aai_id);
if (empty($user_id_1ka)) {
// Nastavimo pass
$pass = base64_encode(hash('SHA256', "e5zhbWRTEGW&u375ejsznrtztjhdtz%WZ&".$pass_salt));
// dodaj ga v bazo
sisplet_query("INSERT INTO users (email, name, surname, type, pass, eduroam, when_reg) VALUES ('$mail', '$ime', '$priimek', '3', '".$pass."', '1', NOW())");
sisplet_query("INSERT INTO users (email, aai_id, name, surname, type, pass, eduroam, when_reg) VALUES ('$mail', '$aai_id', '$ime', '$priimek', '3', '".$pass."', '1', NOW())");
// Pridobimo id dodanega userja
$user_id = mysqli_insert_id($GLOBALS['connect_db']);
@ -926,10 +930,11 @@ class ApiLogin
else {
// potegni geslo in mu daj kuki
$result = sisplet_query("SELECT pass, id FROM users WHERE id='".$user_id_1ka."'");
$result = sisplet_query("SELECT pass, email FROM users WHERE id='".$user_id_1ka."'");
$r = mysqli_fetch_row($result);
$pass = $r[0];
$mail = $r[1];
$user_id = $user_id_1ka;
}

View File

@ -9534,3 +9534,8 @@ ALTER TABLE srv_language_vrednost CHANGE naslov2 naslov2 TEXT character set utf8
ALTER TABLE srv_language_spremenljivka CHANGE info info TEXT character set utf8 NOT NULL;
UPDATE misc SET value='21.07.29' WHERE what="version";
## AAI ID uporabnika - SAMO NA AAI instalaciji!!!
##ALTER TABLE users ADD aai_id VARCHAR(255) CHARACTER SET utf8 NOT NULL DEFAULT '' AFTER email;
UPDATE misc SET value='21.08.30' WHERE what="version";