diff --git a/internal/auth/inmemory.go b/internal/auth/inmemory.go index 70aab983373267b572f4fb1c7aae5f8b2f2c4ad7..6e84c594e4380a97dc6d8b367514c9c9ca0c81c5 100644 --- a/internal/auth/inmemory.go +++ b/internal/auth/inmemory.go @@ -101,6 +101,11 @@ func (d *DataHandler) AddUser(w http.ResponseWriter, req *http.Request) { http.Error(w, "passwords cannot be blank", 400) return } + if newUser.Role == "ADMIN" { + newUser.IsAdmin = true + } else { + newUser.IsAdmin = false + } if newUser.Password != "" { hash, err := bcrypt.GenerateFromPassword([]byte(newUser.Password), bcrypt.DefaultCost) if err != nil { @@ -154,6 +159,11 @@ func (d *DataHandler) UpdateUser(w http.ResponseWriter, req *http.Request) { user.Name = newUser.Name user.Surname = newUser.Surname user.Role = newUser.Role + if user.Role == "ADMIN" { + user.IsAdmin = true + } else { + user.IsAdmin = false + } if newUser.Password != "" { hash, err := bcrypt.GenerateFromPassword([]byte(newUser.Password), bcrypt.DefaultCost) if err != nil { diff --git a/internal/auth/oauth2.go b/internal/auth/oauth2.go index 73b04e7eea2cd650862b300428386c64c68ba590..39d404c7b33e3b0c3c43818bd54225df0a1d79e5 100644 --- a/internal/auth/oauth2.go +++ b/internal/auth/oauth2.go @@ -163,8 +163,12 @@ func (d *DataHandler) addUserInMemory(userOauth2 UserOAuth2) (User, error) { for _, userRole := range userOauth2.Groups { if userRole != "" && (userRole == os.Getenv("ADMIN_GROUP")) { user.Role = "ADMIN" + user.IsAdmin = true + break } else if userRole != "" && (userRole == os.Getenv("CLIENT_GROUP")) { user.Role = "CLIENT" + user.IsAdmin = false + break } else { return user, errors.New("user not in an app group") }