2010-11-26 14 views
6

En Lift, toda la construcción ProtoUser es bastante impresionante, increíble lo que hace por ti, la mayoría de las ventajas (como muchas cosas en Lift, lamentablemente) no documentadas.Alternativa al MegaProtoUser en Lift

Solo hay un problema: contiene datos que no necesito e incluso datos que no deseo. Por ejemplo, quiero que mi usuario inicie sesión por un apodo, y no necesito saber su ubicación, localidad o nombre/apellido. Pero al registrarse, solicito información que no se muestra en la página de registro estándar.

Mi primera idea sería volver a escribir mi propio rasgo de usuario, pero luego tendría que volver a escribir todo el código de sesión, autorización, etc. ¿Ya existe una alternativa? ¿O es posible alterar el ProtoUser para tener mis propias páginas de registro e inicio de sesión, así como solo mis datos necesarios?

Gracias por escuchar.

+0

Confirmar esta discusión reciente sobre el grupo liftweb http://groups.google.com/group/liftweb/browse_thread/thread/cf396f89a4304beb/e74683995641e67e?lnk=gst&q=ProtoUser#e74683995641e67e –

Respuesta

3

No estoy seguro de si hay alguna manera fácil de eliminar cualquiera de los campos en ProtoUser pero una opción sería mirar el método fieldOrder en ProtoUser, creo que define los campos que usa protoUser. En cuanto a la muestra encima problema hay una signUpFields método que le permite anular qué campos se requiere en la señal arriba como por lo

override def signupFields = email :: userName :: password :: Nil

Suponiendo que defina su propio objeto de nombre de usuario. También hay un método similar para editFields, esto en realidad no resuelve el problema de eliminar campos de los que sí está informado, pero quizás fieldOrder pueda hacer algo, otra sugerencia que tendré es buscar en el origen del usuario de Proto y ver si puede quizás anular los objetos mapeados y hacer que el mapeador los ignore de alguna manera. Esta es solo una forma de trabajar con Proto User para evitar tener que volver a escribir mucho del código que contiene.

+0

Esto parece funcionar bien para la registrarse, pero cuando edito el usuario, obtengo los mismos campos estándar que antes. Y el registro solo funciona con el correo electrónico ... – Lanbo

+0

sí, hay un método separado llamado editFields para editar la página del usuario. En cuanto a iniciar sesión con el nombre de usuario, no sé cómo cambiarlo. Tendría que anular algunos de los métodos de proto-usuario para eso. – RedbeardTheNinja