From afd68e0c0b4fbf900cd660ae7ffa4f97c260308c Mon Sep 17 00:00:00 2001 From: harveyshao Date: Thu, 14 Apr 2022 09:43:50 +0800 Subject: [PATCH] opt oauth --- base/web/spide.go | 2 +- core/code/oauth.go | 6 ++---- data.go | 5 +++++ type.go | 6 +++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/base/web/spide.go b/base/web/spide.go index a31d27fa..5637d374 100644 --- a/base/web/spide.go +++ b/base/web/spide.go @@ -352,7 +352,7 @@ func init() { _spide_create(m, m.Option(mdb.NAME), m.Option(ADDRESS)) }}, "merge": {Name: "merge name path", Help: "添加", Hand: func(m *ice.Message, arg ...string) { - m.Echo(kit.MergeURL(m.Cmd(SPIDE, arg[0]).Append("client.url")+arg[1], arg[2:])) + m.Echo(kit.MergeURL(m.Cmd(SPIDE, arg[0], ice.OptionFields("")).Append("client.url")+arg[1], arg[2:])) }}, }, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if len(arg) < 2 || arg[0] == "" || (len(arg) > 3 && arg[3] == "") { diff --git a/core/code/oauth.go b/core/code/oauth.go index 003f821c..a4a2be06 100644 --- a/core/code/oauth.go +++ b/core/code/oauth.go @@ -24,9 +24,7 @@ func init() { }, Commands: map[string]*ice.Command{ OAUTH: {Name: "oauth hash auto", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{ "config": {Name: "config client_id client_secret redirect_uri", Help: "配置", Hand: func(m *ice.Message, arg ...string) { - m.Config(CLIENT_ID, m.Option(CLIENT_ID)) - m.Config(CLIENT_SECRET, m.Option(CLIENT_SECRET)) - m.Config(REDIRECT_URI, m.Option(REDIRECT_URI)) + m.ConfigOption(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI) }}, "user": {Name: "user", Help: "用户", Hand: func(m *ice.Message, arg ...string) { m.Option(web.SPIDE_HEADER, "Accept", web.ContentJSON, "Authorization", "token "+m.Option(ACCESS_TOKEN)) @@ -40,7 +38,7 @@ func init() { }}, }, mdb.HashAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { if mdb.HashSelect(m, arg...).PushAction("user", ACCESS_TOKEN, mdb.REMOVE); len(arg) == 0 { - m.EchoAnchor(kit.MergeURL2(LOGIN_OAUTH, "authorize", m.ConfigSimple(REDIRECT_URI, CLIENT_ID))) + m.Echo(kit.MergeURL2(LOGIN_OAUTH, "authorize", m.ConfigSimple(REDIRECT_URI, CLIENT_ID))) } }}, "/oauth": {Name: "/oauth", Help: "授权", Action: ice.MergeAction(map[string]*ice.Action{}, ctx.CmdAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { diff --git a/data.go b/data.go index bb8de457..5352b0da 100644 --- a/data.go +++ b/data.go @@ -42,6 +42,11 @@ func (m *Message) ConfigSimple(key ...string) (list []string) { } return } +func (m *Message) ConfigOption(key ...string) { + for _, k := range kit.Split(kit.Join(key, FS)) { + m.Config(k, kit.Select(m.Config(k), m.Option(k))) + } +} func (m *Message) Save(arg ...string) *Message { if len(arg) == 0 { for k := range m.target.Configs { diff --git a/type.go b/type.go index e5d27b04..ce7946bf 100644 --- a/type.go +++ b/type.go @@ -456,7 +456,7 @@ func (m *Message) Search(key string, cb interface{}) *Message { break } - for _, p := range []*Context{m.target, p, m.source} { + for _, p := range []*Context{p, m.target, m.source} { for s := p; s != nil; s = s.context { if cmd, ok := s.Configs[key]; ok { cb(s.context, s, key, cmd) // 查找配置 @@ -508,9 +508,9 @@ func (m *Message) Confv(arg ...interface{}) (val interface{}) { // key sub val } key := kit.Format(arg[0]) - if conf, ok := m.target.Configs[strings.TrimPrefix(key, m.target.Cap(CTX_FOLLOW)+PT)]; ok { + if conf, ok := m.target.Configs[key]; ok { run(conf) - } else if conf, ok := m.source.Configs[strings.TrimPrefix(key, m.source.Cap(CTX_FOLLOW)+PT)]; ok { + } else if conf, ok := m.source.Configs[key]; ok { run(conf) } else { m.Search(key, func(p *Context, s *Context, key string, conf *Config) { run(conf) })