Procházet zdrojové kódy

Reliable selection of admin user (#22509)

When importing a repository via `gitea restore-repo`, external users
will get remapped to an admin user. This admin user is obtained via
`users.GetAdminUser()`, which unfortunately picks a more-or-less random
admin to return.

This makes it hard to predict which admin user will get assigned. This
patch orders the admin by ascending ID before choosing the first one,
i.e. it picks the admin with the lowest ID.

Even though it would be nicer to have full control over which user is
chosen, this at least gives us a predictable result.
tags/v1.19.0-rc0
Sybren před 1 rokem
rodič
revize
326d29dce0
Žádný účet není propojen s e-mailovou adresou tvůrce revize
1 změnil soubory, kde provedl 4 přidání a 1 odebrání
  1. 4
    1
      models/user/user.go

+ 4
- 1
models/user/user.go Zobrazit soubor

@@ -1233,7 +1233,10 @@ func GetUserByOpenID(uri string) (*User, error) {
// GetAdminUser returns the first administrator
func GetAdminUser() (*User, error) {
var admin User
has, err := db.GetEngine(db.DefaultContext).Where("is_admin=?", true).Get(&admin)
has, err := db.GetEngine(db.DefaultContext).
Where("is_admin=?", true).
Asc("id"). // Reliably get the admin with the lowest ID.
Get(&admin)
if err != nil {
return nil, err
} else if !has {

Načítá se…
Zrušit
Uložit