sojuctl: Add support for creating admin users
This adds a new flag, `-admin` for creating admin users, which can access admin service commands, among which create-user to create other users on-the-fly. Since the person running the commands in the README will be the local soju administrator, the user they create should be admin as well, hence the README update. git-svn-id: file:///srv/svn/repo/suika/trunk@330 f0ae65fe-ee39-954e-97ec-027ff2717ef4
This commit is contained in:
parent
6a71f953cb
commit
535e85051f
@ -12,7 +12,7 @@ A user-friendly IRC bouncer.
|
||||
|
||||
## Usage
|
||||
|
||||
go run ./cmd/sojuctl create-user <username>
|
||||
go run ./cmd/sojuctl create-user <username> -admin
|
||||
go run ./cmd/soju -listen irc+insecure://127.0.0.1:6667
|
||||
|
||||
Then connect with username `<username>/chat.freenode.net` and join `#soju`.
|
||||
|
@ -15,7 +15,7 @@ import (
|
||||
|
||||
const usage = `usage: sojuctl [-config path] <action> [options...]
|
||||
|
||||
create-user <username> Create a new user
|
||||
create-user <username> [-admin] Create a new user
|
||||
change-password <username> Change password for a user
|
||||
help Show this help message
|
||||
`
|
||||
@ -55,6 +55,10 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
fs := flag.NewFlagSet("", flag.ExitOnError)
|
||||
admin := fs.Bool("admin", false, "make the new user admin")
|
||||
fs.Parse(flag.Args()[2:])
|
||||
|
||||
password, err := readPassword()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to read password: %v", err)
|
||||
@ -68,6 +72,7 @@ func main() {
|
||||
user := soju.User{
|
||||
Username: username,
|
||||
Password: string(hashed),
|
||||
Admin: *admin,
|
||||
}
|
||||
if err := db.StoreUser(&user); err != nil {
|
||||
log.Fatalf("failed to create user: %v", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user