func (c User) PostCreate(user *models.User, password models.Password) revel.Result { if user.CanBeCreatedBy(c.MongoSession, c.ActiveUser) { if exists := models.GetUserByEmail(c.MongoSession, user.Email); exists.Email == user.Email { msg := fmt.Sprint("Account with ", user.Email, " already exists.") c.Validation.Required(user.Email != exists.Email). Message(msg) } else { user.Id = bson.NewObjectId() } user.Validate(c.Validation) user.ValidatePassword(c.Validation, password) if c.Validation.HasErrors() { c.Validation.Keep() c.FlashParams() c.Flash.Error("Please correct the errors below.") return c.Redirect(User.GetCreate) } user.Save(c.MongoSession, password) c.Session["user"] = user.Email c.Flash.Success("Welcome, " + user.String()) return c.Redirect(Application.Index) } else { return c.Forbidden("You are not allowed to create user accounts.") } }
func (c User) GetCreate() revel.Result { action := "/User/PostCreate" user := models.User{} if user.CanBeCreatedBy(c.MongoSession, c.ActiveUser) { return c.Render(action, user) } return c.Forbidden("You are not allowed to create user accounts.") }