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 {
_, err := dbgen.UserToRole.Where(dbgen.UserToRole.UserId.Eq(user.ID)). roles := []models.Role{models.DefaultUserRole, models.ServerActorRole, models.FullAdminRole}
Where(dbgen.UserToRole.RoleId.Eq(models.FullAdminRole.ID)). for _, role := range roles {
First() _, err := dbgen.UserToRole.Where(dbgen.UserToRole.UserId.Eq(user.ID)).
switch err { Where(dbgen.UserToRole.RoleId.Eq(role.ID)).
case nil: First()
return nil switch err {
case gorm.ErrRecordNotFound: case nil:
u2r := models.UserToRole{ continue
User: *user, case gorm.ErrRecordNotFound:
UserId: user.ID, u2r := models.UserToRole{
Role: models.FullAdminRole, User: *user,
RoleId: models.FullAdminRole.ID, UserId: user.ID,
Role: role,
RoleId: role.ID,
}
if err = dbgen.UserToRole.Save(&u2r); err != nil {
return err
}
default:
return err
} }
return dbgen.UserToRole.Save(&u2r)
default:
return err
} }
return nil
} }