forked from x/icebergs
opt chat
This commit is contained in:
parent
496c042c7c
commit
3d8fd432dc
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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))
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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")
|
|
||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
4
logs.go
4
logs.go
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
meta.go
2
meta.go
@ -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])...)
|
||||||
|
1
misc.go
1
misc.go
@ -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
|
||||||
}
|
}
|
||||||
|
13
render.go
13
render.go
@ -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...)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user