可替代Lift中的MegaProtoUser

时间:2010-11-26 12:59:13

标签: scala lift

在Lift中,整个ProtoUser构造非常棒,令人惊叹它对你有什么影响,很多优点(很遗憾,很多东西都没有)没有文档。

只有一个问题:它包含我不需要的数据,甚至包含我不想要的数据。例如,我希望我的用户通过昵称登录,而我不需要知道他的位置,区域设置或名/姓。但在注册时,我需要标准注册页面上未显示的信息。

我的第一个想法是重新编写我自己的用户特征,但之后我将不得不重新编写所有会话代码,授权等。是否已有替代方案?或者是否可以更改ProtoUser以拥有自己的注册和登录页面,以及仅包含我必要的数据?

感谢收听。

1 个答案:

答案 0 :(得分:3)

我不确定是否有任何简单的方法可以删除ProtoUser中的任何字段,但是一个选项是查看ProtoUser中的fieldOrder方法,我相信它定义了protoUser使用的字段。至于注册问题,有一个方法signUpFields,它允许您覆盖注册时需要的字段,如此

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

假设您定义了自己的userName对象。 editFields也有一个类似的方法,这实际上并没有解决它跟踪的字段的问题,但也许fieldOrder可能会做一些事情,另一个建议我是看看Proto用户的来源,看看你是否可以覆盖映射的对象并使映射器以某种方式忽略它们。这仍然是一种解决Proto用户的方法,以避免重写它包含的大量代码。