コード例 #1
0
ファイル: update.go プロジェクト: postfix/pritunl-auth
func updateGoogleGet(c *gin.Context) {
	db := c.MustGet("db").(*database.Database)

	params := utils.ParseParams(c.Request)

	usr := params.GetByName("user")
	license := params.GetByName("license")

	valid, err := user.CheckLicense(db, license)
	if err != nil {
		switch err.(type) {
		case *database.NotFoundError:
			c.AbortWithError(404, err)
		default:
			c.AbortWithError(500, err)
		}
		return
	}

	if !valid {
		c.AbortWithError(401, err)
		return
	}

	err = google.Update(db, usr)
	if err != nil {
		c.AbortWithError(500, err)
		return
	}

	c.String(200, "")
}
コード例 #2
0
ファイル: request.go プロジェクト: postfix/pritunl-auth
func requestSamlPost(c *gin.Context) {
	db := c.MustGet("db").(*database.Database)
	data := &samlRequestData{}

	err := c.Bind(&data)
	if err != nil {
		c.AbortWithError(400, err)
		return
	}

	valid, err := user.CheckLicense(db, data.License)
	if err != nil {
		switch err.(type) {
		case *database.NotFoundError:
			c.AbortWithError(404, err)
		default:
			c.AbortWithError(500, err)
		}
		return
	}

	if !valid {
		c.AbortWithError(401, err)
		return
	}

	sml := &saml.Saml{
		SsoUrl:    data.SsoUrl,
		IssuerUrl: data.IssuerUrl,
		Cert:      data.Cert,
	}

	err = sml.Init()
	if err != nil {
		c.AbortWithError(500, err)
		return
	}

	resp, err := sml.Request(db, data.State, data.Secret, data.Callback)
	if err != nil {
		c.AbortWithError(500, err)
		return
	}

	c.Writer.WriteHeader(200)
	c.Writer.Header().Set("Content-Type", "text/html;charset=utf-8")
	c.Writer.Write(resp.Bytes())
}
コード例 #3
0
ファイル: request.go プロジェクト: postfix/pritunl-auth
func _requestGooglePost(c *gin.Context, version int) {
	db := c.MustGet("db").(*database.Database)
	data := &googleRequestData{}

	err := c.Bind(&data)
	if err != nil {
		c.AbortWithError(400, err)
		return
	}

	valid, err := user.CheckLicense(db, data.License)
	if err != nil {
		switch err.(type) {
		case *database.NotFoundError:
			c.AbortWithError(404, err)
		default:
			c.AbortWithError(500, err)
		}
		return
	}

	if !valid {
		c.AbortWithError(401, err)
		return
	}

	url, err := google.Request(db, data.State, data.Secret, data.Callback,
		version)
	if err != nil {
		c.AbortWithError(500, err)
		return
	}

	c.JSON(200, struct {
		Url string `json:"url"`
	}{
		Url: url,
	})
}