1
0
forked from x/icebergs
This commit is contained in:
harveyshao 2022-11-16 13:13:16 +08:00
parent 496c042c7c
commit 3d8fd432dc
9 changed files with 41 additions and 29 deletions

View File

@ -49,7 +49,6 @@ func _share_cache(m *ice.Message, arg ...string) {
} }
} else { } else {
msg := m.Cmd(CACHE, arg[0]) msg := m.Cmd(CACHE, arg[0])
m.Debug("what %v", msg.FormatMeta())
m.RenderDownload(msg.Append(nfs.FILE), msg.Append(mdb.TYPE), msg.Append(mdb.NAME)) m.RenderDownload(msg.Append(nfs.FILE), msg.Append(mdb.TYPE), msg.Append(mdb.NAME))
} }
} }

View File

@ -205,7 +205,7 @@ func _space_fork(m *ice.Message) {
text := kit.Select(s.RemoteAddr().String(), m.Option(ice.MSG_USERADDR)) text := kit.Select(s.RemoteAddr().String(), m.Option(ice.MSG_USERADDR))
name := strings.ToLower(m.Option(mdb.NAME, kit.ReplaceAll(kit.Select(text, m.Option(mdb.NAME)), ".", "_", ":", "_"))) name := strings.ToLower(m.Option(mdb.NAME, kit.ReplaceAll(kit.Select(text, m.Option(mdb.NAME)), ".", "_", ":", "_")))
kind := kit.Select(WORKER, m.Option(mdb.TYPE)) kind := kit.Select(WORKER, m.Option(mdb.TYPE))
args := append([]string{mdb.TYPE, kind, mdb.NAME, name}, m.OptionSimple(SHARE, RIVER)...) args := append([]string{mdb.TYPE, kind, mdb.NAME, name}, m.OptionSimple(SHARE, RIVER, ice.CMD)...)
m.Go(func() { m.Go(func() {
mdb.HashCreate(m, mdb.TEXT, kit.Select(text, m.Option(mdb.TEXT)), args, kit.Dict(mdb.TARGET, s)) mdb.HashCreate(m, mdb.TEXT, kit.Select(text, m.Option(mdb.TEXT)), args, kit.Dict(mdb.TARGET, s))

View File

@ -1,30 +1,33 @@
chat.go chat.go
chat.shy chat.shy
header.go header.go
action.go
search.go
footer.go footer.go
search.go
action.go
river.go river.go
storm.go storm.go
template.go template.go
pod.go pod.go
cmd.go cmd.go
div.go
website.go
topic.go
grant.go grant.go
sso.go sso.go
oauth oauth
room.go
meet.go
scan.go scan.go
paste.go paste.go
media.go
files.go
trans.go
iframe.go iframe.go
keyboard.go
location.go location.go
location.shy location.shy
files.go
trans.go
media.go
topic.go
div.go
website.go
keyboard.go
room.go
meet.go

View File

@ -3,22 +3,31 @@ package chat
import ( import (
ice "shylinux.com/x/icebergs" ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/aaa" "shylinux.com/x/icebergs/base/aaa"
"shylinux.com/x/icebergs/base/mdb" "shylinux.com/x/icebergs/base/cli"
"shylinux.com/x/icebergs/base/web" "shylinux.com/x/icebergs/base/web"
) )
const GRANT = "grant" const GRANT = "grant"
func init() { func init() {
const CONFIRM = "confirm"
Index.MergeCommands(ice.Commands{ Index.MergeCommands(ice.Commands{
GRANT: {Name: "grant space id auto", Help: "授权", Actions: ice.MergeActions(ice.Actions{ GRANT: {Name: "grant space auto", Help: "授权", Actions: ice.MergeActions(ice.Actions{
"confirm": {Help: "通过", Hand: func(m *ice.Message, arg ...string) { CONFIRM: {Help: "授权", Hand: func(m *ice.Message, arg ...string) {
if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin) {
return
}
if m.Warn(m.Option(web.SPACE) == "", ice.ErrNotValid, web.SPACE) {
return
}
if m.Warn(m.CmdAppend(web.SPACE, m.Option(web.SPACE), ice.CMD) != cli.PWD, ice.ErrNotFound, m.Option(web.SPACE)) {
return
}
m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME))) m.Cmd(web.SPACE, m.Option(web.SPACE), ice.MSG_SESSID, aaa.SessCreate(m, m.Option(ice.MSG_USERNAME)))
m.ProcessLocation(web.MergeURL2(m, ice.PS)) m.ProcessLocation(web.MergeURL2(m, ice.PS))
}}, }},
}, mdb.HashAction(mdb.SHORT, web.SPACE, mdb.FIELD, "time,space,userrole,username,usernick"), aaa.RoleAction("confirm")), Hand: func(m *ice.Message, arg ...string) { }, aaa.RoleAction(CONFIRM)), Hand: func(m *ice.Message, arg ...string) {
m.Echo("请授权: %s 访问设备: %s", arg[0], ice.Info.HostName).Echo(ice.NL) m.Echo("请授权: %s 访问设备: %s", arg[0], ice.Info.HostName).Echo(ice.NL).EchoButton(CONFIRM)
m.EchoButton("confirm")
}}, }},
}) })
} }

View File

@ -55,7 +55,6 @@ func _xterm_get(m *ice.Message, h string) _xterm {
if n, e := tty.Read(buf); !m.Warn(e) && e == nil { if n, e := tty.Read(buf); !m.Warn(e) && e == nil {
m.Option(ice.MSG_DAEMON, mdb.HashSelectField(m, h, "view")) m.Option(ice.MSG_DAEMON, mdb.HashSelectField(m, h, "view"))
m.Option(mdb.TEXT, string(buf[:n])) m.Option(mdb.TEXT, string(buf[:n]))
m.Debug("what %v", m.FormatMeta())
web.PushNoticeGrow(m) web.PushNoticeGrow(m)
} else { } else {
break break

View File

@ -116,10 +116,14 @@ func (m *Message) Warn(err Any, arg ...Any) bool {
if !m.IsErr() { if !m.IsErr() {
if m.error(arg...); len(arg) > 0 { if m.error(arg...); len(arg) > 0 {
switch kit.Format(arg[0]) { switch kit.Format(arg[0]) {
case ErrNotValid:
m.RenderStatusBadRequest(str)
case ErrNotLogin: case ErrNotLogin:
m.RenderStatusUnauthorized(str) m.RenderStatusUnauthorized(str)
case ErrNotRight: case ErrNotRight:
m.RenderStatusForbidden(str) m.RenderStatusForbidden(str)
case ErrNotFound:
m.RenderStatusNotFound(str)
} }
} }
} }

View File

@ -225,8 +225,8 @@ func (m *Message) Copy(msg *Message, arg ...string) *Message {
m.data[k] = v m.data[k] = v
} else { } else {
m.Set(MSG_OPTION, k) m.Set(MSG_OPTION, k)
m.Add(MSG_OPTION, kit.Simple(k, msg.meta[k])...)
} }
m.Add(MSG_OPTION, kit.Simple(k, msg.meta[k])...)
} }
for _, k := range msg.meta[MSG_APPEND] { for _, k := range msg.meta[MSG_APPEND] {
m.Add(MSG_APPEND, kit.Simple(k, msg.meta[k])...) m.Add(MSG_APPEND, kit.Simple(k, msg.meta[k])...)

View File

@ -347,7 +347,6 @@ func (c *Context) _action(m *Message, cmd *Command, key string, sub string, h *A
} }
m.Log(LOG_CMDS, "%s.%s %s %d %v", c.Name, key, sub, len(arg), arg, m.Log(LOG_CMDS, "%s.%s %s %d %v", c.Name, key, sub, len(arg), arg,
logs.FileLineMeta(kit.Select(m._target, m._source, m.target.Name == MDB))) logs.FileLineMeta(kit.Select(m._target, m._source, m.target.Name == MDB)))
h.Hand(m, arg...) h.Hand(m, arg...)
return m return m
} }

View File

@ -58,17 +58,16 @@ func (m *Message) Render(cmd string, args ...Any) *Message {
} }
m.Optionv(MSG_OUTPUT, cmd) m.Optionv(MSG_OUTPUT, cmd)
m.Optionv(MSG_ARGS, args) m.Optionv(MSG_ARGS, args)
return m return m
} }
func (m *Message) RenderTemplate(args ...Any) *Message { func (m *Message) RenderTemplate(args ...Any) *Message {
return m.Render(RENDER_TEMPLATE, args...) return m.Render(RENDER_TEMPLATE, args...)
} }
func (m *Message) RenderStatus(status int) *Message { func (m *Message) RenderStatus(status int, arg ...string) *Message {
return m.Render(RENDER_STATUS, status) return m.Render(RENDER_STATUS, status, arg)
} }
func (m *Message) RenderStatusBadRequest() *Message { func (m *Message) RenderStatusBadRequest(arg ...string) *Message {
return m.Render(RENDER_STATUS, http.StatusBadRequest) return m.Render(RENDER_STATUS, http.StatusBadRequest, arg)
} }
func (m *Message) RenderStatusUnauthorized(arg ...string) *Message { func (m *Message) RenderStatusUnauthorized(arg ...string) *Message {
return m.Render(RENDER_STATUS, http.StatusUnauthorized, arg) return m.Render(RENDER_STATUS, http.StatusUnauthorized, arg)
@ -76,8 +75,8 @@ func (m *Message) RenderStatusUnauthorized(arg ...string) *Message {
func (m *Message) RenderStatusForbidden(arg ...string) *Message { func (m *Message) RenderStatusForbidden(arg ...string) *Message {
return m.Render(RENDER_STATUS, http.StatusForbidden, arg) return m.Render(RENDER_STATUS, http.StatusForbidden, arg)
} }
func (m *Message) RenderStatusNotFound() *Message { func (m *Message) RenderStatusNotFound(arg ...string) *Message {
return m.Render(RENDER_STATUS, http.StatusNotFound) return m.Render(RENDER_STATUS, http.StatusNotFound, arg)
} }
func (m *Message) RenderRedirect(args ...Any) *Message { func (m *Message) RenderRedirect(args ...Any) *Message {
return m.Render(RENDER_REDIRECT, args...) return m.Render(RENDER_REDIRECT, args...)