Rename public group URLs to halls

This commit is contained in:
Storm Dragon
2026-05-17 22:22:46 -04:00
parent bda0e548d3
commit 55528b8e62
21 changed files with 312 additions and 312 deletions
+87 -87
View File
@@ -65,25 +65,25 @@ var commands = map[string]command{
command: deletePasswordCmd,
description: "delete a user's password",
},
"list-groups": {
"list-halls": {
command: listGroupsCmd,
description: "list groups",
description: "list halls",
},
"show-group": {
"show-hall": {
command: showGroupCmd,
description: "show group definition",
description: "show hall definition",
},
"create-group": {
"create-hall": {
command: createGroupCmd,
description: "create a group",
description: "create a hall",
},
"update-group": {
"update-hall": {
command: updateGroupCmd,
description: "change a group's definition",
description: "change a hall's definition",
},
"delete-group": {
"delete-hall": {
command: deleteGroupCmd,
description: "delete a group",
description: "delete a hall",
},
"list-users": {
command: listUsersCmd,
@@ -593,7 +593,7 @@ func deleteValue(url string) error {
}
func setPasswordCmd(cmdname string, args []string) {
var groupname, username string
var hallname, username string
var wildcard bool
var password, algorithm string
var iterations, cost, length, saltlen int
@@ -603,7 +603,7 @@ func setPasswordCmd(cmdname string, args []string) {
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.StringVar(&username, "user", "", "user `name`")
cmd.BoolVar(&wildcard, "wildcard", false, "set wildcard user's password")
cmd.StringVar(&password, "password", "", "new `password`")
@@ -622,9 +622,9 @@ func setPasswordCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
@@ -655,12 +655,12 @@ func setPasswordCmd(cmdname string, args []string) {
var u string
if wildcard {
u, err = url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".wildcard-user/.password",
)
} else {
u, err = url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".users", username, ".password",
)
}
@@ -675,7 +675,7 @@ func setPasswordCmd(cmdname string, args []string) {
}
func deletePasswordCmd(cmdname string, args []string) {
var groupname, username string
var hallname, username string
var wildcard bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
@@ -683,7 +683,7 @@ func deletePasswordCmd(cmdname string, args []string) {
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.StringVar(&username, "user", "", "user `name`")
cmd.BoolVar(&wildcard, "wildcard", false, "set wildcard user's password")
cmd.Parse(args)
@@ -693,9 +693,9 @@ func deletePasswordCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
@@ -710,12 +710,12 @@ func deletePasswordCmd(cmdname string, args []string) {
var err error
if wildcard {
u, err = url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".wildcard-user/.password",
)
} else {
u, err = url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".users", username, ".password",
)
}
@@ -796,7 +796,7 @@ func stdinJSON(doit bool) (map[string]any, error) {
}
func createGroupCmd(cmdname string, args []string) {
var groupname string
var hallname string
var unrestrictedTokens, autoSubgroups boolOption
var doJSON bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
@@ -804,7 +804,7 @@ func createGroupCmd(cmdname string, args []string) {
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.Var(&unrestrictedTokens, "unrestricted-tokens",
"allow ordinary users to create tokens",
)
@@ -821,14 +821,14 @@ func createGroupCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
)
if err != nil {
log.Fatalf("Build URL: %v", err)
@@ -848,18 +848,18 @@ func createGroupCmd(cmdname string, args []string) {
err = putJSON(u, data, false)
if err != nil {
log.Fatalf("Create group: %v", err)
log.Fatalf("Create hall: %v", err)
}
}
func deleteGroupCmd(cmdname string, args []string) {
var groupname string
var hallname string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.Parse(args)
if cmd.NArg() != 0 {
@@ -867,14 +867,14 @@ func deleteGroupCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
)
if err != nil {
log.Fatalf("Build URL: %v", err)
@@ -882,12 +882,12 @@ func deleteGroupCmd(cmdname string, args []string) {
err = deleteValue(u)
if err != nil {
log.Fatalf("Delete group: %v", err)
log.Fatalf("Delete hall: %v", err)
}
}
func updateGroupCmd(cmdname string, args []string) {
var groupname string
var hallname string
var unrestrictedTokens, autoSubgroups boolOption
var doJSON bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
@@ -895,7 +895,7 @@ func updateGroupCmd(cmdname string, args []string) {
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.Var(&unrestrictedTokens, "unrestricted-tokens",
"allow ordinary users to create tokens",
)
@@ -913,7 +913,7 @@ func updateGroupCmd(cmdname string, args []string) {
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
)
if err != nil {
log.Fatalf("Build URL: %v", err)
@@ -1007,25 +1007,25 @@ func match(patterns []string, value string) (bool, error) {
}
func listUsersCmd(cmdname string, args []string) {
var groupname string
var hallname string
var long bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
"%v [option...] %v [option...] [pattern...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.BoolVar(&long, "l", false, "display permissions")
cmd.Parse(args)
patterns := cmd.Args()
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
u, err := url.JoinPath(serverURL, "/skald-api/v0/.groups/", groupname,
u, err := url.JoinPath(serverURL, "/skald-api/v0/.halls/", hallname,
".users/")
if err != nil {
log.Fatalf("Build URL: %v", err)
@@ -1069,21 +1069,21 @@ func listUsersCmd(cmdname string, args []string) {
}
}
func userURL(wildcard bool, groupname, username string) (string, error) {
func userURL(wildcard bool, hallname, username string) (string, error) {
if wildcard {
return url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".wildcard-user",
)
}
return url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".users", username,
)
}
func createUserCmd(cmdname string, args []string) {
var groupname, username string
var hallname, username string
var wildcard bool
var permissions stringOption
var doJSON bool
@@ -1092,7 +1092,7 @@ func createUserCmd(cmdname string, args []string) {
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.StringVar(&username, "user", "", "user `name`")
cmd.BoolVar(&wildcard, "wildcard", false, "create the wildcard user")
cmd.Var(&permissions, "permissions",
@@ -1107,9 +1107,9 @@ func createUserCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
@@ -1131,7 +1131,7 @@ func createUserCmd(cmdname string, args []string) {
}
}
u, err := userURL(wildcard, groupname, username)
u, err := userURL(wildcard, hallname, username)
if err != nil {
log.Fatalf("Build URL: %v", err)
}
@@ -1155,7 +1155,7 @@ func createUserCmd(cmdname string, args []string) {
}
func updateUserCmd(cmdname string, args []string) {
var groupname, username string
var hallname, username string
var wildcard bool
var permissions stringOption
var doJSON bool
@@ -1164,7 +1164,7 @@ func updateUserCmd(cmdname string, args []string) {
"%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.StringVar(&username, "user", "", "user `name`")
cmd.BoolVar(&wildcard, "wildcard", false, "update the wildcard user")
cmd.Var(&permissions, "permissions", "permissions")
@@ -1175,7 +1175,7 @@ func updateUserCmd(cmdname string, args []string) {
os.Exit(1)
}
u, err := userURL(wildcard, groupname, username)
u, err := userURL(wildcard, hallname, username)
if err != nil {
log.Fatalf("Build URL: %v", err)
}
@@ -1217,13 +1217,13 @@ func updateUserCmd(cmdname string, args []string) {
}
func deleteUserCmd(cmdname string, args []string) {
var groupname, username string
var hallname, username string
var wildcard bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname, "%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.StringVar(&username, "user", "", "user `name`")
cmd.BoolVar(&wildcard, "wildcard", false, "delete the wildcard user")
cmd.Parse(args)
@@ -1233,9 +1233,9 @@ func deleteUserCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
if hallname == "" {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
@@ -1250,12 +1250,12 @@ func deleteUserCmd(cmdname string, args []string) {
var err error
if wildcard {
u, err = url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".wildcard-user",
)
} else {
u, err = url.JoinPath(
serverURL, "/skald-api/v0/.groups", groupname,
serverURL, "/skald-api/v0/.halls", hallname,
".users", username,
)
}
@@ -1270,13 +1270,13 @@ func deleteUserCmd(cmdname string, args []string) {
}
func showGroupCmd(cmdname string, args []string) {
var groupname string
var hallname string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname,
"%v [option...] %v\n",
os.Args[0], cmdname,
)
cmd.StringVar(&groupname, "group", "", "group `name`")
cmd.StringVar(&hallname, "hall", "", "hall `name`")
cmd.Parse(args)
if cmd.NArg() != 0 {
@@ -1284,11 +1284,11 @@ func showGroupCmd(cmdname string, args []string) {
os.Exit(1)
}
if groupname == "" {
log.Fatal("Option \"-group\" is required.")
if hallname == "" {
log.Fatal("Option \"-hall\" is required.")
}
u, err := url.JoinPath(serverURL, "/skald-api/v0/.groups/", groupname)
u, err := url.JoinPath(serverURL, "/skald-api/v0/.halls/", hallname)
if err != nil {
log.Fatalf("Build URL: %v", err)
}
@@ -1296,7 +1296,7 @@ func showGroupCmd(cmdname string, args []string) {
var description map[string]any
_, err = getJSON(u, &description)
if err != nil {
log.Fatalf("Get group description: %v", err)
log.Fatalf("Get hall description: %v", err)
}
encoder := json.NewEncoder(os.Stdout)
encoder.SetIndent("", " ")
@@ -1315,7 +1315,7 @@ func listGroupsCmd(cmdname string, args []string) {
cmd.Parse(args)
patterns := cmd.Args()
u, err := url.JoinPath(serverURL, "/skald-api/v0/.groups/")
u, err := url.JoinPath(serverURL, "/skald-api/v0/.halls/")
if err != nil {
log.Fatalf("Build URL: %v", err)
}
@@ -1323,7 +1323,7 @@ func listGroupsCmd(cmdname string, args []string) {
var groups []string
_, err = getJSON(u, &groups)
if err != nil {
log.Fatalf("Get groups: %v", err)
log.Fatalf("Get halls: %v", err)
}
sort.Slice(groups, func(i, j int) bool {
return groups[i] < groups[j]
@@ -1343,13 +1343,13 @@ func listGroupsCmd(cmdname string, args []string) {
}
func listTokensCmd(cmdname string, args []string) {
var groupname stringOption
var hallname stringOption
var long bool
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname, "%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.Var(&groupname, "group", "group `name`")
cmd.Var(&hallname, "hall", "hall `name`")
cmd.BoolVar(&long, "l", false, "display token fields")
cmd.Parse(args)
@@ -1358,14 +1358,14 @@ func listTokensCmd(cmdname string, args []string) {
os.Exit(1)
}
if !groupname.set {
if !hallname.set {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups/", groupname.value, ".tokens/",
serverURL, "/skald-api/v0/.halls/", hallname.value, ".tokens/",
)
if err != nil {
@@ -1430,14 +1430,14 @@ func listTokensCmd(cmdname string, args []string) {
}
func createTokenCmd(cmdname string, args []string) {
var groupname stringOption
var hallname stringOption
var username, permissions string
var includeSubgroups boolOption
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname, "%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.Var(&groupname, "group", "group `name`")
cmd.Var(&hallname, "hall", "hall `name`")
cmd.Var(&includeSubgroups, "include-subgroups", "include subgroups")
cmd.StringVar(&username, "user", "", "encode user `name` in token")
cmd.StringVar(&permissions, "permissions", "present", "permissions")
@@ -1448,9 +1448,9 @@ func createTokenCmd(cmdname string, args []string) {
os.Exit(1)
}
if !groupname.set {
if !hallname.set {
fmt.Fprintf(cmd.Output(),
"Option \"-group\" is required\n")
"Option \"-hall\" is required\n")
os.Exit(1)
}
@@ -1469,7 +1469,7 @@ func createTokenCmd(cmdname string, args []string) {
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups/", groupname.value, ".tokens/",
serverURL, "/skald-api/v0/.halls/", hallname.value, ".tokens/",
)
if err != nil {
log.Fatalf("Build URL: %v", err)
@@ -1483,13 +1483,13 @@ func createTokenCmd(cmdname string, args []string) {
}
func revokeTokenCmd(cmdname string, args []string) {
var groupname stringOption
var hallname stringOption
var token string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname, "%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.Var(&groupname, "group", "group `name`")
cmd.Var(&hallname, "hall", "hall `name`")
cmd.StringVar(&token, "token", "", "`token` to delete")
cmd.Parse(args)
@@ -1498,14 +1498,14 @@ func revokeTokenCmd(cmdname string, args []string) {
os.Exit(1)
}
if !groupname.set || token == "" {
if !hallname.set || token == "" {
fmt.Fprintf(cmd.Output(),
"Options \"-group\" and \"-token\" are required\n")
"Options \"-hall\" and \"-token\" are required\n")
os.Exit(1)
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups/", groupname.value,
serverURL, "/skald-api/v0/.halls/", hallname.value,
".tokens", token,
)
if err != nil {
@@ -1522,13 +1522,13 @@ func revokeTokenCmd(cmdname string, args []string) {
}
func deleteTokenCmd(cmdname string, args []string) {
var groupname stringOption
var hallname stringOption
var token string
cmd := flag.NewFlagSet(cmdname, flag.ExitOnError)
setUsage(cmd, cmdname, "%v [option...] %v [option...]\n",
os.Args[0], cmdname,
)
cmd.Var(&groupname, "group", "group `name`")
cmd.Var(&hallname, "hall", "hall `name`")
cmd.StringVar(&token, "token", "", "`token` to delete")
cmd.Parse(args)
@@ -1537,14 +1537,14 @@ func deleteTokenCmd(cmdname string, args []string) {
os.Exit(1)
}
if !groupname.set || token == "" {
if !hallname.set || token == "" {
fmt.Fprintf(cmd.Output(),
"Options \"-group\" and \"-token\" are required\n")
"Options \"-hall\" and \"-token\" are required\n")
os.Exit(1)
}
u, err := url.JoinPath(
serverURL, "/skald-api/v0/.groups/", groupname.value,
serverURL, "/skald-api/v0/.halls/", hallname.value,
".tokens", token,
)
if err != nil {