Sto lavorando a un plugin che deve aggiungere dati al serializzatore dell’utente. Funziona!
Ma ho bisogno di aggiungerlo al serializzatore dell’utente solo per lo staff e per l’utente corrente.
Ma… ripensandoci, forse ho bisogno di queste informazioni solo nella pagina del profilo utente, quindi forse dovrei metterle altrove?
add_to_serializer(:user, :manager_status) {
# TODO: includi solo per l'utente corrente e lo staff
return object.manager_status
}
Attualmente sto visualizzando questo nella pagina del profilo utente. Vorrei sapere come creare una pagina del profilo separata con solo queste informazioni. Link a qualcosa che lo faccia sarebbero ottimi.
Dovresti creare una nuova rotta e assicurarti che sia protetta in modo che solo lo staff e l’utente corrente possano visualizzarla. Probabilmente è molto più complesso che serializzarla dove ti trovi ora.
Penso che tu possa farlo in questo modo:
add_to_serializer(:user, :manager_status) {
return object.manager_status if object.admin || object.staff
}
A memoria, potresti dover fare un po’ di manovre per recuperare l’oggetto dell’utente corrente e verificare se corrisponde.
Sì. Non riesco a capire come ottenere l’utente corrente. Penso che la tua soluzione lo aggiunga solo se l’utente (ma non quello corrente) è un amministratore.
Sembra che questi siano i droidi che stavo cercando
add_to_serializer(:post, :user_xxx, false) {
#object.user.custom_fields['xxx'] se object.user && scope.is_admin?
#object.user.custom_fields['xxx'] se object.user && scope.is_moderator?
# Lo staff consentirĂ agli Amministratori e ai Moderatori
object.user.custom_fields['xxx'] se object.user && scope.is_staff?
}