Actually apply all relevant roles to the server actor

This commit is contained in:
Melody Becker 2025-04-16 16:42:01 +02:00
parent d81a06308a
commit fb5ecf3c45
Signed by: mstar
SSH key fingerprint: SHA256:9VAo09aaVNTWKzPW7Hq2LW+ox9OdwmTSHRoD4mlz1yI

View file

@ -169,21 +169,27 @@ func insertUserPronoun(user *models.User) error {
} }
func attachUserToRole(user *models.User) error { func attachUserToRole(user *models.User) error {
roles := []models.Role{models.DefaultUserRole, models.ServerActorRole, models.FullAdminRole}
for _, role := range roles {
_, err := dbgen.UserToRole.Where(dbgen.UserToRole.UserId.Eq(user.ID)). _, err := dbgen.UserToRole.Where(dbgen.UserToRole.UserId.Eq(user.ID)).
Where(dbgen.UserToRole.RoleId.Eq(models.FullAdminRole.ID)). Where(dbgen.UserToRole.RoleId.Eq(role.ID)).
First() First()
switch err { switch err {
case nil: case nil:
return nil continue
case gorm.ErrRecordNotFound: case gorm.ErrRecordNotFound:
u2r := models.UserToRole{ u2r := models.UserToRole{
User: *user, User: *user,
UserId: user.ID, UserId: user.ID,
Role: models.FullAdminRole, Role: role,
RoleId: models.FullAdminRole.ID, RoleId: role.ID,
}
if err = dbgen.UserToRole.Save(&u2r); err != nil {
return err
} }
return dbgen.UserToRole.Save(&u2r)
default: default:
return err return err
} }
} }
return nil
}