func SignIn(ctx *context.Context) {
	ctx.Data["Title"] = ctx.Tr("sign_in")

	// Check auto-login.
	if checkAutoLogin(ctx) {
		return
	}

	orderedOAuth2Names, oauth2Providers, err := models.GetActiveOAuth2Providers()
	if err != nil {
		ctx.ServerError("UserSignIn", err)
		return
	}
	ctx.Data["OrderedOAuth2Names"] = orderedOAuth2Names
	ctx.Data["OAuth2Providers"] = oauth2Providers
	ctx.Data["Title"] = ctx.Tr("sign_in")
	ctx.Data["SignInLink"] = setting.AppSubURL + "/user/login"
	ctx.Data["PageIsSignIn"] = true
	ctx.Data["PageIsLogin"] = true
	ctx.Data["EnableSSPI"] = models.IsSSPIEnabled()

	ctx.HTML(http.StatusOK, tplSignIn)
}
// SignIn render sign in page
SignIn render sign in page
// SignIn render sign in page
func SignIn(ctx *context.Context) {
	ctx.Data["Title"] = ctx.Tr("sign_in")
	if checkAutoLogin(ctx) {
		return
	}
	orderedOAuth2Names, oauth2Providers, err := models.GetActiveOAuth2Providers()
	if err != nil {
		ctx.ServerError("UserSignIn", err)
		return
	}
	ctx.Data["OrderedOAuth2Names"] = orderedOAuth2Names
	ctx.Data["OAuth2Providers"] = oauth2Providers
	ctx.Data["Title"] = ctx.Tr("sign_in")
	ctx.Data["SignInLink"] = setting.AppSubURL + "/user/login"
	ctx.Data["PageIsSignIn"] = true
	ctx.Data["PageIsLogin"] = true
	ctx.Data["EnableSSPI"] = models.IsSSPIEnabled()
	ctx.HTML(http.StatusOK, tplSignIn)
}
func SignIn ( ctx * context . Context ) { ctx . Data [ " " ] = ctx . Tr ( " " ) if checkAutoLogin ( ctx ) { return } orderedOAuth2Names , oauth2Providers , err := models . GetActiveOAuth2Providers ( ) if err != nil { ctx . ServerError ( " " , err ) return } ctx . Data [ " " ] = orderedOAuth2Names ctx . Data [ " " ] = oauth2Providers ctx . Data [ " " ] = ctx . Tr ( " " ) ctx . Data [ " " ] = setting . AppSubURL + " " ctx . Data [ " " ] = true ctx . Data [ " " ] = true ctx . Data [ " " ] = models . IsSSPIEnabled ( ) ctx . HTML ( http . StatusOK , tplSignIn ) }
SignIn render sign in page
SignIn render sign in page
// Check auto-login.