Estoy trabajando en un plugin que necesita agregar cosas al serializador de usuarios. ¡Funciona!
Pero necesito agregarlo al serializador de usuarios solo para el personal y el usuario actual.
Pero… retrocediendo un poco, quizás realmente necesito esta información solo en la página de perfil del usuario, así que ¿quizás debería ponerla en otro lugar?
add_to_serializer(:user, :manager_status) {
# TODO: incluir solo para el usuario actual y el personal
return object.manager_status
}
Actualmente estoy mostrando esto en la página de perfil del usuario. Me gustaría saber cómo crear una página de perfil separada con solo esta información. Enlaces a algo que haga eso serían geniales.
Tendrías que crear una nueva ruta y asegurarte de que esté protegida para que solo el personal y el usuario actual puedan verla. Probablemente sea mucho más complejo que serializarlo donde estás ahora.
Creo que puedes hacer esto de algo así:
add_to_serializer(:user, :manager_status) {
return object.manager_status if object.admin || object.staff
}
Por lo que sé de memoria, es posible que tengas que hacer un pequeño truco para obtener el objeto del usuario actual y verificar si coincide.
add_to_serializer(:post, :user_xxx, false) {
#object.user.custom_fields['xxx'] if object.user && scope.is_admin?
#object.user.custom_fields['xxx'] if object.user && scope.is_moderator?
# El personal permitirá a los administradores y moderadores
object.user.custom_fields['xxx'] if object.user && scope.is_staff?
}