feat(invite): more progress on invited / sigup view, #2353

This commit is contained in:
Torkel Ödegaard
2015-07-20 15:52:49 +02:00
parent 024c112944
commit d75f96fdd5
8 changed files with 136 additions and 25 deletions

View File

@@ -22,7 +22,7 @@ func Register(r *macaron.Macaron) {
r.Post("/login", bind(dtos.LoginCommand{}), wrap(LoginPost))
r.Get("/login/:name", OAuthLogin)
r.Get("/login", LoginView)
r.Get("/signup/invited", Index)
r.Get("/invite", Index)
// authed views
r.Get("/profile/", reqSignedIn, Index)
@@ -43,6 +43,9 @@ func Register(r *macaron.Macaron) {
r.Get("/signup", Index)
r.Post("/api/user/signup", bind(m.CreateUserCommand{}), wrap(SignUp))
// invited
r.Get("/api/user/invite/:code", wrap(GetInviteInfoByCode))
// reset password
r.Get("/user/password/send-reset-email", Index)
r.Get("/user/password/reset", Index)

View File

@@ -8,3 +8,9 @@ type AddInviteForm struct {
Role m.RoleType `json:"role" binding:"Required"`
SkipEmails bool `json:"skipEmails"`
}
type InviteInfo struct {
Email string `json:"email"`
Name string `json:"name"`
Username string `json:"username"`
}

View File

@@ -96,3 +96,22 @@ func RevokeInvite(c *middleware.Context) Response {
return ApiSuccess("Invite revoked")
}
func GetInviteInfoByCode(c *middleware.Context) Response {
query := m.GetTempUsersByCodeQuery{Code: c.Params(":code")}
if err := bus.Dispatch(&query); err != nil {
if err == m.ErrTempUserNotFound {
return ApiError(404, "Invite not found", nil)
}
return ApiError(500, "Failed to get invite", err)
}
info := dtos.InviteInfo{
Email: query.Result.Email,
Name: query.Result.Name,
Username: query.Result.Email,
}
return Json(200, &info)
}

View File

@@ -68,6 +68,12 @@ type GetTempUsersForOrgQuery struct {
Result []*TempUserDTO
}
type GetTempUsersByCodeQuery struct {
Code string
Result *TempUser
}
type TempUserDTO struct {
Id int64 `json:"id"`
Name string `json:"name"`

View File

@@ -12,6 +12,7 @@ func init() {
bus.AddHandler("sql", CreateTempUser)
bus.AddHandler("sql", GetTempUsersForOrg)
bus.AddHandler("sql", UpdateTempUserStatus)
bus.AddHandler("sql", GetTempUsersByCode)
}
func UpdateTempUserStatus(cmd *m.UpdateTempUserStatusCommand) error {
@@ -68,3 +69,17 @@ func GetTempUsersForOrg(query *m.GetTempUsersForOrgQuery) error {
err := sess.Find(&query.Result)
return err
}
func GetTempUsersByCode(query *m.GetTempUsersByCodeQuery) error {
var user m.TempUser
has, err := x.Table("temp_user").Where("code=?", query.Code).Get(&user)
if err != nil {
return err
} else if has == false {
return m.ErrTempUserNotFound
}
query.Result = &user
return err
}