Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Login SPID su utenze non presenti in archivio #26

Open
AlfioCostanzo opened this issue Nov 17, 2021 · 4 comments
Open

Login SPID su utenze non presenti in archivio #26

AlfioCostanzo opened this issue Nov 17, 2021 · 4 comments

Comments

@AlfioCostanzo
Copy link

Buongiorno,
ho notato che provando a fare il login senza che l'utenza sia presente in archivio, si ottiene l'errore

Gentile Alfio,
il tuo account non è abilitato su questo sito.

Vi è la possibilità di far registrare l'utenza non presente in archivio a seguito dell'accesso spid?

Ho notato che è presente nel codice questo filter
apply_filters( 'spid_registration_filter_new_user', $attributes);
ed effettivamente, nelle condizioni descritte sopra, si riesce ad arrivare nell'if che lo contiene. Ma poi è come se quel filter non si attivasse.

@comfos
Copy link

comfos commented Nov 24, 2021

Mi associo alla richiesta, anche io avrei la necessità di far "registrare" l'utente nel momento in cui esegue accesso con lo spid e la sua utenza non è presente in archivio.

@milesimarco
Copy link
Member

Buonasera @GolemNet-DEV e @comfos,
ad oggi la funzionalità non è prevista nel plugin rilasciato, ma sto lavorando per una soluzione cercando di capire come gestire lo snippet in base alle esigenze.

Al momento il filtro è comunque attivo e funzionante, pertanto leggendo i valori di $attributes può agevolmente essere caricato un nuovo utente all'interno del DB tramite scrittura di codice php custom. Sto utilizzando lo stesso approccio in alcuni progetti che seguo personalmente e sarà supportato ufficialmente anche in futuro.

Rif.
https://developer.wordpress.org/reference/functions/apply_filters/
https://developer.wordpress.org/reference/functions/wp_create_user/

@HshMatera
Copy link

HshMatera commented Jul 14, 2022

Buongiorno,
sto cercando di risolvere il problema della registrazione modificando il codice
apply_filters( 'spid_registration_filter_new_user', $attributes);
con questo
$user_id = wp_insert_user( array(
'user_login' => strtolower($attributes['name']),
'last_name' => $attributes['familyName'],
'user_email' => $attributes['email'],
'first_name' => $attributes['name'],
'display_name' => $attributes['name']
));
update_user_meta($user_id, codice_fiscale , $attributes['fiscalNumber']);

In pratica registro un nuovo utente wordpress associandoli anche il metadata "codice_fiscale" e come ruolo (solo per comodità di test) amministratore perchè devo effettuare l'accesso a wp-login.

Il problema adesso è il return su wp-login in quanto i dati per l'accesso non vengono passati e non viene eseguito nulla.

La variabile $user potrebbe essere vuota? @milesimarco

Grazie

@AlfioCostanzo
Copy link
Author

AlfioCostanzo commented Feb 28, 2023

Io ho risolto registrando il seguente hook

add_filter('spid_registration_filter_new_user', 'spid_registration_filter_new_user_callback', 10, 1);

function spid_registration_filter_new_user_callback($attributes)
{
  $uname = explode(" ", $attributes['name']);
  $login = "";
  foreach($uname as $u) {
    $login .= strtolower($u[0]);
  }

  $user_id = wp_insert_user(array(
    'user_login' => $login . "." . strtolower($attributes['familyName']),
    'last_name' => $attributes['familyName'],
    'user_email' => $attributes['email'],
    'first_name' => $attributes['name'],
    'display_name' => $attributes['name'] . " " . $attributes['familyName']
  ));

  $cf = str_replace('TINIT-', '', $attributes['fiscalNumber']);
  update_user_meta($user_id, 'codice_fiscale', $cf);

  return get_user_by('id', $user_id);
}

Rimane il problema del return che si risolve modificando la riga dell' apply filter con
$user = apply_filters('spid_registration_filter_new_user', $attributes);

@milesimarco è possibile apportare la modifica al prossimo aggiornamento?

feddar added a commit to feddar/wp-spid-italia that referenced this issue Aug 11, 2023
Come proposto da @GolemNet-DEV nel issue WPGov#26 mi accodo per proporre la modifica alla riga 304.
Ho testato anche io il funzionamento e così si risolve il problema del messaggio di errore "il tuo account non è abilitato su questo sito" nel caso in cui si desideri che l'utente possa eseguire il login con SPID e contestualmente venga creato l'account su WP. Per dettagli rimando al [post di @GolemNet-DEV](WPGov#26 (comment))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants