59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strconv"
|
|
"text/tabwriter"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/gtsteffaniak/filebrowser/users"
|
|
)
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(usersCmd)
|
|
}
|
|
|
|
var usersCmd = &cobra.Command{
|
|
Use: "users",
|
|
Short: "Users management utility",
|
|
Long: `Users management utility.`,
|
|
Args: cobra.NoArgs,
|
|
}
|
|
|
|
func printUsers(usrs []*users.User) {
|
|
w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) //nolint:gomnd
|
|
fmt.Fprintln(w, "ID\tUsername\tScope\tLocale\tV. Mode\tS.Click\tAdmin\tExecute\tCreate\tRename\tModify\tDelete\tShare\tDownload\tPwd Lock")
|
|
|
|
for _, u := range usrs {
|
|
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",
|
|
u.ID,
|
|
u.Username,
|
|
u.Scope,
|
|
u.Locale,
|
|
u.ViewMode,
|
|
u.SingleClick,
|
|
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,
|
|
)
|
|
}
|
|
|
|
w.Flush()
|
|
}
|
|
|
|
func parseUsernameOrID(arg string) (username string, id uint) {
|
|
id64, err := strconv.ParseUint(arg, 10, 64)
|
|
if err != nil {
|
|
return arg, 0
|
|
}
|
|
return "", uint(id64)
|
|
}
|