diff --git a/.travis.yml b/.travis.yml index 1eaa110..b90d386 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: go go: - 1.4.3 - 1.5.4 - - release + - 1.6.2 - tip install: diff --git a/auth.go b/auth.go index e10fa05..b166bb8 100644 --- a/auth.go +++ b/auth.go @@ -56,7 +56,7 @@ func (auth *AuthHTTP) createInitialUser(username, password, role, email string) return err } - err = auth.aaa.Update(nil, nil, username, password, "") + err = auth.aaa.Update(nil, nil, username, password, email) if err != nil { log.Printf("Error saving user: %s", err) return err @@ -67,15 +67,21 @@ func (auth *AuthHTTP) createInitialUser(username, password, role, email string) return nil } -func (auth *AuthHTTP) listUsers() ([]httpauth.UserData, error) { +func (auth *AuthHTTP) listUsers() ([]User, error) { + var userResponse []User users, err := auth.backend.Users() if err != nil { log.Printf("Error list users: %s", err) return nil, err } + for _, user := range users { + u := User{Username: user.Username, Role: user.Role, Email: user.Email} + userResponse = append(userResponse, u) + } + log.Printf("listing users: %+v", users) - return users, nil + return userResponse, nil } func (auth *AuthHTTP) addUser(username, password, email, role string) error { @@ -84,6 +90,12 @@ func (auth *AuthHTTP) addUser(username, password, email, role string) error { if err != nil { log.Printf("Error creating user %v: %s", user, err) } + err = auth.aaa.Update(nil, nil, username, password, email) + if err != nil { + log.Printf("Error saving user: %s", err) + return err + } + log.Printf("Added user: %v", user) return nil } diff --git a/ui/App/components/Saves/CreateSave.jsx b/ui/App/components/Saves/CreateSave.jsx index ef00ae0..e8d7133 100644 --- a/ui/App/components/Saves/CreateSave.jsx +++ b/ui/App/components/Saves/CreateSave.jsx @@ -27,7 +27,6 @@ class CreateSave extends React.Component { this.setState({loading: false}); } else { alert(data.data) - document.getElementById('uploadsave').removeChild(loading); this.setState({loading: false}); } } diff --git a/ui/App/components/Users/AddUser.jsx b/ui/App/components/Users/AddUser.jsx new file mode 100644 index 0000000..e8b26ff --- /dev/null +++ b/ui/App/components/Users/AddUser.jsx @@ -0,0 +1,89 @@ +import React from 'react'; + +class AddUser extends React.Component { + constructor(props) { + super(props); + this.createUser = this.createUser.bind(this); + this.validateEmail = this.validateEmail.bind(this); + } + + validateEmail(email) { + var re = /\S+@\S+\.\S+/; + return re.test(email) + } + + createUser(e) { + e.preventDefault(); + console.log(this.refs); + let user = { + username: this.refs.username.value, + // Add handler for listing roles + role: "admin", + password: this.refs.password.value, + email: this.refs.email.value, + } + if (user.password !== this.refs.passwordConfirm.value) { + console.log("passwords do not match") + return + } + + console.log(this.validateEmail(user.username)) + + $.ajax({ + type: "POST", + url: "/api/user/add", + dataType: "json", + data: JSON.stringify(user), + success: (resp) => { + if (resp.success === true) { + alert("User: " + user.username + " added successfully."); + this.props.listUsers(); + } else { + alert("Error adding user: ", resp.data) + } + } + }) + } + + render() { + return( +
User | +Role | +Delete | +|
---|---|---|---|
{user.username} | +{user.role} | +{user.email} | ++ + | +