[change] login widget for the xgen-next (done)
This commit is contained in:
parent
e74e1d5a8e
commit
361487b621
9 changed files with 45 additions and 16 deletions
|
|
@ -247,6 +247,7 @@ func printApis(silent bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(websocket.Upgraders) > 0 {
|
||||||
fmt.Printf(color.CyanString("\n%s(%d)\n", "WebSocket", len(websocket.Upgraders)))
|
fmt.Printf(color.CyanString("\n%s(%d)\n", "WebSocket", len(websocket.Upgraders)))
|
||||||
for name, upgrader := range websocket.Upgraders { // WebSocket
|
for name, upgrader := range websocket.Upgraders { // WebSocket
|
||||||
fmt.Println(
|
fmt.Println(
|
||||||
|
|
@ -254,6 +255,7 @@ func printApis(silent bool) {
|
||||||
color.WhiteString(filepath.Join("/websocket", name)),
|
color.WhiteString(filepath.Join("/websocket", name)),
|
||||||
"\tprocess:", upgrader.Process)
|
"\tprocess:", upgrader.Process)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func colorMehtod(method string) string {
|
func colorMehtod(method string) string {
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import (
|
||||||
"github.com/yaoapp/yao/task"
|
"github.com/yaoapp/yao/task"
|
||||||
"github.com/yaoapp/yao/websocket"
|
"github.com/yaoapp/yao/websocket"
|
||||||
"github.com/yaoapp/yao/widget"
|
"github.com/yaoapp/yao/widget"
|
||||||
|
"github.com/yaoapp/yao/widgets"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Load 根据配置加载 API, FLow, Model, Plugin
|
// Load 根据配置加载 API, FLow, Model, Plugin
|
||||||
|
|
@ -102,6 +103,14 @@ func Load(cfg config.Config) (err error) {
|
||||||
printErr(cfg.Mode, "Plugin", err)
|
printErr(cfg.Mode, "Plugin", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// XGEN NEXT
|
||||||
|
if os.Getenv("YAO_UI") == "XGEN-NEXT" {
|
||||||
|
err = widgets.Load(cfg) // Load build-in widgets
|
||||||
|
if err != nil {
|
||||||
|
printErr(cfg.Mode, "Widgets", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = table.Load(cfg) // 加载数据表格 table
|
err = table.Load(cfg) // 加载数据表格 table
|
||||||
if err != nil {
|
if err != nil {
|
||||||
printErr(cfg.Mode, "Table", err)
|
printErr(cfg.Mode, "Table", err)
|
||||||
|
|
@ -119,8 +128,6 @@ func Load(cfg config.Config) (err error) {
|
||||||
|
|
||||||
importer.Load(cfg) // 加载数据导入 imports
|
importer.Load(cfg) // 加载数据导入 imports
|
||||||
|
|
||||||
// workflow.Load(cfg) // 加载工作流 workflow
|
|
||||||
|
|
||||||
err = api.Load(cfg) // 加载业务接口 API
|
err = api.Load(cfg) // 加载业务接口 API
|
||||||
if err != nil {
|
if err != nil {
|
||||||
printErr(cfg.Mode, "API", err)
|
printErr(cfg.Mode, "API", err)
|
||||||
|
|
|
||||||
1
main.go
1
main.go
|
|
@ -9,6 +9,7 @@ import (
|
||||||
_ "github.com/yaoapp/yao/network"
|
_ "github.com/yaoapp/yao/network"
|
||||||
_ "github.com/yaoapp/yao/system"
|
_ "github.com/yaoapp/yao/system"
|
||||||
_ "github.com/yaoapp/yao/user"
|
_ "github.com/yaoapp/yao/user"
|
||||||
|
_ "github.com/yaoapp/yao/utils"
|
||||||
_ "github.com/yaoapp/yao/xfs"
|
_ "github.com/yaoapp/yao/xfs"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import (
|
||||||
func init() {
|
func init() {
|
||||||
gou.RegisterProcessHandler("xiang.user.Captcha", ProcessCaptcha)
|
gou.RegisterProcessHandler("xiang.user.Captcha", ProcessCaptcha)
|
||||||
gou.RegisterProcessHandler("xiang.user.Login", ProcessLogin)
|
gou.RegisterProcessHandler("xiang.user.Login", ProcessLogin)
|
||||||
|
gou.AliasProcess("xiang.user.Login", "yao.admin.Login")
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProcessLogin xiang.user.Login 用户登录
|
// ProcessLogin xiang.user.Login 用户登录
|
||||||
|
|
|
||||||
8
utils/process.go
Normal file
8
utils/process.go
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
package utils
|
||||||
|
|
||||||
|
import "github.com/yaoapp/gou"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
gou.AliasProcess("xiang.helper.Captcha", "yao.utils.Captcha")
|
||||||
|
gou.AliasProcess("xiang.helper.CaptchaValidate", "yao.utils.CaptchaValidate")
|
||||||
|
}
|
||||||
|
|
@ -158,7 +158,7 @@ func processXgen(process *gou.Process) interface{} {
|
||||||
if admin, has := login.Logins["admin"]; has {
|
if admin, has := login.Logins["admin"]; has {
|
||||||
xgenLogin["entry"]["admin"] = admin.Layout.Entry
|
xgenLogin["entry"]["admin"] = admin.Layout.Entry
|
||||||
xgenLogin["admin"] = map[string]interface{}{
|
xgenLogin["admin"] = map[string]interface{}{
|
||||||
"captcha": "/api/__yao/login/admin/captcha",
|
"captcha": "/api/__yao/login/admin/captcha?type=digit",
|
||||||
"login": "/api/__yao/login/admin",
|
"login": "/api/__yao/login/admin",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -166,7 +166,7 @@ func processXgen(process *gou.Process) interface{} {
|
||||||
if user, has := login.Logins["user"]; has {
|
if user, has := login.Logins["user"]; has {
|
||||||
xgenLogin["entry"]["user"] = user.Layout.Entry
|
xgenLogin["entry"]["user"] = user.Layout.Entry
|
||||||
xgenLogin["user"] = map[string]interface{}{
|
xgenLogin["user"] = map[string]interface{}{
|
||||||
"captcha": "/api/__yao/login/user/captcha",
|
"captcha": "/api/__yao/login/user/captcha?type=digit",
|
||||||
"login": "/api/__yao/login/user",
|
"login": "/api/__yao/login/user",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import (
|
||||||
//
|
//
|
||||||
// API:
|
// API:
|
||||||
// GET /api/__yao/login/:id/captcha -> Default process: yao.utils.Captcha :query
|
// GET /api/__yao/login/:id/captcha -> Default process: yao.utils.Captcha :query
|
||||||
// POST /api/__yao/login/:id -> Default process: yao.user.Login :payload
|
// POST /api/__yao/login/:id -> Default process: yao.admin.Login :payload
|
||||||
//
|
//
|
||||||
|
|
||||||
// Logins the loaded login widgets
|
// Logins the loaded login widgets
|
||||||
|
|
@ -74,7 +74,7 @@ func exportAPI() error {
|
||||||
for _, dsl := range Logins {
|
for _, dsl := range Logins {
|
||||||
|
|
||||||
// login action
|
// login action
|
||||||
process := "yao.user.Login"
|
process := "yao.admin.Login"
|
||||||
args := []string{":payload"}
|
args := []string{":payload"}
|
||||||
if dsl.Action.Process != "" {
|
if dsl.Action.Process != "" {
|
||||||
process = dsl.Action.Process
|
process = dsl.Action.Process
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ func TestLoad(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, "admin", Logins["admin"].ID)
|
assert.Equal(t, "admin", Logins["admin"].ID)
|
||||||
assert.Equal(t, "Admin Login", Logins["admin"].Name)
|
assert.Equal(t, "Admin Login", Logins["admin"].Name)
|
||||||
assert.Equal(t, "yao.user.login", Logins["admin"].Action.Process)
|
assert.Equal(t, "yao.admin.login", Logins["admin"].Action.Process)
|
||||||
assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args)
|
assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args)
|
||||||
assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
|
assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
|
||||||
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)
|
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)
|
||||||
|
|
@ -55,7 +55,7 @@ func TestLoadHK(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, "admin", Logins["admin"].ID)
|
assert.Equal(t, "admin", Logins["admin"].ID)
|
||||||
assert.Equal(t, "管理員登錄", Logins["admin"].Name)
|
assert.Equal(t, "管理員登錄", Logins["admin"].Name)
|
||||||
assert.Equal(t, "yao.user.login", Logins["admin"].Action.Process)
|
assert.Equal(t, "yao.admin.login", Logins["admin"].Action.Process)
|
||||||
assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args)
|
assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args)
|
||||||
assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
|
assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
|
||||||
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)
|
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)
|
||||||
|
|
@ -87,7 +87,7 @@ func TestLoadCN(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, "admin", Logins["admin"].ID)
|
assert.Equal(t, "admin", Logins["admin"].ID)
|
||||||
assert.Equal(t, "管理员登录", Logins["admin"].Name)
|
assert.Equal(t, "管理员登录", Logins["admin"].Name)
|
||||||
assert.Equal(t, "yao.user.login", Logins["admin"].Action.Process)
|
assert.Equal(t, "yao.admin.login", Logins["admin"].Action.Process)
|
||||||
assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args)
|
assert.Equal(t, []string{":payload"}, Logins["admin"].Action.Args)
|
||||||
assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
|
assert.Equal(t, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
|
||||||
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)
|
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,26 @@ import (
|
||||||
// Load the widgets
|
// Load the widgets
|
||||||
func Load(cfg config.Config) error {
|
func Load(cfg config.Config) error {
|
||||||
|
|
||||||
|
// login widget
|
||||||
err := login.Load(cfg)
|
err := login.Load(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// app login
|
err = login.Export()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// app widget
|
||||||
err = app.Load(cfg)
|
err = app.Load(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
err = app.Export()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue