Skip to content
Snippets Groups Projects
Commit ea33f6d9 authored by Florent Gluck's avatar Florent Gluck
Browse files

libclient: added userUpdatePwd and userWhoAmI

parent 1b1f2aa8
No related branches found
No related tags found
No related merge requests found
package cmdUser
import (
"encoding/json"
"nexus-client/cmd"
u "nexus-client/utils"
"nexus-common/params"
"github.com/go-resty/resty/v2"
)
func printRegexUsage(c cmd.Command) {
for _, desc := range c.GetDesc() {
u.PrintlnErr(desc)
}
u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
u.PrintlnErr("USAGE: ", c.GetName(), " [regex ...]")
u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
}
func printRegexUsageDetails() {
const usage string = `Only users matching the specified regexes will be listed.
Any number of regexes can be specified.
The regex matches the user email, first name and last name and is case-insensitive.
Regex examples:
"." -> matches any users
"bla" -> matches any users containing "bla"`
u.PrintlnErr(usage)
}
func deserializeUsers(resp *resty.Response) ([]params.UserWithoutPwd, error) {
users := []params.UserWithoutPwd{}
if err := json.Unmarshal(resp.Body(), &users); err != nil {
return nil, err
}
return users, nil
}
......@@ -2,6 +2,7 @@ package cmdUser
import (
"fmt"
"nexus-client/cmd"
u "nexus-client/utils"
"nexus-common/params"
libclient "nexus-libclient/user"
......@@ -121,3 +122,22 @@ func (cmd *List) Run(args []string) int {
return 0
}
func printRegexUsage(c cmd.Command) {
for _, desc := range c.GetDesc() {
u.PrintlnErr(desc)
}
u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
u.PrintlnErr("USAGE: ", c.GetName(), " [regex ...]")
u.PrintlnErr("―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――")
}
func printRegexUsageDetails() {
const usage string = `Only users matching the specified regexes will be listed.
Any number of regexes can be specified.
The regex matches the user email, first name and last name and is case-insensitive.
Regex examples:
"." -> matches any users
"bla" -> matches any users containing "bla"`
u.PrintlnErr(usage)
}
......@@ -3,8 +3,7 @@ package cmdUser
import (
"bytes"
u "nexus-client/utils"
"nexus-common/params"
g "nexus-libclient/globals"
libclient "nexus-libclient/user"
"golang.org/x/crypto/ssh/terminal"
)
......@@ -32,9 +31,6 @@ func (cmd *UpdatePwd) PrintUsage() {
}
func (cmd *UpdatePwd) Run(args []string) int {
client := g.GetInstance().Client
host := g.GetInstance().Host
argc := len(args)
if argc != 0 {
cmd.PrintUsage()
......@@ -57,24 +53,17 @@ func (cmd *UpdatePwd) Run(args []string) int {
u.Println("")
if !bytes.Equal(newPwd, newPwd2) {
u.PrintlnErr("Sorry, passwords do not match!")
u.PrintlnErr("Error: passwords do not match!")
u.PrintlnErr("Password unchanged.")
return 1
}
pwdStr := string(newPwd)
p := &params.UserSetPwd{pwdStr}
resp, err := client.R().SetBody(p).Put(host + "/users/pwd")
err = libclient.UserUpdatePwd(string(newPwd))
if err != nil {
u.PrintlnErr("Error: " + err.Error())
u.PrintlnErr(err.Error())
return 1
} else {
if resp.IsSuccess() {
}
u.Println("Password changed successfully.")
return 0
} else {
u.PrintlnErr(resp.Status() + ": " + resp.String())
return 1
}
}
}
......@@ -2,7 +2,7 @@ package cmdUser
import (
u "nexus-client/utils"
g "nexus-libclient/globals"
libclient "nexus-libclient/user"
)
type Whoami struct {
......@@ -33,20 +33,12 @@ func (cmd *Whoami) Run(args []string) int {
return 1
}
client := g.GetInstance().Client
host := g.GetInstance().Host
resp, err := client.R().Get(host + "/users/whoami")
user, err := libclient.UserWhoAmI()
if err != nil {
u.PrintlnErr("Error: " + err.Error())
return 1
} else {
if resp.IsSuccess() {
u.Println(resp)
return 0
} else {
u.PrintlnErr(resp.Status() + ": " + resp.String())
u.PrintlnErr(err.Error())
return 1
}
}
u.Println(user.String())
return 0
}
......@@ -18,9 +18,9 @@ func deserializeTemplates(resp *resty.Response) ([]t.TemplateSerialized, error)
// Deserialize a single template from an http response.
func deserializeTemplate(resp *resty.Response) (*t.TemplateSerialized, error) {
var tpl *t.TemplateSerialized = &t.TemplateSerialized{}
tpl := t.TemplateSerialized{}
if err := json.Unmarshal(resp.Body(), &tpl); err != nil {
return tpl, err
return nil, err
}
return tpl, nil
return &tpl, nil
}
......@@ -18,11 +18,11 @@ func deserializeUsers(resp *resty.Response) ([]params.UserWithoutPwd, error) {
// Deserialize a single user from an http response.
func deserializeUser(resp *resty.Response) (*params.UserWithoutPwd, error) {
var user *params.UserWithoutPwd = &params.UserWithoutPwd{}
user := params.UserWithoutPwd{}
if err := json.Unmarshal(resp.Body(), &user); err != nil {
return nil, err
}
return user, nil
return &user, nil
}
// Deserialize user password from http response.
......
package user
import (
"nexus-common/params"
g "nexus-libclient/globals"
"nexus-libclient/response"
)
func UserUpdatePwd(newPwd string) error {
client := g.GetInstance().Client
host := g.GetInstance().Host
p := &params.UserSetPwd{newPwd}
resp, err := client.R().SetBody(p).Put(host + "/users/pwd")
if err != nil {
return err
}
if resp.IsSuccess() {
return nil
} else {
return response.ErrorToMsg(resp)
}
}
package user
import (
"nexus-common/params"
g "nexus-libclient/globals"
"nexus-libclient/response"
)
// NOTE: this route is not implemented in the backend yet.
func UserWhoAmI() (*params.UserWithoutPwd, error) {
client := g.GetInstance().Client
host := g.GetInstance().Host
resp, err := client.R().Get(host + "/users/whoami")
if err != nil {
return nil, err
}
if resp.IsSuccess() {
user, err := deserializeUser(resp)
if err != nil {
return nil, err
}
return user, nil
} else {
return nil, response.ErrorToMsg(resp)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment