0

假设我有两个用户模型:

object Customer extends Customer with KeyedMetaMapper[Long, Customer] with MetaMegaProtoUser[Customer]
object User extends User with MetaMegaProtoUser[User]

均来自MegaProtoUser. 一种用于前端,一种仅用于管理员登录,它们完全不同。现在我想我必须将两者都添加到站点地图中:

class Boot {
    def boot {
        val sitemap = List(
            Menu.i("Home") / "index",
            Menu.i("Admin") / "admin" / "index" submenus User.menus
        ) ::: Customer.menus
        LiftRules.setSiteMap(SiteMap(sitemap:_*))
    }
}

对我来说似乎很简单,但它会引发异常:

net.liftweb.sitemap.SiteMapException: Location Login defined twice
    Loc(Login, <function1>, LinkText(<function1>), List(If(<function0>,<function0>), Template(<function0>))) 
and
    Loc(Login, <function1>, LinkText(<function1>), List(LocGroup(WrappedArray(public)),If(<function0>,<function0>), Template(<function0>)))

如何为管理员用户添加第二个登录和用户编辑区域?

4

1 回答 1

2

(通过查看 proto/ProtoUser.scala)覆盖这个:

/** * 如果您的应用程序中有超过 1 个 ProtoUser,则需要区分菜单名称。* 通过更改菜单名称后缀来做到这一点,这样就不会发生名称冲突 */ protected def menuNameSuffix: String = ""

因此,如果您将其设置为“xx”,那么菜单名称将不是 Login,而是 Loginxx。

于 2013-06-03T21:17:00.127 回答