2019-01-05 22:44:33 +00:00
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
2019-01-06 13:21:31 +00:00
|
|
|
"strconv"
|
2019-01-05 22:44:33 +00:00
|
|
|
"text/tabwriter"
|
|
|
|
|
|
|
|
"github.com/spf13/cobra"
|
2020-05-31 23:12:36 +00:00
|
|
|
|
2023-06-15 01:08:09 +00:00
|
|
|
"github.com/gtsteffaniak/filebrowser/users"
|
2019-01-05 22:44:33 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var usersCmd = &cobra.Command{
|
2019-02-15 11:54:44 +00:00
|
|
|
Use: "users",
|
|
|
|
Short: "Users management utility",
|
|
|
|
Long: `Users management utility.`,
|
|
|
|
Args: cobra.NoArgs,
|
2019-01-05 22:44:33 +00:00
|
|
|
}
|
|
|
|
|
2020-05-31 23:12:36 +00:00
|
|
|
func printUsers(usrs []*users.User) {
|
2021-07-26 10:00:05 +00:00
|
|
|
w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) //nolint:gomnd
|
2020-11-23 18:06:37 +00:00
|
|
|
fmt.Fprintln(w, "ID\tUsername\tScope\tLocale\tV. Mode\tS.Click\tAdmin\tExecute\tCreate\tRename\tModify\tDelete\tShare\tDownload\tPwd Lock")
|
2019-01-05 22:44:33 +00:00
|
|
|
|
2020-05-31 23:12:36 +00:00
|
|
|
for _, u := range usrs {
|
2020-11-23 18:06:37 +00:00
|
|
|
fmt.Fprintf(w, "%d\t%s\t%s\t%s\t%s\t%t\t%t\t%t\t%t\t%t\t%t\t%t\t%t\t%t\t%t\t\n",
|
2020-05-31 23:12:36 +00:00
|
|
|
u.ID,
|
|
|
|
u.Username,
|
|
|
|
u.Scope,
|
|
|
|
u.Locale,
|
|
|
|
u.ViewMode,
|
2020-11-23 18:06:37 +00:00
|
|
|
u.SingleClick,
|
2020-05-31 23:12:36 +00:00
|
|
|
u.Perm.Admin,
|
|
|
|
u.Perm.Execute,
|
|
|
|
u.Perm.Create,
|
|
|
|
u.Perm.Rename,
|
|
|
|
u.Perm.Modify,
|
|
|
|
u.Perm.Delete,
|
|
|
|
u.Perm.Share,
|
|
|
|
u.Perm.Download,
|
|
|
|
u.LockPassword,
|
2019-01-05 22:44:33 +00:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
w.Flush()
|
|
|
|
}
|
|
|
|
|
2020-05-31 23:12:36 +00:00
|
|
|
func parseUsernameOrID(arg string) (username string, id uint) {
|
2023-02-16 08:11:12 +00:00
|
|
|
id64, err := strconv.ParseUint(arg, 10, 64)
|
2019-01-06 13:21:31 +00:00
|
|
|
if err != nil {
|
|
|
|
return arg, 0
|
2019-01-05 22:44:33 +00:00
|
|
|
}
|
2020-05-31 23:12:36 +00:00
|
|
|
return "", uint(id64)
|
2019-01-05 22:44:33 +00:00
|
|
|
}
|