| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package cmd
- import (
- "fmt"
- "github.com/codegangsta/cli"
- "github.com/grafana/grafana/pkg/bus"
- "github.com/grafana/grafana/pkg/log"
- m "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/services/sqlstore"
- "github.com/grafana/grafana/pkg/setting"
- "os"
- "text/tabwriter"
- )
- var ListAccounts = cli.Command{
- Name: "account",
- Usage: "list accounts",
- Description: "Lists the accounts in the system",
- Action: listAccounts,
- Flags: []cli.Flag{
- cli.StringFlag{
- Name: "config",
- Value: "grafana.ini",
- Usage: "path to config file",
- },
- },
- }
- var CreateAccount = cli.Command{
- Name: "account:create",
- Usage: "create a new account",
- Description: "Creates a new account",
- Action: createAccount,
- Flags: []cli.Flag{
- cli.StringFlag{
- Name: "config",
- Value: "grafana.ini",
- Usage: "path to config file",
- },
- },
- }
- var DeleteAccount = cli.Command{
- Name: "account:delete",
- Usage: "delete an existing account",
- Description: "Deletes an existing account",
- Action: deleteAccount,
- Flags: []cli.Flag{
- cli.StringFlag{
- Name: "config",
- Value: "grafana.ini",
- Usage: "path to config file",
- },
- },
- }
- func listAccounts(c *cli.Context) {
- setting.NewConfigContext()
- sqlstore.NewEngine()
- sqlstore.EnsureAdminUser()
- accountsQuery := m.GetAccountsQuery{}
- if err := bus.Dispatch(&accountsQuery); err != nil {
- log.ConsoleFatalf("Failed to find accounts: %s", err)
- }
- w := tabwriter.NewWriter(os.Stdout, 20, 1, 4, ' ', 0)
- fmt.Fprintf(w, "ID\tNAME\n")
- for _, account := range accountsQuery.Result {
- fmt.Fprintf(w, "%d\t%s\n", account.Id, account.Name)
- }
- w.Flush()
- }
- func createAccount(c *cli.Context) {
- setting.NewConfigContext()
- sqlstore.NewEngine()
- sqlstore.EnsureAdminUser()
- if !c.Args().Present() {
- log.ConsoleFatal("Account name arg is required")
- }
- name := c.Args().First()
- adminQuery := m.GetUserByLoginQuery{LoginOrEmail: setting.AdminUser}
- if err := bus.Dispatch(&adminQuery); err == m.ErrUserNotFound {
- log.ConsoleFatalf("Failed to find default admin user: %s", err)
- }
- adminUser := adminQuery.Result
- cmd := m.CreateAccountCommand{Name: name, UserId: adminUser.Id}
- if err := bus.Dispatch(&cmd); err != nil {
- log.ConsoleFatalf("Failed to create account: %s", err)
- }
- log.ConsoleInfof("Account %s created for admin user %s\n", name, adminUser.Email)
- }
- func deleteAccount(c *cli.Context) {
- setting.NewConfigContext()
- sqlstore.NewEngine()
- sqlstore.EnsureAdminUser()
- if !c.Args().Present() {
- log.ConsoleFatal("Account name arg is required")
- }
- name := c.Args().First()
- accountQuery := m.GetAccountByNameQuery{Name: name}
- if err := bus.Dispatch(&accountQuery); err != nil {
- log.ConsoleFatalf("Failed to find account: %s", err)
- }
- accountId := accountQuery.Result.Id
- cmd := m.DeleteAccountCommand{Id: accountId}
- if err := bus.Dispatch(&cmd); err != nil {
- log.ConsoleFatalf("Failed to delete account: %s", err)
- }
- log.ConsoleInfof("Account %s deleted", name)
- }
|