[change] login widget for the xgen-next (done)

This commit is contained in:
Max 2022-09-21 19:13:17 +08:00
parent e74e1d5a8e
commit 361487b621
9 changed files with 45 additions and 16 deletions

View file

@ -247,12 +247,14 @@ func printApis(silent bool) {
}
}
fmt.Printf(color.CyanString("\n%s(%d)\n", "WebSocket", len(websocket.Upgraders)))
for name, upgrader := range websocket.Upgraders { // WebSocket
fmt.Println(
colorMehtod("GET"),
color.WhiteString(filepath.Join("/websocket", name)),
"\tprocess:", upgrader.Process)
if len(websocket.Upgraders) > 0 {
fmt.Printf(color.CyanString("\n%s(%d)\n", "WebSocket", len(websocket.Upgraders)))
for name, upgrader := range websocket.Upgraders { // WebSocket
fmt.Println(
colorMehtod("GET"),
color.WhiteString(filepath.Join("/websocket", name)),
"\tprocess:", upgrader.Process)
}
}
}

View file

@ -30,6 +30,7 @@ import (
"github.com/yaoapp/yao/task"
"github.com/yaoapp/yao/websocket"
"github.com/yaoapp/yao/widget"
"github.com/yaoapp/yao/widgets"
)
// Load 根据配置加载 API, FLow, Model, Plugin
@ -102,6 +103,14 @@ func Load(cfg config.Config) (err error) {
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
if err != nil {
printErr(cfg.Mode, "Table", err)
@ -119,8 +128,6 @@ func Load(cfg config.Config) (err error) {
importer.Load(cfg) // 加载数据导入 imports
// workflow.Load(cfg) // 加载工作流 workflow
err = api.Load(cfg) // 加载业务接口 API
if err != nil {
printErr(cfg.Mode, "API", err)

View file

@ -9,6 +9,7 @@ import (
_ "github.com/yaoapp/yao/network"
_ "github.com/yaoapp/yao/system"
_ "github.com/yaoapp/yao/user"
_ "github.com/yaoapp/yao/utils"
_ "github.com/yaoapp/yao/xfs"
)

View file

@ -12,6 +12,7 @@ import (
func init() {
gou.RegisterProcessHandler("xiang.user.Captcha", ProcessCaptcha)
gou.RegisterProcessHandler("xiang.user.Login", ProcessLogin)
gou.AliasProcess("xiang.user.Login", "yao.admin.Login")
}
// ProcessLogin xiang.user.Login 用户登录

8
utils/process.go Normal file
View 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")
}

View file

@ -158,7 +158,7 @@ func processXgen(process *gou.Process) interface{} {
if admin, has := login.Logins["admin"]; has {
xgenLogin["entry"]["admin"] = admin.Layout.Entry
xgenLogin["admin"] = map[string]interface{}{
"captcha": "/api/__yao/login/admin/captcha",
"captcha": "/api/__yao/login/admin/captcha?type=digit",
"login": "/api/__yao/login/admin",
}
}
@ -166,7 +166,7 @@ func processXgen(process *gou.Process) interface{} {
if user, has := login.Logins["user"]; has {
xgenLogin["entry"]["user"] = user.Layout.Entry
xgenLogin["user"] = map[string]interface{}{
"captcha": "/api/__yao/login/user/captcha",
"captcha": "/api/__yao/login/user/captcha?type=digit",
"login": "/api/__yao/login/user",
}
}

View file

@ -14,7 +14,7 @@ import (
//
// API:
// 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
@ -74,7 +74,7 @@ func exportAPI() error {
for _, dsl := range Logins {
// login action
process := "yao.user.Login"
process := "yao.admin.Login"
args := []string{":payload"}
if dsl.Action.Process != "" {
process = dsl.Action.Process

View file

@ -23,7 +23,7 @@ func TestLoad(t *testing.T) {
assert.Equal(t, "admin", Logins["admin"].ID)
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, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
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, "管理員登錄", 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, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
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, "管理员登录", 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, "yao.utils.Captcha", Logins["admin"].Layout.Captcha)
assert.Equal(t, "/images/admin-cover.png", Logins["admin"].Layout.Cover)

View file

@ -9,16 +9,26 @@ import (
// Load the widgets
func Load(cfg config.Config) error {
// login widget
err := login.Load(cfg)
if err != nil {
return err
}
// app login
err = login.Export()
if err != nil {
return err
}
// app widget
err = app.Load(cfg)
if err != nil {
return err
}
err = app.Export()
if err != nil {
return err
}
return nil
}