Skip to content

Add post-installation redirect based on admin account status #34493

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

kerwin612
Copy link
Member

This PR adds a feature to direct users to appropriate pages after system installation:

  • If no admin credentials were provided during installation, redirect to the registration page with a prominent notice about creating the first administrative account
  • If admin credentials were already set, redirect directly to the login page

4d396ad132d9b57fc4f45a62117177f1

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label May 17, 2025
@github-actions github-actions bot added modifies/translation modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files modifies/frontend labels May 17, 2025
@@ -831,6 +831,21 @@ 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) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's better to make handleUserCreated use the same logic.

And there is no need to add "WHERE ...", just check whether any record exists.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a key logic in handleUserCreated, which is to determine whether the current account is the first: CountUsers(ctx, nil) == 1; I am not quite sure if it can be replaced with the newly added method.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kerwin612 kerwin612 requested review from kemzeb and wxiaoguang May 22, 2025 08:52
@kerwin612 kerwin612 requested a review from a team June 1, 2025 05:29
Copy link
Member

@kemzeb kemzeb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't speak on frontend design, but otherwise this looks good to me.

Was iffy about the HasUsers() calls ignoring DB errors, but after further reading it seems the worst that can happen is:

  • User accesses sign up page (or completes the install config if they're on the install page)
  • A DB error occurs
  • Server sends sign up page + the sign_up_tip message to the user

@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Jun 7, 2025
Copy link
Member

@denyskon denyskon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Jun 8, 2025
@denyskon denyskon added type/enhancement An improvement of existing functionality topic/ui-interaction Change the process how users use Gitea instead of the visual appearance labels Jun 8, 2025
@@ -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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is an unclear message. For example: why the "first account" is special? What "significant inconvenience" would happen? If it is not clean, it only confuses or frightens end users.

@wxiaoguang
Copy link
Contributor

And also please review admin related bug fix: Fix last admin check when syncing users #34649

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/frontend modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files modifies/translation topic/ui-interaction Change the process how users use Gitea instead of the visual appearance type/enhancement An improvement of existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants