/
user.go
69 lines (59 loc) · 1.54 KB
/
user.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package manager
import (
h "github.com/ernestio/ernest-cli/helper"
eclient "github.com/ernestio/ernest-go-sdk/client"
emodels "github.com/ernestio/ernest-go-sdk/models"
)
// User : ernest-go-sdk User wrapper
type User struct {
cli *eclient.Client
}
// Get : ...
func (c *User) Get(username string) *emodels.User {
user, err := c.cli.Users.Get(username)
if err != nil {
h.PrintError(err.Error())
}
return user
}
// Update : ...
func (c *User) Update(user *emodels.User) {
if err := c.cli.Users.Update(user); err != nil {
h.PrintError(err.Error())
}
}
// Create : ...
func (c *User) Create(user *emodels.User) {
if err := c.cli.Users.Create(user); err != nil {
h.PrintError(err.Error())
}
}
// List : ...
func (c *User) List() []*emodels.User {
users, err := c.cli.Users.List()
if err != nil {
h.PrintError(err.Error())
}
return users
}
// Promote : ...
func (c *User) Promote(user *emodels.User) {
user.Admin = true
if err := c.cli.Users.Update(user); err != nil {
str1 := "It was not possible to set this user as admin: "
str2 := "Please fix any errors and try again with 'user admin add ...' command"
h.PrintError(str1 + err.Error() + "\n" + str2)
}
}
// ToggleMFA : ...
func (c *User) ToggleMFA(user *emodels.User, toggle bool) (res string) {
user.MFA = &toggle
c.Update(user)
if toggle {
res = user.MFASecret
}
return
}