mirror of
https://github.com/shazow/ssh-chat.git
synced 2025-04-15 00:20:37 +03:00
/op with pubkey.
This commit is contained in:
parent
080b6e8f1b
commit
84df305ddf
@ -216,31 +216,4 @@ func InitCommands(c *Commands) {
|
|||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
c.Add(Command{
|
|
||||||
Op: true,
|
|
||||||
Prefix: "/op",
|
|
||||||
PrefixHelp: "USER",
|
|
||||||
Help: "Mark user as admin.",
|
|
||||||
Handler: func(room *Room, msg CommandMsg) error {
|
|
||||||
if !room.IsOp(msg.From()) {
|
|
||||||
return errors.New("must be op")
|
|
||||||
}
|
|
||||||
|
|
||||||
args := msg.Args()
|
|
||||||
if len(args) != 1 {
|
|
||||||
return errors.New("must specify user")
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Add support for fingerprint-based op'ing. This will
|
|
||||||
// probably need to live in host land.
|
|
||||||
member, ok := room.MemberById(args[0])
|
|
||||||
if !ok {
|
|
||||||
return errors.New("user not found")
|
|
||||||
}
|
|
||||||
|
|
||||||
member.Op = true
|
|
||||||
return nil
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
30
host.go
30
host.go
@ -400,4 +400,34 @@ func (h *Host) InitCommands(c *chat.Commands) {
|
|||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
c.Add(chat.Command{
|
||||||
|
Op: true,
|
||||||
|
Prefix: "/op",
|
||||||
|
PrefixHelp: "USER",
|
||||||
|
Help: "Set USER as admin.",
|
||||||
|
Handler: func(room *chat.Room, msg chat.CommandMsg) error {
|
||||||
|
if !room.IsOp(msg.From()) {
|
||||||
|
return errors.New("must be op")
|
||||||
|
}
|
||||||
|
|
||||||
|
args := msg.Args()
|
||||||
|
if len(args) != 1 {
|
||||||
|
return errors.New("must specify user")
|
||||||
|
}
|
||||||
|
|
||||||
|
member, ok := room.MemberById(args[0])
|
||||||
|
if !ok {
|
||||||
|
return errors.New("user not found")
|
||||||
|
}
|
||||||
|
member.Op = true
|
||||||
|
id := member.Identifier.(*Identity)
|
||||||
|
h.auth.Op(id.PublicKey())
|
||||||
|
|
||||||
|
body := fmt.Sprintf("Made op by %s.", msg.From().Name())
|
||||||
|
room.Send(chat.NewSystemMsg(body, member.User))
|
||||||
|
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user