0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-05-30 17:45:38 +02:00

Merge b10dfaeb8b664cec4cd84024c9ed0828eabd4b31 into 0cec4b84e2e2385d33cd19351f8a9e098a29ecc2

This commit is contained in:
Kerwin Bryant 2025-05-28 16:19:17 -04:00 committed by GitHub
commit 68e9968647
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 24 additions and 2 deletions

View File

@ -831,6 +831,18 @@ type CountUserFilter struct {
IsActive optional.Option[bool]
}
// HasUsers returns true if any user exists in the database.
// It performs a much more efficient check than counting all users.
func HasUsers(ctx context.Context) (bool, error) {
sess := db.GetEngine(ctx)
exists, err := sess.Exist(new(User))
if err != nil {
return false, fmt.Errorf("error checking user existence: %w", err)
}
return exists, nil
}
// CountUsers returns number of users.
func CountUsers(ctx context.Context, opts *CountUserFilter) int64 {
return countUsers(ctx, opts)

View File

@ -421,6 +421,7 @@ remember_me.compromised = The login token is not valid anymore which may indicat
forgot_password_title= Forgot Password
forgot_password = Forgot password?
need_account = Need an account?
sign_up_tip = You are registering the first account in the system. Please carefully remember your username and password, as losing this information could cause significant inconvenience later.
sign_up_now = Register now.
sign_up_successful = Account was successfully created. Welcome!
confirmation_mail_sent_prompt_ex = A new confirmation email has been sent to <b>%s</b>. Please check your inbox within the next %s to complete the registration process. If your registration email address is incorrect, you can sign in again and change it.

View File

@ -607,5 +607,7 @@ func SubmitInstall(ctx *context.Context) {
// InstallDone shows the "post-install" page, makes it easier to develop the page.
// The name is not called as "PostInstall" to avoid misinterpretation as a handler for "POST /install"
func InstallDone(ctx *context.Context) { //nolint
hasUsers, _ := user_model.HasUsers(ctx)
ctx.Data["IsAccountCreated"] = hasUsers
ctx.HTML(http.StatusOK, tplPostInstall)
}

View File

@ -424,6 +424,10 @@ func SignUp(ctx *context.Context) {
ctx.Data["SignUpLink"] = setting.AppSubURL + "/user/sign_up"
hasUsers, _ := user_model.HasUsers(ctx)
ctx.Data["IsFirstTimeRegistration"] = !hasUsers
oauth2Providers, err := oauth2.GetOAuth2Providers(ctx, optional.Some(true))
if err != nil {
ctx.ServerError("UserSignUp", err)

View File

@ -4,7 +4,7 @@
<!-- the "cup" has a handler, so move it a little leftward to make it visually in the center -->
<div class="tw-ml-[-30px]"><img width="160" src="{{AssetUrlPrefix}}/img/loading.png" alt aria-hidden="true"></div>
<div class="tw-my-[2em] tw-text-[18px]">
<a id="goto-user-login" href="{{AppSubUrl}}/user/login">{{ctx.Locale.Tr "install.installing_desc"}}</a>
<a id="goto-signup-or-signin" href="{{AppSubUrl}}{{if .IsAccountCreated}}/user/login{{else}}/user/sign_up{{end}}">{{ctx.Locale.Tr "install.installing_desc"}}</a>
</div>
</div>
</div>

View File

@ -7,6 +7,9 @@
{{end}}
</h4>
<div class="ui attached segment">
{{if .IsFirstTimeRegistration}}
<p>{{ctx.Locale.Tr "auth.sign_up_tip"}}</p>
{{end}}
<form class="ui form" action="{{.SignUpLink}}" method="post">
{{.CsrfTokenHtml}}
{{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister)}}

View File

@ -104,7 +104,7 @@ function initPreInstall() {
}
function initPostInstall() {
const el = document.querySelector('#goto-user-login');
const el = document.querySelector('#goto-signup-or-signin');
if (!el) return;
const targetUrl = el.getAttribute('href');