AuthorizationFetchers.kt
package io.github.lishangbu.avalon.auth.repository
import io.github.lishangbu.avalon.auth.entity.*
import org.babyfish.jimmer.sql.kt.fetcher.newFetcher
/** 认证模块常用抓取器。 */
internal object AuthorizationFetchers {
/** 用户及角色抓取器。 */
val USER_WITH_ROLES =
newFetcher(User::class).`by` {
allScalarFields()
roles {
allScalarFields()
permissions {
allScalarFields()
menu {
allScalarFields()
}
}
}
}
/** 角色及菜单抓取器。 */
val ROLE_WITH_MENUS =
newFetcher(Role::class).`by` {
allScalarFields()
menus {
allScalarFields()
parent {
allScalarFields()
}
}
}
/** 角色的菜单与权限点抓取器。 */
val ROLE_WITH_BINDINGS =
newFetcher(Role::class).`by` {
allScalarFields()
menus {
allScalarFields()
parent {
allScalarFields()
}
}
permissions {
allScalarFields()
menu {
allScalarFields()
}
}
}
/** 菜单标量字段抓取器。 */
val MENU =
newFetcher(Menu::class).`by` {
allScalarFields()
parent {
allScalarFields()
}
}
/** 权限点及所属菜单抓取器。 */
val PERMISSION_WITH_MENU =
newFetcher(Permission::class).`by` {
allScalarFields()
menu {
allScalarFields()
parent {
allScalarFields()
}
}
}
}