diff --git a/pkg/remote/builtin/github/github.go b/pkg/remote/builtin/github/github.go index 5b6fafd8..8659f8c1 100644 --- a/pkg/remote/builtin/github/github.go +++ b/pkg/remote/builtin/github/github.go @@ -74,7 +74,6 @@ func (g *GitHub) Login(token, secret string) (*common.User, error) { user := common.User{} user.Login = *login.Login user.Email = *login.Email - user.Name = *login.Name user.Token = token user.Secret = secret return &user, nil diff --git a/pkg/server/login.go b/pkg/server/login.go index b38a33a4..266f5ec6 100644 --- a/pkg/server/login.go +++ b/pkg/server/login.go @@ -84,9 +84,8 @@ func GetLogin(c *gin.Context) { u.Login = login.Login u.Token = login.Token u.Secret = login.Secret - u.Name = login.Name u.Email = login.Email - u.Gravatar = gravatar.Hash(u.Email) + u.Avatar = gravatar.Hash(u.Email) // insert the user into the database if err := store.AddUser(u); err != nil { @@ -106,9 +105,8 @@ func GetLogin(c *gin.Context) { // data and cache in the datastore. u.Token = login.Token u.Secret = login.Secret - u.Name = login.Name u.Email = login.Email - u.Gravatar = gravatar.Hash(u.Email) + u.Avatar = gravatar.Hash(u.Email) if err := store.SetUser(u); err != nil { log.Errorf("cannot update %s. %s", u.Login, err) diff --git a/pkg/server/user.go b/pkg/server/user.go index 8da36243..9b20157b 100644 --- a/pkg/server/user.go +++ b/pkg/server/user.go @@ -32,7 +32,7 @@ func PutUserCurr(c *gin.Context) { return } user.Email = in.Email - user.Gravatar = gravatar.Hash(in.Email) + user.Avatar = gravatar.Hash(in.Email) err := store.SetUser(user) if err != nil { c.Fail(400, err) diff --git a/pkg/server/users.go b/pkg/server/users.go index 074494bd..a88ee69d 100644 --- a/pkg/server/users.go +++ b/pkg/server/users.go @@ -32,7 +32,7 @@ func GetUsers(c *gin.Context) { func PostUser(c *gin.Context) { store := ToDatastore(c) name := c.Params.ByName("name") - user := &common.User{Login: name, Name: name} + user := &common.User{Login: name} user.Token = c.Request.FormValue("token") user.Secret = c.Request.FormValue("secret") if err := store.AddUser(user); err != nil { @@ -80,7 +80,7 @@ func PutUser(c *gin.Context) { return } user.Email = in.Email - user.Gravatar = gravatar.Hash(user.Email) + user.Avatar = gravatar.Hash(user.Email) // an administrator must not be able to // downgrade her own account. diff --git a/pkg/store/builtin/migrate/migrate.go b/pkg/store/builtin/migrate/migrate.go index facd061b..ffea5012 100644 --- a/pkg/store/builtin/migrate/migrate.go +++ b/pkg/store/builtin/migrate/migrate.go @@ -37,13 +37,10 @@ CREATE TABLE IF NOT EXISTS users ( ,user_login VARCHAR(255) ,user_token VARCHAR(255) ,user_secret VARCHAR(255) - ,user_name VARCHAR(255) ,user_email VARCHAR(255) - ,user_gravatar VARCHAR(255) + ,user_avatar VARCHAR(255) ,user_admin BOOLEAN ,user_active BOOLEAN - ,user_created INTEGER - ,user_updated INTEGER ,UNIQUE(user_login) ); ` @@ -80,33 +77,6 @@ var repoUserIndex = ` CREATE INDEX repos_user_idx ON repos (repo_user_id); ` -// var repoKeyTable = ` -// CREATE TABLE IF NOT EXISTS repo_keys ( -// keys_id INTEGER PRIMARY KEY AUTOINCREMENT -// ,repo_id INTEGER -// ,keys_public BLOB -// ,keys_private BLOB -// ,UNIQUE(repo_id) -// ); -// ` -// -// var repoKeyIndex = ` -// CREATE INDEX keys_repo_idx ON repo_keys (repo_id); -// ` - -// var repoParamTable = ` -// CREATE TABLE IF NOT EXISTS repo_params ( -// param_id INTEGER PRIMARY KEY AUTOINCREMENT -// ,repo_id INTEGER -// ,param_map BLOB -// ,UNIQUE(repo_id) -// ); -// ` -// -// var repoParamsIndex = ` -// CREATE INDEX params_repo_idx ON repo_params (repo_id); -// ` - var starTable = ` CREATE TABLE IF NOT EXISTS stars ( star_id INTEGER PRIMARY KEY AUTOINCREMENT diff --git a/pkg/store/builtin/user.go b/pkg/store/builtin/user.go index e7013b4e..21030479 100644 --- a/pkg/store/builtin/user.go +++ b/pkg/store/builtin/user.go @@ -2,7 +2,6 @@ package builtin import ( "database/sql" - "time" "github.com/drone/drone/pkg/types" ) @@ -51,14 +50,11 @@ func (db *Userstore) UserCount() (int, error) { // AddUser inserts a new user into the datastore. // If the user login already exists an error is returned. func (db *Userstore) AddUser(user *types.User) error { - user.Created = time.Now().UTC().Unix() - user.Updated = time.Now().UTC().Unix() return createUser(db, rebind(stmtUserInsert), user) } // SetUser updates an existing user. func (db *Userstore) SetUser(user *types.User) error { - user.Updated = time.Now().UTC().Unix() return updateUser(db, rebind(stmtUserUpdate), user) } diff --git a/pkg/store/builtin/user_sql.go b/pkg/store/builtin/user_sql.go index 3c015123..a77260a8 100644 --- a/pkg/store/builtin/user_sql.go +++ b/pkg/store/builtin/user_sql.go @@ -39,21 +39,15 @@ func createUser(db userDB, query string, v *User) error { var v2 string var v3 string var v4 string - var v5 string + var v5 bool var v6 bool - var v7 bool - var v8 int64 - var v9 int64 v0 = v.Login v1 = v.Token v2 = v.Secret - v3 = v.Name - v4 = v.Email - v5 = v.Gravatar + v3 = v.Email + v4 = v.Avatar + v5 = v.Active v6 = v.Admin - v7 = v.Active - v8 = v.Created - v9 = v.Updated res, err := db.Exec(query, &v0, @@ -63,9 +57,6 @@ func createUser(db userDB, query string, v *User) error { &v4, &v5, &v6, - &v7, - &v8, - &v9, ) if err != nil { return err @@ -82,22 +73,16 @@ func updateUser(db userDB, query string, v *User) error { var v3 string var v4 string var v5 string - var v6 string + var v6 bool var v7 bool - var v8 bool - var v9 int64 - var v10 int64 v0 = v.ID v1 = v.Login v2 = v.Token v3 = v.Secret - v4 = v.Name - v5 = v.Email - v6 = v.Gravatar + v4 = v.Email + v5 = v.Avatar + v6 = v.Active v7 = v.Admin - v8 = v.Active - v9 = v.Created - v10 = v.Updated _, err := db.Exec(query, &v1, @@ -107,9 +92,6 @@ func updateUser(db userDB, query string, v *User) error { &v5, &v6, &v7, - &v8, - &v9, - &v10, &v0, ) return err @@ -122,11 +104,8 @@ func scanUser(row *sql.Row) (*User, error) { var v3 string var v4 string var v5 string - var v6 string + var v6 bool var v7 bool - var v8 bool - var v9 int64 - var v10 int64 err := row.Scan( &v0, @@ -137,9 +116,6 @@ func scanUser(row *sql.Row) (*User, error) { &v5, &v6, &v7, - &v8, - &v9, - &v10, ) if err != nil { return nil, err @@ -150,13 +126,10 @@ func scanUser(row *sql.Row) (*User, error) { v.Login = v1 v.Token = v2 v.Secret = v3 - v.Name = v4 - v.Email = v5 - v.Gravatar = v6 + v.Email = v4 + v.Avatar = v5 + v.Active = v6 v.Admin = v7 - v.Active = v8 - v.Created = v9 - v.Updated = v10 return v, nil } @@ -171,11 +144,8 @@ func scanUsers(rows *sql.Rows) ([]*User, error) { var v3 string var v4 string var v5 string - var v6 string + var v6 bool var v7 bool - var v8 bool - var v9 int64 - var v10 int64 err = rows.Scan( &v0, &v1, @@ -185,9 +155,6 @@ func scanUsers(rows *sql.Rows) ([]*User, error) { &v5, &v6, &v7, - &v8, - &v9, - &v10, ) if err != nil { return vv, err @@ -198,13 +165,10 @@ func scanUsers(rows *sql.Rows) ([]*User, error) { v.Login = v1 v.Token = v2 v.Secret = v3 - v.Name = v4 - v.Email = v5 - v.Gravatar = v6 + v.Email = v4 + v.Avatar = v5 + v.Active = v6 v.Admin = v7 - v.Active = v8 - v.Created = v9 - v.Updated = v10 vv = append(vv, v) } return vv, rows.Err() @@ -216,13 +180,10 @@ SELECT ,user_login ,user_token ,user_secret -,user_name ,user_email -,user_gravatar -,user_admin +,user_avatar ,user_active -,user_created -,user_updated +,user_admin FROM users ` @@ -232,13 +193,10 @@ SELECT ,user_login ,user_token ,user_secret -,user_name ,user_email -,user_gravatar -,user_admin +,user_avatar ,user_active -,user_created -,user_updated +,user_admin FROM users LIMIT ? OFFSET ? ` @@ -249,13 +207,10 @@ SELECT ,user_login ,user_token ,user_secret -,user_name ,user_email -,user_gravatar -,user_admin +,user_avatar ,user_active -,user_created -,user_updated +,user_admin FROM users WHERE user_id = ? ` @@ -266,13 +221,10 @@ SELECT ,user_login ,user_token ,user_secret -,user_name ,user_email -,user_gravatar -,user_admin +,user_avatar ,user_active -,user_created -,user_updated +,user_admin FROM users WHERE user_login = ? ` @@ -287,14 +239,11 @@ INSERT INTO users ( user_login ,user_token ,user_secret -,user_name ,user_email -,user_gravatar -,user_admin +,user_avatar ,user_active -,user_created -,user_updated -) VALUES (?,?,?,?,?,?,?,?,?,?); +,user_admin +) VALUES (?,?,?,?,?,?,?); ` const stmtUserUpdate = ` @@ -302,13 +251,10 @@ UPDATE users SET user_login = ? ,user_token = ? ,user_secret = ? -,user_name = ? ,user_email = ? -,user_gravatar = ? -,user_admin = ? +,user_avatar = ? ,user_active = ? -,user_created = ? -,user_updated = ? +,user_admin = ? WHERE user_id = ? ` @@ -319,17 +265,14 @@ WHERE user_id = ? const stmtUserTable = ` CREATE TABLE IF NOT EXISTS users ( - user_id INTEGER PRIMARY KEY AUTOINCREMENT -,user_login VARCHAR -,user_token VARCHAR + user_id INTEGER PRIMARY KEY AUTOINCREMENT +,user_login VARCHAR +,user_token VARCHAR ,user_secret VARCHAR -,user_name VARCHAR -,user_email VARCHAR -,user_gravatar VARCHAR -,user_admin BOOLEAN +,user_email VARCHAR +,user_avatar VARCHAR ,user_active BOOLEAN -,user_created INTEGER -,user_updated INTEGER +,user_admin BOOLEAN ); ` diff --git a/pkg/store/builtin/users_test.go b/pkg/store/builtin/users_test.go index 42c98631..52ae7975 100644 --- a/pkg/store/builtin/users_test.go +++ b/pkg/store/builtin/users_test.go @@ -31,7 +31,6 @@ func TestUserstore(t *testing.T) { g.It("Should Update a User", func() { user := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } @@ -47,7 +46,6 @@ func TestUserstore(t *testing.T) { g.It("Should Add a new User", func() { user := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } @@ -58,16 +56,13 @@ func TestUserstore(t *testing.T) { g.It("Should Get a User", func() { user := types.User{ - Login: "joe", - Token: "f0b461ca586c27872b43a0685cbc2847", - Secret: "976f22a5eef7caacb7e678d6c52f49b1", - Name: "Joe Sixpack", - Email: "foo@bar.com", - Gravatar: "b9015b0857e16ac4d94a0ffd9a0b79c8", - Active: true, - Admin: true, - Created: 1398065343, - Updated: 1398065344, + Login: "joe", + Token: "f0b461ca586c27872b43a0685cbc2847", + Secret: "976f22a5eef7caacb7e678d6c52f49b1", + Email: "foo@bar.com", + Avatar: "b9015b0857e16ac4d94a0ffd9a0b79c8", + Active: true, + Admin: true, } us.AddUser(&user) getuser, err := us.User(user.ID) @@ -76,19 +71,15 @@ func TestUserstore(t *testing.T) { g.Assert(user.Login).Equal(getuser.Login) g.Assert(user.Token).Equal(getuser.Token) g.Assert(user.Secret).Equal(getuser.Secret) - g.Assert(user.Name).Equal(getuser.Name) g.Assert(user.Email).Equal(getuser.Email) - g.Assert(user.Gravatar).Equal(getuser.Gravatar) + g.Assert(user.Avatar).Equal(getuser.Avatar) g.Assert(user.Active).Equal(getuser.Active) g.Assert(user.Admin).Equal(getuser.Admin) - g.Assert(user.Created).Equal(getuser.Created) - g.Assert(user.Updated).Equal(getuser.Updated) }) g.It("Should Get a User By Login", func() { user := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } @@ -102,13 +93,11 @@ func TestUserstore(t *testing.T) { g.It("Should Enforce Unique User Login", func() { user1 := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } user2 := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "ab20g0ddaf012c744e136da16aa21ad9", } @@ -121,13 +110,11 @@ func TestUserstore(t *testing.T) { g.It("Should Get a User List", func() { user1 := types.User{ Login: "jane", - Name: "Jane Doe", Email: "foo@bar.com", Token: "ab20g0ddaf012c744e136da16aa21ad9", } user2 := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } @@ -137,7 +124,6 @@ func TestUserstore(t *testing.T) { g.Assert(err == nil).IsTrue() g.Assert(len(users)).Equal(2) g.Assert(users[0].Login).Equal(user1.Login) - g.Assert(users[0].Name).Equal(user1.Name) g.Assert(users[0].Email).Equal(user1.Email) g.Assert(users[0].Token).Equal(user1.Token) }) @@ -145,13 +131,11 @@ func TestUserstore(t *testing.T) { g.It("Should Get a User Count", func() { user1 := types.User{ Login: "jane", - Name: "Jane Doe", Email: "foo@bar.com", Token: "ab20g0ddaf012c744e136da16aa21ad9", } user2 := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } @@ -171,7 +155,6 @@ func TestUserstore(t *testing.T) { g.It("Should Del a User", func() { user := types.User{ Login: "joe", - Name: "Joe Sixpack", Email: "foo@bar.com", Token: "e42080dddf012c718e476da161d21ad5", } diff --git a/pkg/types/user.go b/pkg/types/user.go index 813df01d..41ea7402 100644 --- a/pkg/types/user.go +++ b/pkg/types/user.go @@ -1,15 +1,12 @@ package types type User struct { - ID int64 `meddler:"user_id,pk" json:"id"` - Login string `meddler:"user_login" json:"login,omitempty" sql:"unique:ux_user_login"` - Token string `meddler:"user_token" json:"-"` - Secret string `meddler:"user_secret" json:"-"` - Name string `meddler:"user_name" json:"name,omitempty"` - Email string `meddler:"user_email" json:"email,omitempty"` - Gravatar string `meddler:"user_gravatar" json:"gravatar_id,omitempty"` - Admin bool `meddler:"user_admin" json:"admin,omitempty"` - Active bool `meddler:"user_active" json:"active,omitempty"` - Created int64 `meddler:"user_created" json:"created_at,omitempty"` - Updated int64 `meddler:"user_updated" json:"updated_at,omitempty"` + ID int64 `meddler:"user_id,pk" json:"id"` + Login string `meddler:"user_login" json:"login,omitempty" sql:"unique:ux_user_login"` + Token string `meddler:"user_token" json:"-"` + Secret string `meddler:"user_secret" json:"-"` + Email string `meddler:"user_email" json:"email,omitempty"` + Avatar string `meddler:"user_gravatar" json:"gravatar_id,omitempty"` + Active bool `meddler:"user_active" json:"active,omitempty"` + Admin bool `meddler:"user_admin" json:"admin,omitempty"` }