<div class="ui container fluid{{if .LinkAccountMode}} icon{{end}}"> <h4 class="ui top attached header center"> {{if .LinkAccountMode}} {{ctx.Locale.Tr "auth.oauth_signup_title"}} {{else}} {{ctx.Locale.Tr "sign_up"}} {{end}} </h4> <div class="ui attached segment"> <form class="ui form" action="{{.SignUpLink}}" method="post"> {{.CsrfTokenHtml}} {{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister)}} {{template "base/alert" .}} {{end}} {{if .DisableRegistration}} <p>{{ctx.Locale.Tr "auth.disable_register_prompt"}}</p> {{else}} <div class="required field {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}"> <label for="user_name">{{ctx.Locale.Tr "username"}}</label> <input id="user_name" type="text" name="user_name" value="{{.user_name}}" autofocus required> </div> <div class="required field {{if .Err_Email}}error{{end}}"> <label for="email">{{ctx.Locale.Tr "email"}}</label> <input id="email" name="email" type="email" value="{{.email}}" required> </div> {{if not .DisablePassword}} <div class="required field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}"> <label for="password">{{ctx.Locale.Tr "password"}}</label> <input id="password" name="password" type="password" value="{{.password}}" autocomplete="new-password" required> </div> <div class="required field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}"> <label for="retype">{{ctx.Locale.Tr "re_type"}}</label> <input id="retype" name="retype" type="password" value="{{.retype}}" autocomplete="new-password" required> </div> {{end}} {{template "user/auth/captcha" .}} <div class="inline field"> <button class="ui primary button tw-w-full"> {{if .LinkAccountMode}} {{ctx.Locale.Tr "auth.oauth_signup_submit"}} {{else}} {{ctx.Locale.Tr "auth.create_new_account"}} {{end}} </button> </div> {{end}} {{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}} {{/* TODO: it seems that "EnableSSPI" is only set in "sign-in" handlers, but it should use the same logic to control its display */}} {{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}} {{if $showOAuth2Methods}} <div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div> {{template "user/auth/oauth_container" .}} {{end}} </form> </div> </div> <div class="ui container fluid"> {{if not .LinkAccountMode}} <div class="ui attached segment header top tw-flex tw-flex-col tw-items-center"> <div class="field"> <span>{{ctx.Locale.Tr "auth.already_have_account"}}</span> <a href="{{AppSubUrl}}/user/login">{{ctx.Locale.Tr "auth.sign_in_now"}}</a> </div> </div> {{end}} </div>