Actually apply all relevant roles to the server actor
This commit is contained in:
parent
d81a06308a
commit
fb5ecf3c45
1 changed files with 21 additions and 15 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue