Commit 31dc84d9 authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Implement update-user.

parent b634e494
...@@ -70,6 +70,10 @@ var commands = map[string]command{ ...@@ -70,6 +70,10 @@ var commands = map[string]command{
command: deleteUserCmd, command: deleteUserCmd,
description: "delete a user", description: "delete a user",
}, },
"update-user": {
command: updateUserCmd,
description: "change a user's permissions",
},
} }
func main() { func main() {
...@@ -574,6 +578,49 @@ func createUserCmd(cmdname string, args []string) { ...@@ -574,6 +578,49 @@ func createUserCmd(cmdname string, args []string) {
} }
} }
func updateUserCmd(cmdname string, args []string) {
var groupname string
var permissions string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
"%v [option...] %v [option...] username\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&permissions, "permissions", "", "permissions")
cmd.Parse(args)
if cmd.NArg() != 1 {
cmd.Usage()
os.Exit(1)
}
if permissions == "" {
log.Fatalf("Nothing to do!")
}
perms, err := parsePermissions(permissions)
if err != nil {
log.Fatalf("Parse permissions: %v", err)
}
url, err := url.JoinPath(
serverURL, "/galene-api/v0/.groups", groupname,
".users", cmd.Args()[0],
)
if err != nil {
log.Fatalf("Build URL: %v", err)
}
err = updateJSON(url, func(m map[string]any) map[string]any {
m["permissions"] = perms
return m
})
if err != nil {
log.Fatalf("Create user: %v", err)
}
}
func deleteUserCmd(cmdname string, args []string) { func deleteUserCmd(cmdname string, args []string) {
var groupname string var groupname string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError) cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment