* Show either sign up OR sign in * disambiguate fresh start from adding recovery options * use tabs to switch between account link flows * add active to tab body as well * changes as per discussion * handle specific error; fix missing err typotags/v1.7.0-dev
sign_out = Sign Out | sign_out = Sign Out | ||||
sign_up = Register | sign_up = Register | ||||
link_account = Link Account | link_account = Link Account | ||||
link_account_signin_or_signup = Sign in with existing credentials to link your existing account to this account. Or register a new one. | |||||
register = Register | register = Register | ||||
website = Website | website = Website | ||||
version = Version | version = Version | ||||
twofa_scratch_token_incorrect = Your scratch code is incorrect. | twofa_scratch_token_incorrect = Your scratch code is incorrect. | ||||
login_userpass = Sign In | login_userpass = Sign In | ||||
login_openid = OpenID | login_openid = OpenID | ||||
oauth_signup_tab = Register New Account | |||||
oauth_signup_title = Add Email and Password (for Account Recovery) | |||||
oauth_signup_submit = Complete Account | |||||
oauth_signin_tab = Link to Existing Account | |||||
oauth_signin_title = Sign In to Authorize Linked Account | |||||
oauth_signin_submit = Link Account | |||||
openid_connect_submit = Connect | openid_connect_submit = Connect | ||||
openid_connect_title = Connect to an existing account | openid_connect_title = Connect to an existing account | ||||
openid_connect_desc = The chosen OpenID URI is unknown. Associate it with a new account here. | openid_connect_desc = The chosen OpenID URI is unknown. Associate it with a new account here. |
return | return | ||||
} | } | ||||
ctx.Data["user_name"] = gothUser.(goth.User).NickName | |||||
ctx.Data["email"] = gothUser.(goth.User).Email | |||||
uname := gothUser.(goth.User).NickName | |||||
email := gothUser.(goth.User).Email | |||||
ctx.Data["user_name"] = uname | |||||
ctx.Data["email"] = email | |||||
if len(email) != 0 { | |||||
u, err := models.GetUserByEmail(email) | |||||
if err != nil && !models.IsErrUserNotExist(err) { | |||||
ctx.ServerError("UserSignIn", err) | |||||
return | |||||
} | |||||
if u != nil { | |||||
ctx.Data["user_exists"] = true | |||||
} | |||||
} else if len(uname) != 0 { | |||||
u, err := models.GetUserByName(uname) | |||||
if err != nil && !models.IsErrUserNotExist(err) { | |||||
ctx.ServerError("UserSignIn", err) | |||||
return | |||||
} | |||||
if u != nil { | |||||
ctx.Data["user_exists"] = true | |||||
} | |||||
} | |||||
ctx.HTML(200, tplLinkAccount) | ctx.HTML(200, tplLinkAccount) | ||||
} | } |
{{template "base/head" .}} | {{template "base/head" .}} | ||||
<div class="user link-account"> | <div class="user link-account"> | ||||
<div class="ui middle very relaxed page grid"> | <div class="ui middle very relaxed page grid"> | ||||
<div class="column"> | <div class="column"> | ||||
<p class="large center"> | |||||
{{.i18n.Tr "link_account_signin_or_signup"}} | |||||
</p> | |||||
<div class="ui tabular menu"> | |||||
<!-- TODO handle .ShowRegistrationButton once other login bugs are fixed --> | |||||
<div class="item {{if not .user_exists}}active{{end}}" | |||||
data-tab="auth-link-signup-tab"> | |||||
{{.i18n.Tr "auth.oauth_signup_tab"}} | |||||
</div> | |||||
<div class="item {{if .user_exists}}active{{end}}" | |||||
data-tab="auth-link-signin-tab"> | |||||
{{.i18n.Tr "auth.oauth_signin_tab"}} | |||||
</div> | |||||
</div> | |||||
<div class="ui tab {{if not .user_exists}}active{{end}}" | |||||
data-tab="auth-link-signup-tab"> | |||||
{{template "user/auth/signup_inner" .}} | |||||
</div> | |||||
<div class="ui tab {{if .user_exists}}active{{end}}" | |||||
data-tab="auth-link-signin-tab"> | |||||
<div class="ui user signin container icon"> | |||||
{{template "user/auth/signin_inner" .}} | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="ui user signin container icon"> | |||||
{{template "user/auth/signin_inner" .}} | |||||
</div> | |||||
{{template "user/auth/signup_inner" .}} | |||||
{{template "base/footer" .}} | {{template "base/footer" .}} |
{{template "base/alert" .}} | {{template "base/alert" .}} | ||||
{{end}} | {{end}} | ||||
<h4 class="ui top attached header center"> | <h4 class="ui top attached header center"> | ||||
{{.i18n.Tr "auth.login_userpass"}} | |||||
{{if .LinkAccountMode}} | |||||
{{.i18n.Tr "auth.oauth_signin_title"}} | |||||
{{else}} | |||||
{{.i18n.Tr "auth.login_userpass"}} | |||||
{{end}} | |||||
</h4> | </h4> | ||||
<div class="ui attached segment"> | <div class="ui attached segment"> | ||||
<form class="ui form" action="{{.SignInLink}}" method="post"> | <form class="ui form" action="{{.SignInLink}}" method="post"> | ||||
<div class="inline field"> | <div class="inline field"> | ||||
<label></label> | <label></label> | ||||
<button class="ui green button">{{.i18n.Tr "sign_in"}}</button> | |||||
<button class="ui green button"> | |||||
{{if .LinkAccountMode}} | |||||
{{.i18n.Tr "auth.oauth_signin_submit"}} | |||||
{{else}} | |||||
{{.i18n.Tr "sign_in"}} | |||||
{{end}} | |||||
</button> | |||||
<a href="{{AppSubUrl}}/user/forgot_password">{{.i18n.Tr "auth.forgot_password"}}</a> | <a href="{{AppSubUrl}}/user/forgot_password">{{.i18n.Tr "auth.forgot_password"}}</a> | ||||
</div> | </div> | ||||
<form class="ui form" action="{{.SignUpLink}}" method="post"> | <form class="ui form" action="{{.SignUpLink}}" method="post"> | ||||
{{.CsrfTokenHtml}} | {{.CsrfTokenHtml}} | ||||
<h3 class="ui top attached header"> | <h3 class="ui top attached header"> | ||||
{{.i18n.Tr "sign_up"}} | |||||
{{if .LinkAccountMode}} | |||||
{{.i18n.Tr "auth.oauth_signup_title"}} | |||||
{{else}} | |||||
{{.i18n.Tr "sign_up"}} | |||||
{{end}} | |||||
</h3> | </h3> | ||||
<div class="ui attached segment"> | <div class="ui attached segment"> | ||||
{{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister)}} | {{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister)}} | ||||
<div class="inline field"> | <div class="inline field"> | ||||
<label></label> | <label></label> | ||||
<button class="ui green button">{{.i18n.Tr "auth.create_new_account"}}</button> | |||||
<button class="ui green button"> | |||||
{{if .LinkAccountMode}} | |||||
{{.i18n.Tr "auth.oauth_signup_submit"}} | |||||
{{else}} | |||||
{{.i18n.Tr "auth.create_new_account"}} | |||||
{{end}} | |||||
</button> | |||||
</div> | </div> | ||||
{{if not .LinkAccountMode}} | {{if not .LinkAccountMode}} |