Trigger o Rules per singolo nodo

4 contenuti / 0 new
Ultimo contenuto
Trigger o Rules per singolo nodo

Salve a tutti,
premessa, sul sito ho due categorie di utenti: "A" e "B". Sulla home compare un link "Area riservata" che, cliccandolo, porta ad una view alla quale devono accedere solo gli account con ruolo "B". I permessi li ho già settati senza alcuna difficoltà, e se un utente "A" clicca sul link in home page, al posto della vista compare un blocco apposito contenente un severo monito a lasciare quella pagina (blocco limitato al ruolo "A" e con visualizzazione ristretta solo all'alias della view).

Impedire la visualizzazione però non mi basta: voglio anche potermi accorgere se un utente di tipo "A" tenta di andare nell'area riservata. Ho cercato una soluzione con trigger o rules ma non ci riesco. Con rules posso impostare un "send email" quando viene visualizzato un qualsiasi nodo di un certo tipo di contenuto, ma ciò non fa al caso mio perchè la view non appartiene ad alcun tipo di contenuto, in rules posso selezionare ad esempio Articles, Basic Page ecc ecc, ma non Views. Ho provato anche a impostare tale avviso per il blocco, ma idem: rules non mi permette di associare un'azione tipo "send mail" alla visualizzazione di un blocco. Come posso fare? Per me è molto importante poter sapere immediatamente se un utente di tipo "A" tenta di andare nell'area privata: il tipo "A" sono i miei alunni, e potete ben immaginare la curiosità di tentare di scoprire cosa nasconde di così tanto privato il prof in quell'area riservata (per la cronaca, contiene la mia cartella clinica, gli utenti di tipo "B" servono per il mio medico ecc ecc, così che per qualsiasi evenienza possano avere qualsiasi informazione sanitaria a disposizione senza che io o chi per me debba recuperare a casa le cartelle cartacee e portarle o faxarle o scansionarle...)
Grazie mille!

Drupal Version:

"voglio anche potermi accorgere se un utente di tipo "A" tenta di andare nell'area riservata"
Metti in google:
site:drupal.org/project attempt to log in

ti consiglio
https://www.drupal.org/project/login_activity

Ciao

E rimuovere direttamente il link con l'accesso all'area riesrvata e farlo vedere solamente a quelli con il ruolo pertinente?
puoi usare
https://www.drupal.org/project/menu_item_visibility

oppure
https://www.drupal.org/project/menu_per_role

Non ha molto senso che tu sappia chi ha provato ad entrare ma semplicemente evitare che loro lo provino a fare.
Ad ogno modo quello che chiedi lo si puo fare con rules ma devi conoscere un minimo di php.
L'evento deve essere : DURANTE INIZIALIZZAZIONE DI DRUPAL
Le condizioni sono: il ruolo utente e il path su cui scatenare l'evento. (la condizione del ruolo utente è tra le scelte di rules mentre per il path devi creare una condition in PHP e aggiungere 3 righe di codice)
L'azione è: invio mail (quando invii la mail puoi inserire tutti i dati che vuoi come username, mail, data e ora ecc.)

Ad ogno modo prevenire è meglio che curare!!!!

Grazie mille! Hai ragione, effettivamente prevenire è meglio che curare, quindi ho totalmente separato le cose in questo modo: ho installato login destination e messo il blocco log in in home page: se accede un account con ruolo "A", il modulo lo reindirizza ad una pagina (una sorta di sub home) con i contenuti per il ruolo "A", quindi le varie cose per i miei alunni (lezioni, ecc ecc) se accede un utente con ruolo "B" lo reindirizza ai contenuti per quel ruolo, quindi la mia cartella clinica. Ovviamente tutti i contenuti sono pubblicati con tipi di contenuto differenti in modo da poter distinguere i permessi per ruolo "A" o ruolo "B". In questo modo l'alunno entra sul sito, si trova a dover per prima cosa fare il login (e nella home page c'è solo quello e nient'altro), quindi ad accesso effettuato è reindirizzato ad una pagina con i contenuti didattici in cui non compare alcun link "area riservata". Non avrà dunque la più pallida idea che esista un'area del sito che non lo riguarda, crederà che il sito sia tutto li, quello che vede a login effettuato.