mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-26 01:04:06 +08:00
vps use aaa.login.save
This commit is contained in:
parent
8f125bbd3a
commit
e052bc16e2
@ -1,9 +1,11 @@
|
|||||||
login root root
|
login root root
|
||||||
source etc/local.shy
|
~aaa
|
||||||
|
login load etc/login.txt
|
||||||
~file1
|
~file1
|
||||||
history load etc/history.txt
|
history load etc/history.txt
|
||||||
|
|
||||||
|
source etc/local.shy
|
||||||
|
|
||||||
~shell1
|
~shell1
|
||||||
alias import nfs
|
alias import nfs
|
||||||
alias send send
|
alias send send
|
||||||
|
@ -113,12 +113,14 @@ func (aaa *AAA) Start(m *ctx.Message, arg ...string) bool { // {{{
|
|||||||
from := msg.Option("username")
|
from := msg.Option("username")
|
||||||
m.Log("lark", "%v", msg.Meta["detail"])
|
m.Log("lark", "%v", msg.Meta["detail"])
|
||||||
m.Travel(func(m *ctx.Message, n int) bool {
|
m.Travel(func(m *ctx.Message, n int) bool {
|
||||||
|
m.Log("fuck", "why-%v=%v", m.Cap("username"), msg.Detail(1))
|
||||||
if m.Cap("username") == msg.Detail(1) {
|
if m.Cap("username") == msg.Detail(1) {
|
||||||
|
m.Log("fuck", "why-%v=%v", m.Cap("username"), msg.Detail(1))
|
||||||
m.Confv("lark", strings.Join([]string{from, "-2"}, "."),
|
m.Confv("lark", strings.Join([]string{from, "-2"}, "."),
|
||||||
map[string]interface{}{"time": msg.Time(), "type": "recv", "text": msg.Detail(2)})
|
map[string]interface{}{"time": msg.Time(), "type": "recv", "text": msg.Detail(2)})
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
}, aaa.Context)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -165,7 +167,7 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心",
|
|||||||
"login": &ctx.Command{
|
"login": &ctx.Command{
|
||||||
Name: "login [sessid]|[username password]|[cert certfile]|[pub pubfile]|[key keyfile]|[ip ipstr]|[load|save filename]",
|
Name: "login [sessid]|[username password]|[cert certfile]|[pub pubfile]|[key keyfile]|[ip ipstr]|[load|save filename]",
|
||||||
Help: "用户登录, sessid: 会话ID, username: 用户名, password: 密码, load: 加载用户信息, save: 保存用户信息, filename: 文件名",
|
Help: "用户登录, sessid: 会话ID, username: 用户名, password: 密码, load: 加载用户信息, save: 保存用户信息, filename: 文件名",
|
||||||
Form: map[string]int{"cert": 1, "pub": 1, "key": 1, "ip": 1, "load": 1, "save": 1},
|
Form: map[string]int{"cert": 1, "pub": 1, "key": 1, "ip": 1},
|
||||||
Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||||
if aaa, ok := m.Target().Server.(*AAA); m.Assert(ok) { // {{{
|
if aaa, ok := m.Target().Server.(*AAA); m.Assert(ok) { // {{{
|
||||||
stream := ""
|
stream := ""
|
||||||
@ -213,7 +215,7 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心",
|
|||||||
}
|
}
|
||||||
|
|
||||||
if stream != "" {
|
if stream != "" {
|
||||||
m.Start(m.Confx("aaa_name"), m.Confx("aaa_help"), arg[0], "", aaa.Session(arg[0]))
|
m.Start(arg[0], m.Confx("aaa_help"), arg[0], "", aaa.Session(arg[0]))
|
||||||
m.Cap("stream", stream)
|
m.Cap("stream", stream)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -245,14 +247,17 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心",
|
|||||||
if f, e := os.Open(arg[1]); m.Assert(e) {
|
if f, e := os.Open(arg[1]); m.Assert(e) {
|
||||||
for bio := bufio.NewScanner(f); bio.Scan(); {
|
for bio := bufio.NewScanner(f); bio.Scan(); {
|
||||||
word := strings.SplitN(bio.Text(), ":", 3)
|
word := strings.SplitN(bio.Text(), ":", 3)
|
||||||
m.Spawn().Start(word[0], "用户", word[0], word[1], word[2])
|
msg := m.Spawn()
|
||||||
|
msg.Start(word[0], "用户", word[0], word[1], word[2])
|
||||||
|
msg.Spawn().Cmd("config", "load", fmt.Sprintf("etc/%s.json", word[0]), "lark")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "save":
|
case "save":
|
||||||
if f, e := os.Create(arg[1]); m.Assert(e) {
|
if f, e := os.Create(arg[1]); m.Assert(e) {
|
||||||
m.Travel(func(m *ctx.Message, i int) bool {
|
m.Travel(func(m *ctx.Message, i int) bool {
|
||||||
if i > 0 {
|
if i > 0 && m.Cap("username") != "root" {
|
||||||
f.WriteString(fmt.Sprintf("%s:%s:%s\n", m.Cap("username"), m.Cap("password"), m.Cap("sessid")))
|
f.WriteString(fmt.Sprintf("%s:%s:%s\n", m.Cap("username"), m.Cap("password"), m.Cap("sessid")))
|
||||||
|
m.Spawn().Cmd("config", "save", fmt.Sprintf("etc/%s.json", m.Cap("username")), "lark")
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
@ -276,7 +281,7 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心",
|
|||||||
}, c)
|
}, c)
|
||||||
|
|
||||||
if !find {
|
if !find {
|
||||||
m.Start(m.Confx("aaa_name"), m.Confx("aaa_help"), arg[0], aaa.Password(arg[1]), aaa.Session(arg[0]))
|
m.Start(arg[0], m.Confx("aaa_help"), arg[0], aaa.Password(arg[1]), aaa.Session(arg[0]))
|
||||||
m.Cap("stream", arg[0])
|
m.Cap("stream", arg[0])
|
||||||
m.Echo(m.Cap("sessid"))
|
m.Echo(m.Cap("sessid"))
|
||||||
m.Appendv("aaa", m)
|
m.Appendv("aaa", m)
|
||||||
@ -669,7 +674,11 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心",
|
|||||||
m.Add("append", "friend", k)
|
m.Add("append", "friend", k)
|
||||||
m.Add("append", "time", val["time"])
|
m.Add("append", "time", val["time"])
|
||||||
m.Add("append", "type", val["type"])
|
m.Add("append", "type", val["type"])
|
||||||
m.Add("append", "text", val["text"])
|
if val["type"].(string) == "send" {
|
||||||
|
m.Add("append", "text", fmt.Sprintf("<< %v", val["text"]))
|
||||||
|
} else {
|
||||||
|
m.Add("append", "text", fmt.Sprintf(">> %v", val["text"]))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
@ -687,7 +696,7 @@ var Index = &ctx.Context{Name: "aaa", Help: "认证中心",
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
}, c)
|
||||||
}
|
}
|
||||||
// }}}
|
// }}}
|
||||||
}},
|
}},
|
||||||
|
@ -1628,11 +1628,9 @@ func (m *Message) Confv(key string, args ...interface{}) interface{} { // {{{
|
|||||||
x.Value = args[0]
|
x.Value = args[0]
|
||||||
default:
|
default:
|
||||||
for i := 0; i < len(args); i += 2 {
|
for i := 0; i < len(args); i += 2 {
|
||||||
m.Log("fuck", "b %v", x.Value)
|
|
||||||
if i < len(args)-1 {
|
if i < len(args)-1 {
|
||||||
x.Value = Chain(m, x.Value, args[i], args[i+1])
|
x.Value = Chain(m, x.Value, args[i], args[i+1])
|
||||||
}
|
}
|
||||||
m.Log("fuck", "b %v", x.Value)
|
|
||||||
if i == len(args)-2 {
|
if i == len(args)-2 {
|
||||||
return Chain(m, x.Value, args[len(args)-2])
|
return Chain(m, x.Value, args[len(args)-2])
|
||||||
}
|
}
|
||||||
|
@ -1105,8 +1105,8 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心",
|
|||||||
} // }}}
|
} // }}}
|
||||||
}},
|
}},
|
||||||
"json": &ctx.Command{Name: "json [key value]...", Help: "生成格式化内容, key: 参数名, value: 参数值", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
"json": &ctx.Command{Name: "json [key value]...", Help: "生成格式化内容, key: 参数名, value: 参数值", Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
|
||||||
if len(arg) == 1 {
|
if len(arg) == 1 { // {{{
|
||||||
data := map[string]interface{}{}
|
var data interface{}
|
||||||
e := json.Unmarshal([]byte(arg[0]), &data)
|
e := json.Unmarshal([]byte(arg[0]), &data)
|
||||||
m.Assert(e)
|
m.Assert(e)
|
||||||
|
|
||||||
@ -1119,7 +1119,7 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心",
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(arg) > 1 && arg[0] == "file" {
|
if len(arg) > 1 && arg[0] == "file" {
|
||||||
data := map[string]interface{}{}
|
var data interface{}
|
||||||
f, e := os.Open(arg[1])
|
f, e := os.Open(arg[1])
|
||||||
m.Assert(e)
|
m.Assert(e)
|
||||||
d := json.NewDecoder(f)
|
d := json.NewDecoder(f)
|
||||||
@ -1130,7 +1130,8 @@ var Index = &ctx.Context{Name: "nfs", Help: "存储中心",
|
|||||||
m.Echo(string(buf))
|
m.Echo(string(buf))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
data := map[string]interface{}{} // {{{
|
|
||||||
|
data := map[string]interface{}{}
|
||||||
for _, k := range m.Meta["option"] {
|
for _, k := range m.Meta["option"] {
|
||||||
if v, ok := m.Data[k]; ok {
|
if v, ok := m.Data[k]; ok {
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
Loading…
x
Reference in New Issue
Block a user