Autore Topic: [RISOLTO] onUserAfterSave assegnazione gruppi non funziona  (Letto 1306 volte)

Offline Antonio77

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Ciao,
ho creato un plugin che deve assegnare l'utente appena salvato a dei gruppi nella funzione onUserAfterSave.
Lo faccio così:

Codice: [Seleziona]
$user = JFactory::getUser($user['id']);$user->groups = Array(10);$user->save();
prima e dopo stampo la variabile user e vedo che prima aveva il gruppo 2, dopo ha il gruppo 10.Quando vado nel back-end e vedo l'utente appena creato risulta associato al gruppo 2 (Registred).

Ho provato anche in diverse maniere

Codice: [Seleziona]
JUserHelper::addUserToGroup($user['id'], 10);
Codice: [Seleziona]
JUserHelper::setUserGroups($user['id'], Array(10));
Qualcuno si é trovato in una situazione simile o saprebbe aiutarmi?
Grazie per qualsiasi suggerimento.
« Ultima modifica: 10 Set 2015, 14:25:23 da Antonio77 »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 30482
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:onUserAfterSave assegnazione gruppi non funziona
« Risposta #1 il: 04 Set 2015, 07:37:00 »
Ciao

Non so quale sia l'esigenza di creare un plugin per quella funzione dato che è gia possibile da impostazioni modificare il gruppo dei nuovi utenti da registred ad altro gruppo.
NEWS DataGrill Xataface Installer (Ver. 1.0.1) per Joomla 3.8.x - DEMO Gestione Magazzino

Offline Antonio77

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:onUserAfterSave assegnazione gruppi non funziona
« Risposta #2 il: 04 Set 2015, 09:52:41 »
Ciao tomtomeight,
in realtà il mio plugin verifica esternamente l'autenticazione nell' onUserBeforeSave (e ottiene anche le informazioni sui gruppi),
solo che non riesco a settarglieli nell'onUserBeforeSave perché non é ancora salavto (almeno é così che mi é sembrato di capire),
quindi sto cercando di salvarli nell'onUserAfterSave.
Spero di aver chiarito la situazione.

Grazie.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 30482
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:onUserAfterSave assegnazione gruppi non funziona
« Risposta #3 il: 04 Set 2015, 09:59:32 »
Credo che dovresti agire in before save proprio perché non essendo ancora salvato puoi assegnare il gruppo, aftersave ti trovi col gruppo già assegnato e dovresti riaprire, cambiare e risalvare.
NEWS DataGrill Xataface Installer (Ver. 1.0.1) per Joomla 3.8.x - DEMO Gestione Magazzino

Offline steganoga

  • Abituale
  • ****
  • Post: 1313
    • Mostra profilo
...sono dove non ti aspetti di trovarmi, mi alimento della tua supponenza e disseto la mia curiosità nel silenzio.
Non sono un nemico, considerami un ospite.

Offline Antonio77

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:onUserAfterSave assegnazione gruppi non funziona
« Risposta #5 il: 04 Set 2015, 15:23:32 »
Ciao Steganoga,
grazie per il suggerimento,
ho provato come suggerito nel forum a creare una nuova istanza dello user da modificare e poi salvarla ma
non mi funziona ...

ho provato con tutte le varianti descritte dai vari utenti , da ultimo ho provato anche


Codice: [Seleziona]

$newuser = & JFactory::getUser($user['id']);
$newuser->groups = $gruppi;
try{
    $newuser->save(true);
}catch (Exception $e)
{
   
    JLog::add(...);
}
infine facendo print_r($newuser) mi stampa l'utente come dovrebbe essere essere ma poi lato back-end il gruppo é sempre Registred (2).

Ci dev'essere qualcos'altro che non va...

Offline Antonio77

  • Nuovo arrivato
  • *
  • Post: 11
    • Mostra profilo
Re:onUserAfterSave assegnazione gruppi non funziona
« Risposta #6 il: 10 Set 2015, 14:24:58 »
Ho risolto, il problema che avevo implementato anche onUserBeforeSave, all'interno per una serie di condizioni mi tornava false quindi non venivano salvate le modifiche ...

 

Host

Torna su